다음을 통해 공유


Azure Cosmos DB for MongoDB vCore의 가용성(안정성) 및 DR(재해 복구): 백그라운드에서

적용 대상: MongoDB vCore

이 문서에서는 Azure Cosmos DB for MongoDB vCore에 대한 HA(고가용성)DR(지역 간 재해 복구) 의 내부를 자세히 설명하고 이러한 기능의 디자인과 기능을 간략하게 설명합니다. 안정성과 비즈니스 연속성을 보장하기 위한 효과적인 지역 내 및 지역 간 전략 계획에 대한 인사이트를 제공합니다.

Azure Cosmos DB for MongoDB vCore 클러스터 분석

Azure Cosmos DB for MongoDB vCore 클러스터는 하나 이상의 실제 분할된 데이터베이스(노드)로 구성됩니다. 각 물리적 분할에는 전용 컴퓨팅 노드 및 원격 프리미엄 SSD 스토리지가 포함됩니다. 실제 분할된 데이터베이스의 컴퓨팅 및 스토리지 리소스는 단일 데이터베이스에서만 사용할 수 있으며 클러스터 또는 데이터베이스 간에 공유되지 않습니다.

여러 분할된 데이터베이스가 있는 클러스터에서 모든 분할된 데이터베이스에는 동일한 컴퓨팅 및 스토리지 구성이 있습니다. 분할된 데이터베이스 수에 관계없이 모든 클러스터 리소스는 동일한 Azure 지역 내에서 호스트됩니다.

Azure Cosmos DB for MongoDB vCore는 LRS(로컬 중복 스토리지)를 사용하여 모든 데이터가 클러스터의 물리적 위치 내에서 세 번 동기적으로 복제되도록 합니다. Azure Storage는 이러한 복제본을 투명하게 관리하고, CRC(순환 중복 검사)를 사용하여 데이터 무결성을 확인하고, 중복 데이터를 사용하여 검색된 손상을 복구합니다. 또한 체크섬은 스토리지 및 검색 중에 데이터 손상을 방지하기 위해 네트워크 트래픽에 적용됩니다.

MongoDB용 Azure Cosmos DB vCore 클러스터 구성 요소의 다이어그램그림 1. Azure Cosmos DB for MongoDB vCore 클러스터 구성 요소

애플리케이션이 단일 분할된 데이터베이스 또는 다중 분할된 데이터베이스 클러스터에 연결하든 관계없이 단일 연결 문자열 및 엔드포인트를 사용합니다. 이 추상화는 분산 데이터베이스 작업을 간소화하여 독립 실행형 MongoDB 데이터베이스와 마찬가지로 다중 분할된 데이터베이스 설정에 쉽게 연결할 수 있도록 합니다.

HA(지역 내 고가용성)

프로덕션 워크로드의 경우 최신 안정성 표준을 충족하도록 HA(지역 내 고가용성)를 사용하도록 설정하는 것이 좋습니다. HA는 개발 또는 실험 클러스터를 사용하지 않도록 설정하여 비용을 절감할 수 있지만 프로덕션 환경에서 데이터베이스 가용성을 유지하는 데 중요합니다.

클러스터를 프로비전하는 동안 또는 클러스터를 만든 후 언제든지 HA를 전환할 수 있습니다. 특정 지역 기능에 관계없이 MongoDB vCore용 Azure Cosmos DB를 지원하는 모든 Azure 지역에서 사용할 수 있습니다.

HA를 사용하도록 설정하면 클러스터의 각 기본 물리적 분할된 데이터베이스가 대기 분할된 데이터베이스와 쌍으로 연결됩니다. 대기 분할은 주 데이터베이스의 컴퓨팅 및 스토리지 구성을 미러링합니다. 이로 인해 분할당 6개의 데이터 복제본이 생성되고, 3개는 주 분할된 데이터베이스에, 3개는 대기에 있습니다. AZs(가용성 영역)가 있는 지역에서는 기본 및 대기 분할된 데이터베이스가 별도의 영역에 배포됩니다.

데이터는 각 주 데이터베이스와 대기 분할된 데이터베이스 간에 동기적으로 복제됩니다. 쓰기는 두 분할된 데이터베이스에 성공적으로 커밋된 후에만 승인되며 HA 클러스터 내에서 강력한 일관성을 보장합니다. 즉, 대기 물리적 분할은 항상 주 물리적 분할된 데이터베이스의 최신 전체 복제본으로, 고가용성 클러스터 내에서 강력한 일관성을 제공합니다.

Azure Cosmos DB for MongoDB vCore 클러스터의 고가용성 사용 다이어그램그림 2. AZURE Cosmos DB for MongoDB vCore 클러스터는 HA(지역 내 고가용성)를 사용하도록 설정 또는 사용하지 않습니다.

주 분할된 데이터베이스가 실패하는 경우 서비스는 대기 분할된 데이터베이스에 대한 장애 조치(failover)를 자동으로 수행합니다. 장애 조치(failover) 중에는 모든 읽기 및 쓰기 요청이 대기 분할된 데이터베이스로 리디렉션되며, 이 요청은 새 주 데이터베이스가 됩니다. 장애 조치(failover) 중에 진행 중인 쓰기 작업은 연속성을 보장하기 위해 서비스 내에서 다시 시도됩니다. 그런 다음, 동기 복제를 다시 설정하기 위해 대체 분할된 데이터베이스를 만들어 새 대기 상태가 됩니다.

지역 간 복제: DR(지역 재해 복구)

드물긴 하지만 지역 가동 중단으로 인해 데이터베이스에 대한 액세스가 중단됩니다. 지역 간 복제는 강력한 DR(재해 복구) 전략을 제공하여 대규모 중단 시에도 데이터에 액세스할 수 있도록 합니다.

지역 간 복제를 사용하면 다른 Azure 지역에 복제본 클러스터를 만들 수 있습니다. 복제본 클러스터의 각 분할된 데이터베이스는 주 클러스터의 해당 데이터베이스에서 데이터를 비동기적으로 복제합니다. 이 복제 모델은 주 클러스터에 대한 성능 영향을 최소화하면서 최종 일관성 을 보장합니다.

비동기 복제는 "쓰기 완료" 승인이 애플리케이션으로 다시 전송되기 전에 각 쓰기 작업을 복제본에 즉시 전달하고 확인할 필요가 없습니다. 그러나 이는 주 클러스터에서 완료된 일부 쓰기가 복제본 클러스터에 아직 복제되지 않아 복제 지연이 발생할 수 있음을 의미합니다. 복제 지연의 범위는 주 클러스터에 대한 쓰기 작업의 강도와 주 클러스터와 복제본 클러스터의 전체 부하에 따라 달라집니다.

이 설정에서는 다음을 수행합니다.

  • 지역 A의 기본 클러스터는 모든 읽기 및 쓰기를 처리합니다.
  • 지역 B의 복제본 클러스터는 읽기 전용 액세스를 지원하므로 해당 지역의 애플리케이션 또는 사용자에 가까운 고성능 읽기 작업을 사용할 수 있습니다.

애플리케이션은 지역 A의 주 클러스터에서 OLTP 쿼리를 수행할 수 있으며 OLAP/보고 쿼리와 같은 강력한 읽기 작업은 지역 B의 복제본 클러스터를 가리낼 수 있습니다.

애플리케이션은 항상 쓰기를 위해 열려 있는 클러스터를 가리키는 동적 전역 읽기-쓰기 연결 문자열 사용할 수 있습니다. 지역 가동 중단 중에 지역 B의 복제본 클러스터를 승격하여 쓰기를 허용할 수 있습니다. 전역 연결 문자열 승격된 클러스터를 가리키도록 자동으로 업데이트되어 중단 없는 쓰기 작업을 보장합니다.

Azure Cosmos DB for MongoDB vCore의 재해 복구 목적을 위한 지역 간 복제본 승격 다이어그램그림 3. 지역 간 복제를 사용하도록 설정된 Azure Cosmos DB for MongoDB vCore 클러스터를 사용하는 DR(지역 재해 복구). 지역 B의 클러스터는 새 읽기-쓰기 클러스터로 승격됩니다. 지역 A의 클러스터는 복제본 클러스터가 됩니다.

지역 내 가용성 및 지역 간 DR 기능 요약

다음 표에는 지역 내 고가용성 및 지역 간 재해 복구 전략을 사용하도록 설정하고 관리하기 위한 주요 고려 사항이 요약되어 있습니다.

시나리오 Azure Cosmos DB for MongoDB vCore 기능 데이터 손실 없음 지역 전체 중단으로부터 보호 자동 장애 조치(Failover) 연결 문자열 변경 안 했습니다.
물리적 분할 실패 HA(지역 내 고가용성) ✔️ ✔️ ✔️
지역 가동 중단 지역 간 복제본 클러스터 ✔️ ✔️†

† 전역 읽기/쓰기 연결 문자열 사용하는 경우