이 글은 Google Cloud Platform(GCP)에서 Couchbase Server의 고가용성 아키텍처 기능 및 기능을 활용하는 데 초점을 맞춘 시리즈의 2부입니다. 여기서 설명하는 Couchbase 개념은 클러스터를 배포하는 모든 클라우드 환경에 보편적으로 적용할 수 있지만 단계와 명령은 GCP에 한정되어 있습니다.
1부 에서는 Couchbase 노드 및 서비스(쿼리, 인덱스, 데이터, 검색, 이벤트, 분석, 백업) 복원력을 달성하는 방법을 다루었습니다. 리전 내의 특정 GCP 가용 영역에 분산된 특정 노드에 서비스를 할당하여 이를 달성하는 방법을 보여드렸습니다. 해당 블로그를 읽어보실 수 있습니다. 여기.
이 블로그 게시물에서는 크로스 데이터 센터 복제 (XDCR)을 두 개의 서로 다른 지역에 걸쳐 GCP에서 실행되는 두 개의 Couchbase 클러스터 간에 연결합니다. 이것은 데이터베이스 고가용성(HA)재해 복구 또는 지리적 위치 데이터 적용에 사용할 수 있습니다. XDCR은 Couchbase에 새로 추가된 기능이 아니며, 설치된 모든 Couchbase 클러스터에서 바로 사용할 수 있습니다. XDCR은 두 버전(버전 2.5부터)의 Couchbase Server 간에 사용할 수 있습니다.
데이터 손실 방지를 위한 5가지 시나리오
카우치베이스 서버 아키텍처는 단일 데이터 변이 수준부터 클러스터 수준까지 여러 가지 수준에서 데이터 복원력(예: 데이터 손실 방지)을 제공합니다. 다음은 이러한 수준 중 5가지 수준에 대해 자세히 설명합니다:
쓰기 실패 및 내구성 수준
데이터 쓰기 작업에 내구성 요구 사항을 할당할 수 있습니다. 예를 들어, 쓰기 커밋을 고려하기 전에 여러 노드(클러스터 전반의 메모리 및/또는 디스크 위치)에서 지정된 문서를 업데이트하도록 Couchbase에 지시할 수 있습니다. 요구 사항에 지정된 메모리/디스크 위치의 수가 많을수록 더 높은 수준의 내구성을 달성할 수 있습니다. 이러한 다양한 수준 설정에 대한 자세한 내용은 다음에서 확인할 수 있습니다. 이 제품 설명서 페이지.
노드 장애 및 페일오버
카우치베이스 데이터, 색인 그리고 전체 텍스트 검색 서비스를 사용하면 문서 및 인덱스 수준에서 복제본을 생성할 수 있으므로 이러한 서비스 중 하나를 실행하는 노드에 장애가 발생하면 다른 복제본을 사용할 수 있습니다. 예를 들어, 해당 서비스에 대해 아직 실행 중인 노드에 있는 기존 복제본을 사용할 수 있으므로 애플리케이션이 계속 완벽하게 작동할 수 있습니다. 이 블로그에서 Couchbase의 기본 아키텍처가 이 기능을 지원하는 방법에 대해 자세히 알아볼 수 있습니다, 분산 데이터베이스: 개요.
클라우드 가용성 및 랙 영역 장애
활용 다차원 스케일링 (MDS) 및 서버 그룹 인식 물리적 장애로 인한 데이터 액세스 손실로부터 애플리케이션을 보호합니다. 랙 또는 클라우드 가용성 영역 실패. 이 블로그 시리즈의 1부에서는 데이터센터의 여러 물리적 랙 또는 클라우드 제공업체 가용성 영역에서 실행되는 클러스터 내의 독립 노드에서 Couchbase 서비스를 분리하는 방법에 대해 설명했습니다.
클라우드 리전 및 데이터센터 장애
복제는 클러스터 수준에서 고가용성과 내결함성을 제공하기 위한 핵심 요소입니다. XDCR은 고성능의 메모리 간 복제 기술로, 두 개의 Couchbase 클러스터 간에 데이터를 복제하는 데 사용됩니다. 이는 Couchbase의 아키텍처에 내장된 데이터 자동 샤딩 뒤에 있는 클러스터 내 복제를 보완합니다. XDCR은 비동기 복제를 제공하고 최종 일관성을 통해 사이트 간에 데이터 일관성을 유지합니다. 이 블로그에서는 서로 다른 GCP 리전에 있는 두 개의 개별 Couchbase 클러스터 간에 이 기능을 구현하는 방법을 살펴보겠습니다.
"당신의 세계" 실패
클러스터 백업! 고객들은 가끔 "이미 100% 가용성이 있는데 왜 백업해야 하나요?"라고 질문합니다. 이 질문에 대한 가장 좋은 대답은 "업스트림 시스템이나 애플리케이션에서 손상된 데이터가 클러스터로 유입되면 어떻게 할 것인가?"라는 또 다른 질문입니다. 이는 메모리 간 복제의 몇 안 되는 단점 중 하나로, 손상된 데이터가 다른 클러스터를 빠르게 감염시킬 수 있으므로 손상되지 않은 특정 시점의 백업을 복원해야 합니다. 이 시나리오는 매우 드물기 때문에 고객이 이러한 상황을 겪지 않기를 바라지만, 만일을 대비하여 현재 Couchbase 백업 관행과 일정을 평가해야 합니다. Couchbase 7에서는 백업 서비스 를 사용하여 백업 및 복원 전략을 더욱 쉽게 자동화할 수 있습니다. 이에 대한 자세한 내용은 여기.
GCP에서 Couchbase로 데이터센터 간 복제(XDCR)를 구현하는 5단계
이 블로그에서 다루는 상위 레벨 단계는 지역 GCP 카우치베이스 클러스터 간에 XDCR을 구현하는 방법입니다:
- GCE의 서로 다른 지역에 2개의 별도의 Couchbase 클러스터를 설정합니다.
- 활성화 여행 샘플 단방향 복제를 위한 소스 데이터가 될 클러스터 1의 데이터 집합을 만듭니다.
- 클러스터 2에 빈 버킷 만들기
- 액티브/패시브 HA 시나리오를 위해 클러스터 1에서 클러스터 2로 XDCR 스트림을 생성합니다.
- 액티브/액티브 HA 시나리오 또는 데이터의 지리적 위치 적용을 위해 클러스터 2에서 클러스터 1로 XDCR 스트림을 생성합니다.
1단계
의 지침을 따르세요. 1부 를 사용하여 서로 다른 GCP 리전에서 두 개의 개별 Couchbase 클러스터를 스핀업할 수 있습니다. us-east1 그리고 us-central1. 이는 지리적 네트워크 인프라 장애로부터 환경을 보호하기 위해 서로 다른 지리적 위치에 있는 두 개의 서로 다른 데이터 센터에 Couchbase를 배포하는 것과 유사합니다.
2단계
카우치베이스 UI에서 GCP-WEST 클러스터로 이동하여 설정 섹션을 클릭하고 샘플 버킷 링크를 클릭합니다:

그런 다음 옆의 확인란을 선택합니다. 여행 샘플 를 클릭하고 샘플 데이터를 로드합니다:

데이터 집합을 로드할 수 있도록 몇 분 정도 기다린 다음, 데이터 집합이 로드된 후 버킷 영역으로 이동하여 새 버킷을 확인합니다. 여행 샘플. 아래에 표시된 항목 수가 표시되면 모든 데이터가 로드됩니다(버전 7.x):

이것은 출처 버킷에 XDCR 스트림용 GCP East 그리고 West 리전 클러스터. 이 데이터를 복제하는 스트림을 정의하고 활성화하려면 먼저 대상 클러스터에 데이터를 수신할 대상 빈 버킷을 만들어야 합니다.
3단계
두 번째 클러스터에서, GCP-EAST, 관리자 UI에서 버킷 영역을 클릭하고 버킷 추가 를 클릭합니다:

그러면 이 창이 표시되며 빈 대상 버킷을 만드는 데 필요한 값을 입력할 수 있습니다.

클릭하면 버킷 추가 를 클릭하면 즉시 목록에 표시됩니다. 스크린샷이 어느 클러스터에서 가져온 것인지 알 수 있도록 버킷의 이름을 소스 버킷과 다르게 지정했습니다. 실제로는 한 클러스터에서 다른 클러스터로 전환하는 경우 애플리케이션의 문자열 값을 변경할 필요가 없도록 이름을 동일하게 지정하고 싶을 것입니다.

4단계
액티브/패시브 클러스터 전략을 구현하기 위해 저희는 단방향 XDCR 스트림을 설정했습니다. GCP-WEST 클러스터 여행 샘플 버킷에 GCP-EAST 클러스터 동쪽-여행-샘플 버킷으로 이동합니다. 관리자 UI에서 GCP-WEST 클러스터의 XDCR 섹션에서 원격 추가 을 클릭합니다. 그러면 다른 팝업 창이 열립니다.

클릭 저장.

이제 복제 추가 을 클릭해 단방향 스트림을 생성할 수 있는 화면으로 이동합니다. GCP-WEST 에 GCP-EAST.

모든 스트림 사용자 지정을 입력한 후에는 복제 저장 를 클릭하면 스트림이 즉시 데이터를 GCP-EAST 클러스터에서 돌연변이가 발생하면 계속됩니다. 여행 샘플 버킷.

저는 기본값 범위를 추가하면 버전 7에서 복제 스트림의 일부로 범위와 컬렉션을 분할하거나 결합하는 데 사용할 수 있는 다양한 옵션을 확인할 수 있습니다. 이러한 옵션에 대한 자세한 내용은 이 게시물에서 확인할 수 있습니다: 카우치베이스 7.0의 범위 및 컬렉션에 대한 XDCR 지원 소개.

5단계
두 개 이상의 Couchbase 클러스터에 대해 액티브-액티브 HA 전략을 설정하려면 클러스터 1에서 클러스터 2로 가는 일방적인 XDCR 스트림 하나를 만든 다음 동일한 데이터 세트에 대해 클러스터 2에서 클러스터 1로 병렬 역방향 스트림을 만들어야 합니다. 예를 들어 아래 그림과 같이 각 클러스터에 일방적인 스트림을 설정하여 한 클러스터에 발생한 모든 돌연변이가 다른 클러스터로 복제되도록 했습니다.


데이터 로캘리티 정책을 지원하기 위해 필터링 규칙을 적용하려는 경우 이러한 기능을 구현하는 방법에 대해 읽어보세요. 여기 이 문서 페이지에 있습니다.
결론
방금 XDCR을 사용하여 데이터 센터 또는 클라우드 네트워크 지역 장애로부터 Couchbase를 사용하는 애플리케이션을 보호함으로써 Couchbase 클러스터 HA 전략의 핵심을 구현하는 방법을 살펴보았습니다.
XDCR에 대한 자세한 내용은 다음 출처에서 확인할 수 있습니다:
- 데이터 센터 간 복제(XDCR) 이해 1부
- XDCR: 손쉬운 제어를 통한 하이브리드 클라우드 배포에서의 복제 은 우리의 카우치베이스 Connect21 사용자 컨퍼런스에서 범위 및 컬렉션에 포함된 새로운 기능을 포함하여 Couchbase Server 버전 7에서 XDCR을 최대한 활용하기 위한 팁과 요령(범위 및 컬렉션의 새로운 기능 포함)을 다루고 있습니다.
다음 리소스를 읽고 GCP에서 Couchbase를 시작하는 데 도움이 되는 후속 조치를 따르세요:
- 구글 클라우드 플랫폼에서 고가용성을 위한 카우치베이스 배포 - 1부 - 서버 그룹 인식
- GCP 마켓플레이스의 카우치베이스 오퍼링
- GCP 마켓플레이스를 사용하여 카우치베이스 서버 배포하기
- 구글 컴퓨트 엔진에서 카우치베이스 실행 모범 사례