데이터베이스의 경우 데이터 안전과 성능은 매우 중요합니다. 기업은 재해 복구 기능을 갖추고 있어야 하며, 데이터베이스가 나머지 애플리케이션과 비즈니스 요구 사항에 병목 현상을 일으키지 않기를 원합니다.

성능 측면에서는 사용자가 자신의 위치에서 가장 가까운 애플리케이션과 데이터베이스에 액세스하도록 하는 것이 합리적입니다. 이 시나리오에서 데이터가 필요한 위치에 있는지 어떻게 확인할 수 있을까요?

카우치베이스 서버 는 클러스터 간에 데이터를 복제할 수 있어 재해 복구 시나리오를 훌륭하게 구성하고 데이터 로케이션에 더 잘 맞출 수 있습니다. 이는 데이터센터 간 복제(XDCR)라는 기능을 통해 이루어지며 실제로 관리하기가 매우 쉽습니다.

이 예제에서는 다음을 사용하겠습니다. Docker. 로컬에서든 AWS와 같은 서비스에서 원격으로든 여러 개의 Couchbase 클러스터를 생성할 수 있어야 합니다. 이것은 예시일 뿐이므로 Docker가 가장 적합했습니다.

카우치베이스 서버의 노드를 도커 컨테이너로 생성하기

최소한으로 하기 위해 각 클러스터에 두 개의 노드가 있는 두 개의 Couchbase Server 클러스터를 만들려고 합니다. 즉, 총 4개의 컨테이너가 필요합니다.

Docker CLI에서 다음 명령을 실행합니다:

위의 명령은 공식 카우치베이스 도커 이미지를 사용합니다. 도커 허브.

각 컨테이너는 고유한 이름과 다른 포트 매핑을 갖게 됩니다. 호스트 머신에서 작업할 수 있도록 관리자 포트만 매핑합니다. 컨테이너는 동일한 컨테이너 네트워크 내에 있는 한 다른 포트를 통해 통신할 수 있습니다.

Docker와 함께 Couchbase를 사용하는 방법에 대한 자세한 내용은 이전 글에서 확인할 수 있습니다, Docker와 함께 Couchbase 사용 및 컨테이너화된 NoSQL 클러스터 배포하기.

이제 두 개의 새 클러스터를 만들고 노드를 추가해야 합니다.

여러 데이터센터를 모방하기 위한 노드 클러스터링

두 개의 새 클러스터를 만드는 것부터 시작하겠습니다. 웹 브라우저에서 http://localhost:7091 으로 이동하여 새 클러스터 만들기를 선택합니다. 마법사를 따라 관리 대시보드가 표시될 때까지 진행합니다.

이제 웹 브라우저에서 http://localhost:10091 으로 이동하여 다른 새 클러스터를 설정하도록 선택합니다. 다시 마법사를 따라 관리 대시보드가 표시될 때까지 계속 진행합니다.

이 시점에서는 단일 노드를 포함하는 두 개의 클러스터가 있습니다.

웹 브라우저에서 http://localhost:8091 으로 이동하되 이번에는 기존 클러스터에 참여하도록 선택합니다. Docker를 사용하므로 호스트를 제공할 때 localhost를 사용할 수 없습니다. 대신 컨테이너의 호스트를 사용해야 합니다.

Couchbase Docker Container IP

일반적으로 IP는 172.17.0.X와 비슷하지만 플랫폼에 따라 다를 수 있습니다. http://localhost:7091 에서 생성한 클러스터에 가입하세요.

마지막 남은 클러스터에 최종 노드를 추가하려면 동일한 단계를 따르세요. 웹 브라우저에서 http://localhost:11091 으로 이동하여 http://localhost:10091 에 있는 클러스터에 참여하되, 호스트 IP가 아닌 컨테이너 IP를 사용해야 한다는 점을 기억하세요.

두 개의 클러스터를 사용할 수 있으므로 XDCR을 사용하여 클러스터 간 복제에 대해 걱정할 필요가 없습니다.

버킷 복제로 XDCR 구성하기

이제 목표는 두 데이터 센터 간에 복제하는 것입니다. 노드가 아닌 클러스터 간에 복제한다는 점을 기억하세요. 클러스터 내의 노드 복제도 비슷한 개념이지만, 우리는 클러스터 외부의 복제에 관심이 있습니다.

클러스터를 선택하고 관리 대시보드의 XCDR 섹션으로 이동합니다.

Couchbase XDCR

여기에서 원격 클러스터를 추가하고 버킷 복제를 정의할 수 있습니다. 선택 원격 클러스터 추가 를 클릭하고 현재 탐색하고 있지 않은 클러스터의 세부 정보를 입력합니다. 제 경우에는 현재 탐색하고 있지 않은 USA-SF 클러스터에 내 리모컨을 추가하고 싶습니다. 미국-뉴욕 클러스터로 이동합니다. 로컬 호스트나 호스트 IP가 아닌 컨테이너 IP를 사용해야 한다는 점을 기억하세요.

Couchbase XDCR

원격 클러스터를 추가한 후에도 복제할 대상과 위치를 정의해야 합니다. 이것은 단방향 복제입니다.

Couchbase XDCR

복제하려는 버킷은 두 클러스터에 모두 존재해야 합니다. 시작 버킷이 대상 클러스터에 존재하지 않는 경우, 계속해서 생성하세요.

복제가 추가되면 원본 클러스터에서 변경한 모든 문서가 다음과 같이 적용됩니다. USA-SF를 입력하면 원격 클러스터에 다음과 같이 표시됩니다. 미국-뉴욕. 변경 사항을 다른 방향으로 적용하려면 다른 클러스터 또는 믹스에 추가하려는 다른 클러스터에서 동일한 단계를 수행하세요.

결론

방금 여러 개의 클러스터를 만드는 방법을 살펴보셨습니다. 카우치베이스 Docker를 사용하고 데이터센터 간 복제(XDCR)를 활성화합니다. XDCR을 사용하면 사용자 지역에 기반한 데이터 로캘뿐만 아니라 재해 복구에 더 효과적으로 대응할 수 있습니다.

카우치베이스가 포함된 XDCR에 대한 자세한 내용은 다음을 참조하세요. 카우치베이스 개발자 포털.

작성자

게시자 Nic Raboy, 개발자 옹호자, Couchbase

닉 라보이는 최신 웹 및 모바일 개발 기술을 옹호하는 사람입니다. 그는 Java, JavaScript, Golang 및 Angular, NativeScript, Apache Cordova와 같은 다양한 프레임워크에 대한 경험이 있습니다. Nic은 웹 및 모바일 개발을 보다 쉽게 이해할 수 있도록 자신의 개발 경험에 대해 글을 쓰고 있습니다.

댓글 남기기