Amazon DocumentDB 고가용성 및 복제 - Amazon DocumentDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon DocumentDB 고가용성 및 복제

복제본 인스턴스를 사용하여 Amazon DocumentDB(MongoDB 호환)에서 고가용성 및 읽기 규모 조정을 구현할 수 있습니다. 단일 Amazon DocumentDB 클러스터는 1개의 기본 인스턴스와 최대 15개의 복제본 인스턴스를 지원합니다. 이러한 인스턴스는 해당 클러스터의 리전 내의 가용 영역에 두루 분산할 수 있습니다. 기본 인스턴스는 읽기 및 쓰기 트래픽을 허용하며, 복제본 인스턴스는 읽기 요청만 허용합니다.

클러스터 볼륨은 클러스터에 대한 여러 개의 데이터 사본으로 구성됩니다. 그러나 Amazon DocumentDB 클러스터의 기본 인스턴스 및 복제본에는 클러스터 볼륨 데이터가 단 하나의 논리 볼륨으로 표시됩니다. 복제본 인스턴스는 최종적으로 일관됩니다. 복제본 인스턴스 복제본 지연 시간을 최소화하여 쿼리 결과를 반환합니다. 이 지연 시간은 일반적으로 기본 인스턴스가 업데이트를 적용한 후 100밀리초 미만입니다. 데이터베이스 변경률에 따라 달라집니다. 즉, 데이터베이스의 쓰기 연산이 많은 기간에는 복제 지연 시간이 증가할 수 있습니다.

읽기 확장

Amazon DocumentDB 복제본은 클러스터 볼륨의 읽기 작업에 전적으로 사용되므로 읽기 규모 조정에 유용합니다. 쓰기 연산은 기본 인스턴스에서 관리합니다. 클러스터 볼륨은 클러스터에 있는 모든 인스턴스에 공유됩니다. 따라서 각 Amazon DocumentDB 복제본에 대한 데이터 사본을 복제하여 보관할 필요가 없습니다.

높은 가용성

Amazon DocumentDB 클러스터를 만들면 서브넷 그룹 내 가용 영역의 수에 따라(2개 이상이어야 함) Amazon DocumentDB가 가용 영역에서 인스턴스를 프로비저닝합니다. 클러스터에서 인스턴스를 생성할 때 Amazon DocumentDB가 서브넷 그룹의 가용 영역에 인스턴스를 자동으로 배포하여 클러스터의 균형을 잡습니다. 또한 이 작업을 통해 모든 인스턴스가 동일한 가용 영역에 위치하는 경우를 방지할 수 있습니다.

요점을 설명하기 위해 세 개의 가용 영역 (,,,) 으로 구성된 서브넷 그룹이 있는 클러스터를 생성하는 예를 생각해 보십시오. AZ1AZ2AZ3

클러스터의 첫 번째 인스턴스가 만들어지면 이는 기본 인스턴스로서 세 가용 영역 중 하나에 위치합니다. 이 예제에서는 안에 들어 있습니다. AZ1 생성된 두 번째 인스턴스는 복제본 인스턴스이며 다른 두 가용 영역 중 하나에 위치합니다. AZ2 생성된 세 번째 인스턴스는 복제본 인스턴스이며 나머지 가용 영역 () 에 있습니다. AZ3 추가로 인스턴스를 만들 경우 가용 영역에 배포하여 클러스터의 균형을 달성할 수 있습니다.

기본 인스턴스 (AZ1) 에서 장애가 발생하면 장애 조치가 트리거되고 기존 복제본 중 하나가 기본 복제본으로 승격됩니다. 이전 기본 복제본이 복구되면 해당 복제본은 프로비저닝된 동일한 가용 영역에 있는 복제본이 됩니다 (). AZ1 3개 인스턴스 클러스터를 프로비저닝하면 Amazon DocumentDB는 해당 3개 인스턴스 클러스터를 계속 보존합니다. Amazon DocumentDB는 수동 개입 없이 인스턴스 장애 감지, 장애 조치 및 복구를 자동으로 처리합니다.

Amazon DocumentDB의 장애 조치로 인스턴스를 복구하는 경우, 복구된 인스턴스는 처음 프로비저닝된 가용 영역에 그대로 위치합니다. 그러나 인스턴스의 역할은 기본에서 복제본으로 변경될 수 있습니다. 이렇게 함으로써 여러 번의 장애 조치로 모든 인스턴스가 동일한 가용 영역에 모이는 경우를 방지할 수 있습니다.

Amazon DocumentDB 복제본을 장애 조치 대상으로 지정할 수 있습니다. 즉 기본 인스턴스에 장애가 발생하면 지정된 Amazon DocumentDB 복제본이나 티어의 복제본이 기본 인스턴스로 승격됩니다. 기본 인스턴스에 대한 읽기/쓰기 요청이 예외로 인해 장애가 발생하는 동안에는 시스템이 짧게 중단됩니다. Amazon DocumentDB 클러스터에 Amazon DocumentDB 복제본이 없는 경우에는 기본 인스턴스 장애 시 해당 인스턴스가 다시 생성됩니다. Amazon DocumentDB 복제본을 승격시키는 것이 기본 인스턴스를 다시 생성하는 것보다 훨씬 빠릅니다.

고가용성 시나리오에서는 Amazon DocumentDB 복제본을 1개 이상 생성하는 것이 좋습니다. 이러한 복제본은 인스턴스 클래스가 기본 인스턴스의 클래스와 동일해야 하고, 가용 영역이 Amazon DocumentDB 클러스터의 가용 영역과 달라야 합니다.

자세한 내용은 다음 자료를 참조하십시오.

글로벌 클러스터를 통한 고가용성

여러 AWS 리전클러스터에서 고가용성을 보장하기 위해 Amazon DocumentDB 글로벌 클러스터를 설정할 수 있습니다. 각 글로벌 클러스터는 여러 지역에 걸쳐 있으므로 지연 시간이 짧은 글로벌 읽기 및 전 세계 정전 발생 시 재해 복구가 가능합니다. AWS 리전 Amazon DocumentDB는 기본 리전에서 각 보조 영역으로 모든 데이터 및 업데이트 복제를 자동으로 처리합니다.

복제본 추가

클러스터에 추가된 첫 번째 인스턴스는 기본 인스턴스입니다. 첫 번째 인스턴스 이후 추가된 모든 인스턴스는 복제본 인스턴스입니다. 클러스터에는 기본 인스턴스 외에 최대 15개의 복제본 인스턴스가 있을 수 있습니다.

를 사용하여 클러스터를 생성하면 기본 인스턴스가 동시에 자동으로 생성됩니다. AWS Management Console클러스터 및 기본 인스턴스를 생성하는 것과 동시에 복제본을 생성하려면 Create replica in different zone(다른 영역에 복제본 만들기)을 선택합니다. 자세한 내용은 아마존 DocumentDB 클러스터 생성의 4.d 단계를 참조하십시오. Amazon DocumentDB 클러스터에 복제본을 추가하려면 클러스터에 Amazon DocumentDB 인스턴스 추가 단원을 참조하십시오.

를 사용하여 클러스터를 생성할 때는 기본 및 복제 인스턴스를 명시적으로 생성해야 합니다. AWS CLI 자세한 내용은 다음 항목의 “사용 AWS CLI” 섹션을 참조하십시오.

복제 지연

복제 지연은 일반적으로 50밀리초 이하입니다. 복제 지연이 증가하는 가장 일반적인 이유는 다음과 같습니다.

  • 기본 복제본의 쓰기 속도가 높으면 읽기 전용 복제본이 기본 복제본보다 뒤쳐집니다.

  • 장기 실행 쿼리(예: 대규모 순차 스캔, 집계 쿼리)와 수신되는 쓰기 복제 간의 읽기 전용 복제본 경합.

  • 읽기 전용 복제본에 대한 동시 쿼리 수가 매우 많습니다.

복제 지연을 최소화하려면 다음 문제 해결 방법을 시도해 보십시오.

  • 쓰기 속도가 높거나 CPU 사용률이 높으면 클러스터의 인스턴스를 확장하는 것이 좋습니다.

  • 읽기 전용 복제본에서 쿼리가 오래 실행되고 쿼리 대상 문서가 매우 자주 업데이트되는 경우, 장기 실행 쿼리를 변경하거나 기본/쓰기 복제본에 대해 실행하여 읽기 전용 복제본에서 충돌이 발생하지 않도록 하는 것이 좋습니다.

  • 동시 쿼리 수가 매우 많거나 읽기 전용 복제본의 CPU 사용률이 높은 경우, 읽기 전용 복제본의 수를 늘려 워크로드를 분산하는 것도 또 다른 방법입니다.

  • 복제 지연은 높은 쓰기 처리량과 오래 실행되는 쿼리의 결과이므로 DBClusterReplicaLagMaximum CW 측정치를 느린 쿼리 로거 및/지표와 함께 활용하여 복제 지연 문제를 해결하는 것이 좋습니다. WriteThroughput WriteIOPS

일반적으로 클러스터 장애 조치로 인해 성능이 저하되지 않도록 모든 복제본의 인스턴스 유형을 동일하게 사용하는 것이 좋습니다.

스케일 업과 스케일 아웃 중 하나를 선택하는 경우(예: 작은 인스턴스 6개 vs. 대형 인스턴스 3개), DB 인스턴스당 버퍼 캐시가 더 커지므로 일반적으로 스케일 아웃 전에 먼저 스케일 업(대형 인스턴스) 하는 것이 좋습니다.

애플리케이션 기능에 영향을 미치기 전에, 복제본 인스턴스의 데이터가 얼마나 뒤처질 수 있는지(또는 “부실”하게 될 수 있는지) 사전에 복제 지연 경보를 설정하고 해당 임계값의 상한선을 설정해야 합니다. 일반적으로 일시적인 워크로드로 인해 경보가 울리기 전에 여러 데이터 포인트에 대해 복제 지연 임계값을 초과하는 것이 좋습니다.

참고

또한 10초를 초과하는 복제 지연에 대해서는 다른 경보를 설정하는 것이 좋습니다. 여러 데이터 포인트에 대해 이 임계값을 초과할 경우 인스턴스를 스케일 업하거나 기본 인스턴스의 쓰기 처리량을 줄이는 것이 좋습니다.