이벤트나 컨퍼런스에 참석할 때면 항상 Couchbase의 호스팅 요금이 얼마인지 묻는 질문을 받습니다. 간단한 대답은 다음과 같습니다.
는 호스팅 회사가 아닌 소프트웨어 회사이지만 그렇다고 해서 다른 서비스를 통해 Couchbase를 호스팅할 수 없다는 의미는 아닙니다. Couchbase
아마존 웹 서비스(AWS), Azure, 조이언트 등의 서비스에서 이미지를 사용할 수 있습니다.
특히 다음에서 Couchbase Server를 호스팅하는 방법을 살펴보겠습니다. 조이엔트의 트리톤 플랫폼으로 전환합니다.
조이엔트와 트리톤의 배경
조이엔트는 성능 중심의 퍼블릭 및 프라이빗 클라우드를 전문으로 하는 소프트웨어 및 서비스 회사입니다.
컴퓨팅. Joyent의 Triton 서비스를 사용하면 "...베어메탈 속도로 컨테이너를 안전하게 배포하고 운영할 수 있습니다.
컨테이너 네이티브 인프라". 트리톤에서 Docker 컨테이너를 실행하면 다음과 같은 이점이 있습니다:
- 컨테이너는 베어메탈에서 실행되므로 하드웨어 수준의 가상화 오버헤드가 없습니다. 즉, 다음과 같은 이점을 경험하게 됩니다.
성능이 크게 향상되었습니다. - 각 컨테이너에는 고유한 IP 주소가 있어 컨테이너 간에 네트워크를 쉽게 연결할 수 있습니다.
- 다운타임 없이 Docker 컨테이너의 크기를 조정할 수 있습니다.
요구 사항
조이엔트의 트리톤에서 Couchbase Server 클러스터를 시작하고 실행할 예정이기 때문에 이 과정에서 몇 가지 요구 사항이 있습니다:
- Docker 1.8
- 조이렌트 계정
- SSH 개인 키
다른 버전의 Docker를 사용해도 괜찮지만 저는 1.8을 사용하고 있습니다. 얼마나 모험을 즐기고 싶은지는 여러분에게 달려 있습니다.
Docker 컨테이너와 함께 Couchbase 사용
이 시점에서 아직 설치하지 않았다면 도커 도구 상자는 이제
좋은 시간입니다. 여기에는 로컬 컴퓨터에서 Docker를 사용하는 데 필요한 모든 도구가 포함되어 있습니다.
이제 Docker 도구 상자에는 Kitematic이라는 도구가 포함되어 있으며, 이 도구는 Docker에 대한 GUI 지원을 제공합니다. 이 도구는 사용하지 않을 것입니다. 대신
를 클릭하여 터미널(Mac 및 Linux) 또는 명령 프롬프트(Windows)에서 모든 작업을 수행합니다.
지금은 Couchbase와 Docker에 익숙해지기 위해 로컬에서만 Docker를 사용하겠습니다. 이 가이드의 후반부에서는
조이엔트의 트리톤 서비스에 연결합니다.
카우치베이스 서버 컨테이너 다운로드 및 시작하기
Docker 터미널 애플리케이션에서 다음 명령을 실행합니다:
|
1 2 3 |
docker run --name couchbase-server-1 -d -p 8091:8091 couchbase |
위의 명령은 최신 공식 Couchbase Server Docker 이미지를 다운로드하고 시스템에서 컨테이너에 이름을 지정한 후 시작합니다.
다음 사이트에서 성공했는지 테스트할 수 있습니다. https://192.168.99.100:8091/ 를 클릭합니다. 참고
그 192.168.99.100 는 도커 터미널을 시작할 때 알려준 대로입니다.
두 번째 Couchbase 서버 컨테이너 시작
계속해서 Docker로 두 번째 로컬 Couchbase Server 인스턴스를 시작합니다. 이번에는 다음을 수행합니다:
|
1 2 3 |
docker run --name couchbase-server-2 -d -p 8092:8091 couchbase |
이번에는 컨테이너 이름을 변경하고 호스트 포트를 다음과 같이 늘렸습니다. 8092 대신 8091. 이
포트 충돌을 방지하는 것입니다.
두 Couchbase 서버 컨테이너 중지 및 제거
로컬에서 실행되는 이러한 Couchbase Server Docker 컨테이너는 더 이상 필요하지 않습니다. 이를 제거하려면 먼저 해당 컨테이너의 고유한
컨테이너 값을 설정합니다:
|
1 2 3 |
docker ps |
결과는 다음과 같이 표시됩니다:
|
1 2 3 4 5 |
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9f3b05af8393 couchbase "/entrypoint.sh couch" 9 minutes ago Up 9 minutes 8092-8093/tcp, 11207/tcp, 11210-11211/tcp, 18091-18092/tcp, 0.0.0.0:8092->8091/tcp couchbase-server-2 b20045600bd0 couchbase "/entrypoint.sh couch" 9 minutes ago Up 9 minutes 8092-8093/tcp, 11207/tcp, 11210-11211/tcp, 0.0.0.0:8091->8091/tcp, 18091-18092/tcp couchbase-server-1 |
그런 다음 고유한 컨테이너 값을 사용하여 실행할 수 있습니다:
|
1 2 3 4 5 6 |
docker stop 9f3b05af8393 docker stop b20045600bd0 docker rm 9f3b05af8393 docker rm b20045600bd0 |
이제 두 로컬 컨테이너를 모두 제거해야 합니다.
트리톤 클라우드 API에 Docker 연결하기
지금까지는 Docker와 Couchbase의 모든 것이 사용자의 컴퓨터에 로컬로 있었습니다. 이제 Docker 클라이언트를 Joyent에 연결하겠습니다.
Cloud API를 사용하여 Triton을 사용할 수 있습니다. 우리가 따를 단계는 다음에서 찾을 수 있습니다.
의 조이엔트 공식 문서에 대한 자세한 내용은 이 가이드에서도 확인할 수 있습니다.
조이렌트 도우미 스크립트를 다음과 같이 다운로드하여 시작하세요:
|
1 2 3 |
curl -O https://raw.githubusercontent.com/joyent/sdc-docker/master/tools/sdc-docker-setup.sh |
다음이 없거나 사용할 수 없는 경우 curl 파일을 수동으로 다운로드합니다. 스크립트를 다운로드했으면 이제 스크립트를 실행하려고 합니다,
특정 매개변수 집합을 전달합니다:
|
1 2 3 |
bash sdc-docker-setup.sh ~/.ssh/ |
그리고 CLOUDAPI_URL 는 문서에 따라 다음 중 하나가 될 수 있습니다:
- https://us-east-1.api.joyent.com
- https://us-sw-1.api.joyent.com
- https://eu-ams-1.api.joyent.com
그리고 계정 이름 는 조이엔트 대시보드에 로그인할 때 사용하는 사용자 이름입니다. 앞서 언급했듯이 SSH가 필요합니다.
연결할 개인 키 개인_키_파일.
스크립트를 실행할 때 개인 키 비밀번호를 몇 번 입력하라는 메시지가 표시될 수 있습니다. 지시에 따라 지시에 따라 실행하세요. 에서
를 입력하면 다음과 같은 내용이 표시됩니다:
|
1 2 3 4 5 6 |
export DOCKER_CERT_PATH=/Users/nraboy/.sdc/docker/nraboy export DOCKER_HOST=tcp://us-east-1.docker.joyent.com:2376 export DOCKER_CLIENT_TIMEOUT=300 export DOCKER_TLS_VERIFY=1 |
다음과 같이 실행하고 싶을 것입니다. 내보내기 문을 변경하는 것을 잊지 마세요. nraboy 어떤 것이든
를 생성합니다. 이러한 내보내기 명령문이 중요한 이유는 이 명령문을 실행하면 Docker가 조이엔트를 사용하여 다음을 관리하기 때문입니다.
컨테이너를 사용하세요.
조이엔트에서 카우치베이스 서버 컨테이너 실행하기
앞서 실행한 로컬 Docker 명령어를 기억하시나요? 약간의 수정을 통해 다시 실행해 보겠습니다:
|
1 2 3 |
docker run --name couchbase-server-1 -d -P couchbase |
조이엔트에서는 포트 매핑을 직접 정의할 필요가 없습니다. Joyent는 모든 컨테이너에 대해 IP를 제공하기 때문입니다.
생성합니다. 로컬 컴퓨터에는 IP가 하나뿐이고 포트가 문제가 됩니다. 그냥 -P 플래그와 당신
가 좋을 것입니다.
조이엔트 대시보드에 로그인하면 노드와 해당 IP 주소를 확인할 수 있습니다. 정보를 얻고 싶지 않은 경우
조이엔트 대시보드의 모든 기능이 이제 원격으로 제공되므로 언제든지 도커 터미널을 통해 이 작업을 수행할 수 있습니다:
|
1 2 3 4 |
docker ps docker inspect --format '{{ .NetworkSettings.IPAddress }}' 9f3b05af8393 |
물론 고유 컨테이너 ID를 다음에서 반환된 컨테이너 ID로 교체하는 것을 잊지 마십시오. 도커 PS.
첫 번째 카우치베이스 노드 구성하기
에서 반환된 IP 주소 중 하나를 사용하여 도커 인스펙트 명령을 웹 브라우저에 포트와 함께 입력합니다.
8091 를 추가합니다. 다음과 같이 https://165.225.158.112:8091 를 사용하면 됩니다.
Couchbase 클러스터를 구성하는 단계를 안내합니다. 다음과 같은 경우에 필요하므로 IP 및 관리자 자격 증명을 기억해 두세요.
클러스터에 새 노드를 추가합니다.
카우치베이스 트리톤 클러스터에 노드 추가하기
이제 Couchbase 노드를 클러스터링할 수 있도록 Triton에 다른 Couchbase Server 컨테이너를 추가할 차례입니다. Docker 터미널에서 실행합니다:
|
1 2 3 |
docker run --name couchbase-server-2 -d -P couchbase |
앞서 설명한 것처럼 이 컨테이너의 IP를 가져와 포트에서 웹 브라우저로 부팅합니다. 8091.
새 Couchbase 클러스터 생성을 선택하는 대신 하나의 클러스터에 가입하고 다른 서버의 정보를 입력합니다. 완료되면
서버 밸런스를 재조정하면 완료됩니다!
클러스터에서 컨테이너 제거
카우치베이스는 확장성이 뛰어나기 때문에 가끔씩 노드를 제거해야 할 때가 있을 것입니다. 이렇게 하려면 다음을 수행합니다.
는 먼저 Couchbase 관리 대시보드를 통해 클러스터에서 Couchbase 노드를 정상적으로 제거해야 합니다. 제거에는 다음이 포함됩니다.
기존 모든 노드의 밸런스를 재조정합니다.
노드가 클러스터에서 안전하게 제거되었으므로 이제 Joyent의 Triton 서비스에서 해당 컨테이너를 제거할 수 있습니다. Docker 터미널에서 다음을 진행합니다.
로컬에서 컨테이너를 제거할 때와 동일한 단계를 수행합니다:
|
1 2 3 4 5 6 7 |
docker ps docker stop 9f3b05af8393 docker stop b20045600bd0 docker rm 9f3b05af8393 docker rm b20045600bd0 |
물론 고유 컨테이너 ID를 다음에서 반환된 ID로 교체하는 것을 잊지 마십시오. 도커 PS.
결론
방금 Joyent의 Triton 서비스를 사용하여 Couchbase Server로 Docker 컨테이너를 호스팅하는 방법을 살펴봤습니다. Joyent를 사용하면 놀라운
베어메탈 인프라와 뛰어난 보안성을 갖춘 성능을 제공합니다.
보안에 대한 주제는 이 글의 범위를 벗어났지만 향후 게시물에서 다시 다룰 수 있습니다.
이 글을 축하하기 위해 조이엔트는 카우치베이스 사용자에게 트리톤 서비스에 대한 프로모션 할인을 제공하고 있습니다. 조이엔트에 가입하고
이 혜택 활용하기 여기.