확장은 Couchbase Server의 강점 중 하나입니다. 쉽게 확장할 수 있으며, Couchbase의 아키텍처는 확장 리소스를 효율적으로 사용합니다. 실제로 카우치베이스의 고객인 Viber는 Mongo에서 카우치베이스로 전환할 때 필요한 서버 수를 절반으로 줄였습니다..
이 블로그 게시물은 Azure에 대한 (느슨한) 시리즈 게시물 중 세 번째입니다.
첫 번째 게시물에서는 의 이점 서버리스 컴퓨팅 Couchbase를 사용하여 Azure에서
두 번째 게시물에서는 구체적인 예시를 보여주었습니다. Azure 함수 및 카우치베이스 서버를 사용하는 챗봇.
이전 게시물에서는 데모 목적으로 단일 노드가 있는 클러스터만 사용했습니다. 이제 프로덕션을 시작한 지 한참이 지났고 챗봇이 인기를 얻기 시작했다고 가정해 보겠습니다. Couchbase 클러스터를 확장해야 합니다. Couchbase를 배포한 경우 Azure 마켓플레이스를 사용하는 것은 식은 죽 먹기입니다. 간단히 말해서 슬라이더를 움직이기만 하면 됩니다.. 하지만 이 게시물에서는 자세한 내용을 자세히 설명합니다:
-
노드 3개로 새로운 클러스터 만들기.
-
클러스터를 최대 5개 노드로 확장합니다.
-
클러스터를 4개 노드로 축소합니다.
Azure에서 Couchbase 클러스터 만들기
Azure 계정이 있다고 가정하고 포털에 로그인합니다. 아직 없는 경우
쉽고 무료인 Azure 시작하기.
로그인한 후 "+ 새로 만들기"를 클릭하고 마켓플레이스에서 Couchbase Server를 검색합니다. 데모용으로 BYOL(자체 라이선스 가져오기)을 사용하고 있지만 다음과 함께 제공되는 '시간당 요금' 옵션도 있습니다. 실버 지원.

Couchbase를 선택하면 Azure 설치 마법사로 이동합니다. "만들기" 버튼을 클릭하여 시작하세요.

1단계는 "기본"입니다. Couchbase에 사용할 사용자 이름과 비밀번호, 리소스 그룹의 이름, 위치(저는 지리적으로 가까운 미국 북중부를 선택했습니다)를 입력합니다. 나중에 필요할 수 있으므로 이 정보를 메모해 두세요.

다음 단계는 Couchbase 구성입니다. 몇 가지 권장되는 VM 유형이 있습니다. 저는 이 블로그 게시물을 저렴하게 유지하기 위해 DS1_V2를 사용했지만, 프로덕션 환경에는 최소 4개의 코어와 4GB의 RAM이 필요할 것입니다. 또한 동기화 게이트웨이 노드를 설치하지 않기로 선택했지만 Couchbase Mobile을 사용할 계획이라면 이것도 필요할 것입니다. 총 요구 사항은 다음과 같습니다. 3 노드 Couchbase Server용.

그 후 3단계는 입력한 정보를 요약하는 단계입니다.

마지막 단계는 '구매'입니다. 약관이 표시됩니다. 이제 '만들기' 버튼 하나만 남았습니다.

이제 Azure는 3개의 VM을 프로비저닝하고, 그 위에 Couchbase Server를 설치한 다음 클러스터를 생성하는 작업을 시작합니다. 이 작업에는 약간의 시간이 걸립니다. 완료되면 Azure 알림을 받게 됩니다.

맛있는 음료를 마실 수 있는 충분한 시간이 있어야 합니다.
카우치베이스 클러스터 사용
Azure에서 배포가 완료되면 Azure 포털에서 "리소스 그룹"으로 이동합니다. 리소스 그룹을 찾습니다. 제 리소스 그룹은 MY_CB_자원_그룹.

리소스 그룹을 클릭합니다. 해당 리소스 그룹에는 4가지 항목이 표시됩니다:
-
네트워크보안그룹 (기본적으로 방화벽 규칙입니다.)
-
vnet (그룹의 모든 리소스가 있는 네트워크)
-
서버 (카우치베이스 서버 인스턴스)
-
동기화 게이트웨이 (카우치베이스 동기화 게이트웨이 인스턴스. 요청하지 않았으므로 비어 있는 그룹입니다.)

먼저 '서버'를 클릭한 다음 '인스턴스'를 클릭합니다. 3개의 서버(또는 프로비저닝한 수만큼)가 표시되어야 합니다.

다음으로 '배포'를 클릭합니다. Couchbase가 나열되어 있을 것입니다. 배포에 대한 자세한 정보를 보려면 클릭합니다.

다음 화면에서는 Couchbase Server UI(및 동기화 게이트웨이를 설치한 경우 동기화 게이트웨이 UI)로 이동하는 데 필요한 URL을 알려줍니다. 다음과 같이 표시될 것입니다: http://vm0.server-foobarbazqux.northcentralus.cloudapp.azure.com:8091.

해당 URL을 브라우저에 붙여넣습니다. Couchbase Server 로그인 화면으로 이동합니다. 앞서 지정한 자격 증명을 사용하여 로그인합니다.

로그인한 후 '서버'를 클릭합니다. 여기에 세 개의 서버가 나열됩니다. URL은 Azure 포털에 표시되는 배포와 일치합니다.
이 데이터베이스에 데이터를 입력해 봅시다! 설정 → 샘플 버킷으로 이동하여 '여행 샘플' 버킷을 로드합니다.

이 샘플 데이터에는 31591개의 문서가 포함되어 있습니다. 로드가 완료되면 '서버'로 돌아갑니다. '항목'(및 복제본 항목)이 세 서버에 어떻게 균등하게 분산되어 있는지 확인할 수 있습니다. Couchbase의 각 노드는 읽기와 쓰기를 모두 수행할 수 있으므로 마스터/슬레이브 또는 읽기 전용 복제본 세트 상황이 아닙니다.

확장
이제 애플리케이션이 실제로 성장하고 있고 추가 용량, 스토리지, 성능을 제공하기 위해 확장해야 한다고 가정해 봅시다. Azure 마켓플레이스에서 배포된 Couchbase를 사용하고 있으므로 평소보다 훨씬 더 쉽게 확장할 수 있습니다. Azure 포털로 이동하여 리소스 그룹으로 돌아가서 "서버"를 다시 클릭합니다. 이제 "확장"을 클릭합니다.

다음으로 슬라이더를 조정하여 인스턴스를 더 추가할 수 있는 슬라이더가 표시됩니다. 총 서버를 5개까지 늘려 보겠습니다. "저장"을 클릭하세요.

이제 다시 '인스턴스'로 돌아갑니다. 참고: 페이지를 새로 고쳐야 할 수도 있습니다. Azure는 브라우저에 제공되는 오래된 페이지를 자체적으로 업데이트하지 않으려는 것 같습니다. 이제 다음이 표시됩니다. server_3 그리고 server_4 를 '생성 중' 상태로 설정합니다.

Azure에서 배포할 때까지 기다려야 합니다. 그 동안에는 Couchbase Server UI로 돌아가서 거기에도 표시될 때까지 기다릴 수 있습니다.

새 서버를 추가할 때 클러스터는 다음과 같아야 합니다. 재조정. Azure 배포는 이 작업을 자동으로 시도해야 하지만 실패할 경우를 대비하여 수동으로 리밸런싱을 트리거할 수도 있습니다.

이 재조정 기간 동안에도 애플리케이션에서 클러스터에 계속 액세스할 수 있습니다. 다운타임은 없습니다. 리밸런싱이 끝나면 각 서버에서 #의 항목이 변경된 것을 볼 수 있습니다. 복제본과 함께 재분배되었습니다.

그게 다입니다. 슬라이더를 움직이고 몇 분만 기다리면 됩니다.
축소
어느 시점에서 클러스터를 축소하고 싶을 수도 있습니다. 일 년 중 특정 기간에는 5대의 서버가 필요하지만 다른 기간에는 3대만 필요하고 Azure 청구서를 절약하고 싶을 수도 있습니다.
다시 한 번 말하지만, 슬라이더를 조정하기만 하면 됩니다. 그러나 데이터 손실 위험을 피하기 위해 한 번에 한 서버씩 축소하는 것이 좋습니다.

규모를 축소하면 Azure에서 해제할 VM을 선택합니다. Couchbase Server는 두 가지 방법 중 하나로 응답할 수 있습니다:
-
기본 동작은 단순히 노드가 다운되었음을 표시하는 것입니다. 이는 다음과 같은 경우일 수 있습니다. 이메일 알림 트리거. UI에 '다운'으로 표시됩니다.
-
자동 장애 조치 를 켤 수 있습니다. 즉, 노드가 다운되면 Couchbase 클러스터는 자동으로 '실패'로 간주하고 다른 노드의 복제본을 승격하고 클러스터의 균형을 재조정합니다.
자동 장애 조치를 해제하고 기본 동작을 보여드리겠습니다.
먼저 서버가 Azure 포털에서 '삭제 중' 상태를 표시합니다.

얼마 지나지 않아 Couchbase는 노드가 응답하지 않는 것을 인식합니다. 그리고 '사용 가능한 복제본 활성화'를 위한 장애 조치를 제안합니다.

바로 그렇게 하도록 하겠습니다.

클러스터에서 제거된 후에는 '재조정'을 트리거해야 합니다.

요약 및 리소스
Azure에서 Couchbase 클러스터를 확장하는 것은 슬라이더를 사용하기만 하면 됩니다.
규모를 축소하는 경우 한 번에 한 노드씩 축소하는 것을 고려하세요.
자세한 내용은 다음 리소스를 참조하세요:
궁금한 점이 있으면 다음 연락처로 문의해 주세요. 트위터 @mgroves 를 클릭하거나 댓글을 남기세요.