Azure Cosmos DB 안정성

NoSQL에 대한 Azure Cosmos DB는 전 세계적으로 분산된 다중 모델 데이터베이스 서비스로, 유연한 스키마를 지원하는 문서 데이터 모델을 제공합니다. Azure Cosmos DB 성능 및 가용성의 균형을 유지하는 여러 일관성 수준, 가용성 영역 오류로부터 보호하는 영역 중복 배포, 서비스 관리 또는 고객 관리 장애 조치(failover)를 사용한 다중 지역 복제, 데이터 보호를 위한 연속 및 주기적 백업 옵션을 비롯한 포괄적인 안정성 기능을 제공합니다.

Azure를 사용하는 경우 안정성은 공유 책임입니다. Microsoft는 복원력 및 복구를 지원하는 다양한 기능을 제공합니다. 이러한 기능이 사용하는 모든 서비스 내에서 작동하는 방식을 이해하고 비즈니스 목표 및 가동 시간 목표를 충족하는 데 필요한 기능을 선택할 책임이 있습니다.

이 문서에서는 일시적인 오류, 가용성 영역 중단, 지역 중단 및 서비스 유지 관리를 포함하여 다양한 잠재적인 중단 및 문제에 Azure Cosmos DB 복원력을 제공하는 방법을 설명합니다. 또한 백업을 사용하여 다른 유형의 문제에서 복구하는 방법을 설명하고 Azure Cosmos DB SLA(서비스 수준 계약)에 대한 주요 정보를 강조 표시합니다.

프로덕션 배포 권장 사항

Azure Well-Architected Framework는 안정성, 보안, 비용, 작업 및 성능에 대한 권장 사항을 제공합니다. 이러한 영역이 서로에 미치는 영향을 이해하고 신뢰할 수 있는 Azure Cosmos DB 솔루션에 기여하려면 Azure Cosmos DB 대한Architecture 모범 사례를 참조하세요.

안정성 아키텍처 개요

이 섹션에서는 안정성 관점에서 가장 관련성이 높은 서비스가 작동하는 방식의 몇 가지 중요한 측면을 설명합니다. 이 섹션에서는 배포하고 사용하는 일부 리소스 및 기능을 포함하는 논리 아키텍처를 소개합니다. 또한 서비스의 작동 방식에 대한 세부 정보를 제공하는 물리적 아키텍처에 대해서도 설명합니다.

논리 아키텍처

배포하는 기본 리소스는 Azure Cosmos DB account. 각 계정은 여러 데이터베이스와 여러 컨테이너를 가질 수 있습니다. 컨테이너는 배포 및 확장성의 논리적 단위 역할을 합니다. Azure Cosmos DB 상호 작용하는 데 사용하는 API에 따라 컬렉션, 테이블 및 그래프와 같은 컨테이너를 만들 수 있습니다. 리소스 모델에 대한 자세한 내용은 Azure Cosmos DB 참조하세요. 각 컨테이너는 높은 규모와 고성능 을 지원하는 분할을 사용합니다.

데이터 쿼리 및 작업에 사용할 수 있는 시스템 리소스의 양을 나타내는 처리량을 구성합니다. 수동으로 처리량을 프로비전하거나, 자동 크기 조정을 사용하여 워크로드 요구 사항에 따라 용량을 동적으로 조정하거나, 서버리스 계정 유형을 사용하여 실제 사용량에 대해 요금이 부과될 수 있습니다.

단일 계정은 여러 Azure 지역을 로 확장하여 지역 중단에 대한 복원력을 높일 수 있습니다. 읽기를 위해 여러 지역을 구성할 수 있으며 중요 비즈니스용 계층을 사용하는 경우 쓰기에 여러 지역을 사용할 수 있습니다. Azure Cosmos DB 자동으로 데이터를 지역 복제합니다. 지역 복제 동작은 데이터 일관성, 가용성, 대기 시간 및 처리량 간에 절충하는 방법을 나타내는 일관성 수준과 같이 사용하는 구성의 영향을 받습니다. 서로 다른 일관성 수준은 다양한 문제에 대해 최적화되고, 서로 다른 보장을 지원하며, 다양한 유형의 지역 간 복제를 제공합니다.

물리적 아키텍처

Azure Cosmos DB는 데이터의 중복성을 위해 여러 개의 복제본을 저장합니다. 이 서비스는 각 지역의 복제본에서 쿼럼을 유지 관리하여 복제본 중단을 자동으로 완화합니다. 이 방법은 고가용성을 보장하고 애플리케이션 변경 또는 구성 없이 개별 노드 오류 시 데이터 손실로부터 보호합니다.

내부적으로 Azure Cosmos DB 물리학 파티션, 분할 집합레플리카 집합 등의 다양한 구문을 통해 데이터를 관리합니다. Azure Cosmos DB의 작동 원리에 대한 보다 자세한 정보는 Azure Cosmos DB의 글로벌 데이터 배포 - 내부 구조를 참조하세요.

일시적인 오류에 대한 복원력

일시적인 오류는 구성 요소에서 짧고 간헐적인 오류입니다. 클라우드와 같은 분산 환경에서 자주 발생하며 작업의 일반적인 부분입니다. 일시적인 오류는 짧은 시간 후에 스스로 수정됩니다. 애플리케이션은 일반적으로 영향을 받는 요청을 다시 시도하여 일시적인 오류를 처리할 수 있는 것이 중요합니다.

모든 클라우드 호스팅 애플리케이션은 클라우드 호스팅 API, 데이터베이스 및 기타 구성 요소와 통신할 때 Azure 임시 오류 처리 지침을 따라야 합니다. 자세한 내용은 임시 오류 처리를 위한 권장 사항을 참조하세요.

Azure Cosmos DB SDK를 사용하는 것이 좋습니다. SDK는 자동 재시도를 통한 일시적인 오류 처리 및 서비스에서 보낸 속도 제한 응답을 적용하는 등 다양한 복원력 고려 사항에 대한 지원을 자동으로 구현합니다. 자세한 내용은 Azure Cosmos DB SDK를 사용하여 탄력적인 애플리케이션을 설계하세요을 참조하세요.

다중 리전 계정으로 작업할 때 SDK는 여러 지역에 병렬 읽기 요청을 보내고 가장 빠른 응답을 수락하는 헤징이라고도 하는 임계값 기반 가용성 전략을 지원합니다. 이 방법은 지역에서 평소보다 더 높은 대기 시간을 일시적으로 경험할 때 애플리케이션 성능을 향상시킬 수 있습니다.

가용성 영역 오류에 대한 복원력

가용성 영역은 Azure 지역 내에서 물리적으로 별도의 데이터 센터 그룹입니다. 한 영역이 실패하면 서비스가 나머지 영역 중 하나로 전환될 수 있습니다.

Azure Cosmos DB는 영역 중복성을 지원합니다. 영역 중복을 사용하도록 설정하면 Azure는 데이터의 복제본을 여러 가용성 영역에 분산하여 데이터 센터 문제 및 중단에 대한 복원력을 제공합니다. Microsoft 사용할 가용성 영역을 선택합니다.

 3개의 개별 가용성 영역에 분산되는 3개의 복제본이 포함된 복제본 집합이 있는 Azure Cosmos DB 계정을 보여 주는 다이어그램입니다.

Azure Cosmos DB 계정은 전역 배포, 규모 및 장애 조치(failover)에 여러 지역(위치)을 사용할 수 있습니다. 계정의 각 지역에 대해 영역 중복성을 별도로 구성합니다.

Azure Cosmos DB 영역 중복을 사용하는 것은 성능 또는 대기 시간에 눈에 띄는 영향을 주지 않습니다. 선택한 일관성 모드를 조정할 필요가 없으며 애플리케이션 코드를 수정할 필요가 없습니다.

특히 단일 지역 계정의 경우 지원되는 지역에서 영역 중복성을 사용하는 것이 좋습니다. 가용성 영역은 물리적으로 분리되어 있고 고유한 전원, 네트워크 및 냉각을 제공하기 때문에 Azure Cosmos DB의 가용성 SLA는 가용성 영역을 사용하지 않는 계정보다 영역 중복 계정에 대해 더 높습니다.

Tip

영역 중복성을 사용하도록 설정하면 추가 애플리케이션 복잡성을 도입하거나 성능에 영향을 주지 않고도 Azure Cosmos DB 데이터베이스의 복원력을 높일 수 있습니다. 계정 구성에 따라 추가 비용이 발생하지 않을 수도 있습니다.

영역 중복을 사용하도록 설정하지 않으면 해당 지역에서 계정이 비영역성으로 설정됩니다. 영역이 아닌 계정은 단일 가용성 영역에서 복제본을 찾을 수 있으므로 특정 영역에 문제가 발생할 경우 가동 중지 시간이 발생할 수 있습니다.

Requirements

  • Region support: 가용성 영역을 지원하는 Azure 지역에서 영역 중복을 사용하도록 설정할 수 있습니다. 지역에서 가용성 영역을 지원하는지 확인하려면 지원되는 지역 목록을 참조하세요.

    영역 중복성은 계정 전체 설정이 아닙니다. Azure Cosmos DB 계정은 여러 지역에 걸쳐 있을 수 있으며 각 지역은 가용성 영역을 사용하도록 독립적으로 구성할 수 있습니다. 가용성 영역을 지원하지 않는 지역은 동일한 계정 내의 다른 지역에서 영역 중복을 사용하도록 설정하는 것을 방지하지 않습니다.

  • 서버리스 계정: 영역 중복 서버리스 계정은 생성할 때만 설정할 수 있습니다. 가용성 영역이 없는 기존 서버리스 계정은 가용성 영역 구성으로 변환할 수 없습니다. 중요 업무용 워크로드의 경우 프로비전된 처리량을 사용하는 것이 좋습니다.

고려 사항

  • 여러 동시 영역 중단: 영역 중복이 있는 단일 지역 계정은 중단이 단일 가용성 영역에 영향을 줄 때 읽기-쓰기 가용성을 유지할 수 있습니다. 그러나 중단이 여러 가용성 영역 또는 전체 지역에 영향을 미치는 경우 서비스가 복원될 때까지 단일 지역 계정은 읽기 및 쓰기 액세스 권한을 잃게 됩니다. 동시에 실패하는 여러 영역에 복원력이 있어야 하는 경우 다중 지역 계정을 배포하는 것이 좋습니다.

  • 다중 지역 계정: 다중 지역 계정이 있는 경우 필요에 따라 가용성 영역을 지원하는 모든 계정 지역에서 영역 중복을 사용하도록 설정할 수 있습니다. 계정이 단일 지역을 사용하도록 구성되거나 읽기 지역이 여러 개 있는 단일 쓰기 지역을 사용하도록 구성된 경우 영역 중복을 사용하도록 설정하는 것이 좋습니다.

Cost

영역 중복이 사용하도록 설정된 지역은 프리미엄으로 요금이 청구됩니다. 그러나 가용성 영역에 대한 프리미엄 가격은 다중 지역 쓰기로 구성된 계정 및 자동 크기 조정 처리량 모드를 사용하도록 구성된 컬렉션에 대해 면제됩니다. 자세한 내용은 Azure Cosmos DB 가격 책정을 참조하세요.

가용성 영역 지원 구성

대부분의 계정의 경우 Azure Cosmos DB 계정에 새 지역을 추가할 때만 영역 중복을 사용하도록 설정합니다. 기존 계정에서 가용성 영역 지원을 사용하도록 설정하려면 지역을 추가하고 영역 중복을 사용하도록 설정합니다. 프로세스를 따라 원래 지역에서 영역 중복성을 구성할 수 있도록 임시 지역을 추가할 수 있습니다. 자세한 단계는 Azure Cosmos DB 계정에서 영역 중복성 활성화하는 방법을 참조하세요.

서버리스 계정의 경우 계정을 만들 때 영역 중복을 사용하도록 설정해야 합니다.

모든 영역이 정상인 경우의 동작

이 섹션에서는 영역 중복성을 위해 Azure Cosmos DB 계정을 구성하고 모든 영역이 작동할 때 예상되는 사항에 대해 설명합니다.

  • Cross-zone operation: Azure Cosmos DB 모든 복제본이 요청을 처리할 수 있도록 가용성 영역 간에 복제본에 요청을 자동으로 라우팅합니다.

  • 영역 간 데이터 복제: 클라이언트가 데이터를 변경하면 쿼럼을 달성하기 위해 다른 영역의 여러 복제본에 해당 변경 내용이 적용됩니다. 이 방법을 동기 복제라고 합니다. 동기 복제는 높은 수준의 데이터 일관성을 보장하여 영역 실패 시 데이터 손실 가능성을 줄입니다. 가용성 영역은 비교적 가깝게 위치하므로 대기 시간 또는 처리량에 미치는 영향이 최소화됩니다.

영역 오류 중 동작

이 섹션에서는 영역 중복성을 위해 Azure Cosmos DB 계정을 구성할 때 예상되는 작업과 영역 중 하나에 중단이 발생하는 경우 예상되는 사항에 대해 설명합니다.

  • 검색 및 응답: Azure Cosmos DB 플랫폼은 가용성 영역에서 오류를 감지하는 역할을 합니다. 영역 장애 조치(failover)를 시작하기 위해 어떤 작업도 수행할 필요가 없습니다.
  • Notification: Microsoft는 영역이 비활성화된 경우 자동으로 알리지 않습니다. 그러나 Azure Resource Health 사용하여 개별 리소스의 상태를 모니터링하고 Resource Health 경고 설정하여 문제를 알릴 수 있습니다. 또한 Azure Service Health를 사용하여 영역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.
  • 활성 요청: 가용성 영역을 사용할 수 없게 되면 Azure Cosmos DB 영향을 받는 영역의 복제본에 연결된 진행 중인 요청을 종료하고 애플리케이션은 해당 요청을 다시 시도해야 합니다. 일시적인 오류 처리 지침에 따라 애플리케이션이 준비되었는지 확인합니다.

  • 예상 데이터 손실: 영역 오류로 인한 예상 데이터 손실은 없습니다.

  • 예상 가동 중지 시간: 영역 중단 중에는 트래픽이 재배포될 때 일반적으로 몇 초 동안 지속되는 짧은 중단이 발생할 수 있습니다. 임시 오류 처리 지침에 따라 애플리케이션을 준비합니다.

  • Redistribution: Azure Cosmos DB 들어오는 요청을 다른 가용성 영역의 정상 복제본으로 자동으로 리디렉션합니다. 가용성 영역에 중단이 발생하면 플랫폼은 프로비전된 처리량을 다른 복제본에 자동으로 다시 할당합니다.

영역 복구

가용성 영역이 복구되면 Azure Cosmos DB 가용성 영역에서 복제본을 자동으로 복원하고 복제본 간의 트래픽을 정상적으로 다시 라우팅합니다.

영역 오류 테스트

Azure Cosmos DB 대한 가용성 영역 장애 조치(failover) 및 복구는 Microsoft 의해 완전히 관리됩니다. 가용성 영역 오류 프로세스를 시작하거나 유효성을 검사할 필요가 없습니다.

지역 전체 오류에 대한 복원력

단일 지역에 Azure Cosmos DB 계정을 배포하는 경우 모든 Azure Cosmos DB 노드에 영향을 주는 지역 전체 중단은 일반적으로 데이터 손실을 일으키지는 않지만 애플리케이션이 데이터에 액세스하지 못하게 합니다. Azure Cosmos DB 영향을 받는 지역에서 서비스가 복구된 후 데이터 액세스를 복원합니다. 데이터 손실은 지역에서 복구할 수 없는 재해가 발생하는 경우에만 발생합니다.

드문 지역 중단 사례에 대비하려면 다음 방법 중 하나를 사용하여 다양한 수준의 내구성 및 가용성을 지원하도록 Azure Cosmos DB 구성할 수 있습니다.

다음 표에는 계정 구성 및 중단 유형에 따라 사용할 수 있는 복구 옵션이 요약되어 있습니다. 이 문서의 이후 섹션에서는 이러한 옵션 및 관련 동작에 대한 광범위한 세부 정보를 제공합니다.

Configuration 중단 유형 가용성 영향 내구성 영향 무엇을 해야 할지
단일 지역 계정 지역 서비스 중단 서비스가 복원될 때까지 읽기 및 쓰기 액세스가 손실됩니다. 지역에서 복구할 수 없는 재해가 발생하지 않는 한 데이터 손실이 없습니다. 서비스 복원을 기다리거나 백업에서 다른 지역으로 계정 복원을 요청합니다.
단일 쓰기 지역, 다중 지역 계정 읽기 지역 가동 중단 SDK는 기본 지역 구성에 따라 사용 가능한 지역으로 다시 라우팅됩니다.

계정이 두 지역에 대해서만 강력한 일관성을 사용하거나 고정된 부실성 한계를 초과할 경우, 영향을 받는 지역을 오프라인으로 전환하지 않으면 쓰기 가용성이 상실됩니다.
데이터가 손실되지 않습니다. 나머지 지역에서 충분한 처리량을 보장합니다. 강력하거나 제한된 지연 일관성의 경우 해당 지역을 오프라인으로 전환하는 것이 좋습니다.
단일 쓰기 지역, 다중 지역 계정 쓰기 지역 중단(PPAF 사용) 자동 파티션 수준 장애 조치가 자동으로 이루어지며, 수동 개입이 필요하지 않습니다. 계정이 강력한 일관성을 사용하는 경우 데이터가 손실되지 않습니다. 계정이 강력한 일관성을 사용하지 않는 경우, 지역에서 영구적인 데이터 손실이 발생하는 드물지만 복제되지 않은 데이터가 손실될 수 있습니다. 작업이 필요하지 않습니다. PPAF는 장애 조치(failover)를 자동으로 관리합니다.
단일 쓰기 지역, 다중 지역 계정 쓰기 지역 중단(PPAF 제외) 쓰기 가용성은 지역 오프라인 작업 또는 서비스 관리 장애 조치(failover)가 완료될 때까지 손실됩니다. 읽기 작업은 정상 영역에서 계속됩니다. 계정이 강력한 일관성을 사용하는 경우 데이터가 손실되지 않습니다. 계정이 강력한 일관성을 사용하지 않는 경우, 지역에서 드물게 발생할 수 있는 영구적인 데이터 손실 상황에서 복제되지 않은 데이터가 손실될 수 있습니다. 지역 오프라인 작업을 수행합니다. 서비스 관리 장애 조치(failover)가 사용하도록 설정된 경우 Azure Cosmos DB 자동으로 장애 조치(failover)를 시작하지만 1시간 이상 걸릴 수 있습니다. 중단 중에는 쓰기 영역을 변경하지 마세요.
다중 쓰기 지역 계정 특정 지역 장애 SDK 구성을 통해 정상 지역으로 자동 라우팅; 수동 개입이 필요하지 않습니다. 실패한 지역의 최근 업데이트된 데이터는 나머지 지역에서 사용할 수 없을 수 있습니다. 지역에서 영구적인 데이터 손실이 발생하는 희박한 경우에, 복제되지 않은 데이터가 손실될 수 있습니다. 나머지 지역에서 충분한 처리량을 보장합니다. 복구 후 Azure Cosmos DB는 구성된 충돌 해결 방법을 사용하여 아직 복제되지 않은 데이터를 자동으로 복구합니다.
모든 계정 구성 데이터 손상 또는 실수로 삭제 가용성에 영향을 주지 않습니다. 손상 또는 삭제가 감지되는 시기에 따라 데이터 손실이 발생할 수 있습니다. 지정 시간 복원(연속 백업) 또는 정기 백업에서 복원합니다.

메모

이 문서에서는 Azure Cosmos DB 다중 지역 기능의 안정성 측면에 중점을 둡니다. 전역적으로 분산된 애플리케이션에 대한 성능 향상 및 규모와 같은 여러 읽기 및 쓰기 지역에는 다른 이점이 있습니다. 전체 솔루션 아키텍처를 평가하고 이러한 기능을 사용할 때의 모든 이점을 고려해야 합니다.

SDK 및 복원력

Azure Cosmos DB SDK는 애플리케이션 복원력 전략의 중요한 부분입니다. 다중 지역 계정이 있는 경우 SDK 구성은 연결할 기본 지역 및 제외해야 하는 지역을 포함하여 지역 간에 요청을 라우팅하는 방법에 영향을 줍니다. SDK는 지역 및 파티션의 가용성을 모니터링하고 파티션 수준 회로 차단기를 통해 정상 지역 및 파티션을 사용하도록 동적으로 다시 구성할 수 있습니다.

SDK가 고가용성을 지원하는 방법에 대한 자세한 내용은 사용하는 SDK에 대한 고가용성 설명서를 참조하세요.

지역 가동 중단 시 잠재적인 데이터 손실

여러 지역에 Azure Cosmos DB 계정을 배포하는 경우 데이터 내구성은 계정에서 구성하는 일관성 수준에 따라 달라집니다. 다음 표에서는 모든 일관성 수준에 대해 두 개 이상의 지역에 배포된 Azure Cosmos DB 계정의 RPO(복구 지점 목표)를 자세히 설명합니다. RPO는 지역 중단 시 발생할 수 있는 데이터 손실을 나타냅니다.

일관성 수준 지역 중단에 대한 RPO
세션, 일관된 접두사, 최종 15분 미만
제한된 부실 KT
강력 0

K = 항목의 버전(업데이트)의 수입니다.

T = 마지막 업데이트 이후 시간 간격입니다.

다중 지역 계정의 경우 KT의 최솟값은 100,000개 쓰기 작업 또는 300초입니다. 이 값은 제한된 부실을 사용하는 경우 데이터의 최소 RPO를 정의합니다.

일관성 수준 간 차이점에 대한 자세한 내용은 Azure Cosmos DB의 일관성 수준을 참조하세요.

단일 쓰기 지역이 있는 여러 읽기 지역

솔루션에 지역 가동 중단 동안 지속적인 가동 시간이 필요한 경우 주 지역에서 처리되는 쓰기를 사용하여 여러 지역에 데이터를 복제하도록 Azure Cosmos DB 구성할 수 있습니다. 필요에 따라 특정 읽기 지역에 연결하도록 애플리케이션을 구성하여 성능을 향상시킬 수 있습니다. 지역에 중단이 있는 경우 계정은 정상 지역에서 계속 작동할 수 있습니다.

Azure Cosmos DB 계정의 구조를 설명하는 다이어그램입니다. 지역 A는 읽기 및 쓰기 지역이고, 지역 B는 읽기 전용 지역입니다. 지역 A의 애플리케이션은 지역 A에 있는 Azure Cosmos DB 계정을 대상으로 읽기 및 쓰기를 수행합니다. 지역 B의 애플리케이션은 지역 B에 있는 계정을 대상으로 읽기를 수행하지만, 지역 A에 대해 쓰기를 수행합니다. Azure Cosmos DB는 내부적으로 두 지역 간의 변경 사항을 복제합니다.

지역 간 장애 조치(failover)

우선 순위가 지정된 읽기 지역 목록을 사용하여 Azure Cosmos DB SDK를 구성할 수 있습니다. SDK는 애플리케이션을 목록의 사용 가능한 첫 번째 지역에 연결합니다. 읽기 지역 중단 중에 SDK는 백 엔드 응답 코드를 통해 지역 중단을 감지하고, 사용할 수 없음으로 표시하고, 향후 작업을 기본 설정 목록의 사용 가능한 다음 지역으로 라우팅합니다. 기본 설정 지역 목록이 올바르게 설정되고 비즈니스 및 대기 시간 요구 사항에 부합하는지 확인합니다. 자세한 지침은 Azure Cosmos DB SDK 가용성 문제 해결을 참조하세요.

장애 조치(failover)는 계정의 지역 중 하나를 완전히 또는 부분적으로 사용할 수 없게 만드는 프로세스입니다. 장애 조치(failover)의 효과는 지역이 쓰기 지역인지 읽기 지역인지에 따라 달라집니다.

  • 쓰기 영역을 사용할 수 없게 되면 다른 지역이 쓰기 지역이 됩니다.
  • 읽기 지역을 사용할 수 없게 되면 해당 지역은 읽기 요청을 처리할 수 없으며 다른 지역은 읽기 작업에 대신 사용됩니다.

Azure Cosmos DB 다음과 같은 여러 유형의 장애 조치(failover)를 제공합니다.

  • PPAF(파티션 자동 장애 조치): 내부적으로 Azure Cosmos DB 여러 실제 파티션에 데이터를 분산합니다. 파티션을 지원하는 인프라에 문제가 발생하면 다른 파티션은 영향을 받지 않을 수 있습니다. PPAF를 사용하면 단일 쓰기 지역 계정이 주 지역에서 정상 파티션을 유지하면서 개별 파티션을 보조 지역으로 자동으로 장애 조치(failover)할 수 있습니다. PPAF는 부분 지역 실패 시 가동 중지 시간을 최소화하고 더 빠른 복구를 가능하게 하는 데 도움이 될 수 있습니다. 자세한 내용은 Azure Cosmos DB 참조하세요.

    메모

    파티션당 자동 장애 조치(failover)는 공개 미리 보기로 제공됩니다. 해당 기능은 별도의 서비스 수준 규약 없이 이용할 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

  • 강제 장애 조치: 계정의 지정된 지역을 오프라인으로 전환할 수 있습니다. 이를 고객 관리 장애 조치, 즉 오프라인 지역 작업이라고도 합니다. 가동 중단 시 가용성을 신속하게 복원하는 데 권장되는 방법입니다. 당신은 중단을 감지하고 장애 조치 프로세스를 트리거해야 합니다. 강제 장애 조치(failover)를 사용하여 재해 복구 훈련 중처럼 테스트용 지역 다운 시나리오를 시뮬레이트할 수도 있습니다.

    쓰기 지역을 오프라인으로 전환하면 다음으로 우선 순위가 가장 높은 읽기 지역이 새 쓰기 지역이 됩니다. 읽기 지역을 오프라인으로 전환하면 애플리케이션이 계정의 다른 읽기 지역에 연결할 수 있습니다.

    쓰기 영역의 강제 장애 조치(failover)는 복제되지 않은 쓰기에 대한 데이터 손실 가능성이 있습니다.

    강제 장애 조치(failover) 후 Microsoft가 지역을 다시 활성화해야 합니다. 정상 지역의 경우 이 프로세스는 자동화되지만 최대 며칠이 걸릴 수 있습니다. 지역이 하루 이틀 이내에 다시 온라인 상태가 되지 않는 경우 지원 사례를 열어 지원을 요청합니다.

  • 쓰기 지역 변경: 지역이 정상인 경우 계정의 쓰기 지역을 변경할 수 있습니다. 이 변경은 계정에 대한 쓰기 지역의 계획된 장애 조치입니다.

    새 쓰기 지역이 승격되기 전에 데이터 복제가 따라잡기 때문에 쓰기 지역을 변경하면 데이터가 손실되지 않습니다. 짧은 중단이 있을 수 있지만 재시도 논리 및 기타 일시적인 오류 처리 기술을 사용하는 클라이언트는 일반적으로 상당한 영향을 미치지 않습니다.

    이 작업을 수행하려면 지역이 정상 상태 여야 하므로 지역 가동 중단 중에는 사용할 수 없습니다.

  • 서비스 관리 장애 조치: 계정이 서비스 관리 장애 조치를 사용하는 경우, 지역 간에 장애 조치 시기를 결정할 책임은 Microsoft에 있습니다. 서비스 관리 장애 조치(failover)를 사용하도록 설정하려면 각 지역의 우선 순위를 지정합니다. 그러나 중단을 선언하고 서비스 관리 장애 조치(failover)를 트리거하는 프로세스에는 1시간 이상이 걸릴 수 있습니다. 더 빠른 복구를 위해 서비스 관리 장애 조치(failover)가 트리거되는 것을 기다리는 대신 강제 장애 조치(failover)를 수행합니다.

    계정의 쓰기 지역에 대해 서비스 관리 장애 조치(failover)를 트리거할 경우 복제되지 않은 쓰기가 손실될 수 있습니다.

    서비스 관리 장애 조치(failover) 후 마이크로소프트는 지역을 다시 온라인 상태로 전환해야 합니다. Microsoft 자동으로 지역을 온라인 상태로 만들지만 이 프로세스는 며칠이 걸릴 수 있습니다.

Requirements

Region support: Azure 지역을 Azure Cosmos DB 계정에 대한 읽기 지역으로 구성할 수 있습니다.

Cost

Azure Cosmos DB 계정에 읽기 지역을 추가하면 각 지역에 대한 기존 비용이 증가합니다. 자세한 내용은 Azure Cosmos DB 가격 책정을 참조하세요.

여러 읽기 지역 구성

용량 계획 및 관리

애플리케이션이 지역 간에 요청을 분산하고 한 지역이 오프라인 상태가 되면 나머지 지역은 더 높은 요청 볼륨을 경험합니다. 자동 크기 조정 처리량을 사용하여 수요에 따라 용량을 동적으로 조정합니다. 프로비전된 처리량을 사용하는 경우 서비스 성능 저하 없이 지역의 손실을 처리할 수 있는 적절한 용량을 계획하고 과잉 프로비저닝을 고려합니다. 자세한 내용은 과잉 프로비저닝을 사용하여 용량 관리를 참조하세요.

모든 지역이 정상인 경우의 동작

이 섹션에서는 여러 읽기 지역이 있는 Azure Cosmos DB 계정을 구성할 때 예상되는 작업을 설명하며 모든 지역이 작동합니다.

  • 지역 간 작업: 애플리케이션은 읽기 작업을 수신해야 하는 지역을 구성합니다. 우선 순위가 지정된 지역 목록으로 애플리케이션을 구성하거나 일부 지역을 제외할 수 있습니다. 지역 선택 작동 방식에 대한 자세한 내용은 다공성 환경에서 Azure Cosmos DB SDK의 가용성을 진단하고 문제 해결 참조하세요.

    모든 쓰기 작업은 계정의 쓰기 지역으로 전달됩니다.

  • 지역 간 데이터 복제: 모든 쓰기 작업은 계정의 주 지역에서 발생합니다. 쓰기는 계정의 구성된 일관성 수준에 따라 다른 읽기 지역에 복제됩니다. 최대 복제 지연에 대한 자세한 내용은 지역 중단 중 잠재적인 데이터 손실을 참조하세요.

읽기 지역 오류 중 동작

이 섹션에서는 읽기 지역이 여러 개 있는 Azure Cosmos DB 계정을 구성할 때 예상되는 작업과 계정의 읽기 지역 중 하나에 중단이 발생하는 경우에 대해 설명합니다.

Important

이상적으로 읽기 지역 중단은 SDK 구성에서 기본 지역 목록을 올바르게 구성하여 클라이언트 수준에서 처리해야 합니다. 올바르게 구성되면 SDK는 자동으로 중단을 감지하고 서비스 쪽 장애 조치(failover)를 요구하지 않고 읽기 작업을 사용 가능한 다음 지역으로 다시 라우팅합니다.

  • 검색 및 응답: 중단을 감지하고 응답하는 책임은 계정에서 사용하는 장애 조치 유형에 따라 달라집니다.

    • PPAF: PPAF는 일반적으로 읽기 지역 중단에 적용되지 않습니다. 그러나 일관성이 강한 계정과 두 지역만 있는 계정의 경우 읽기 지역이 손실되면 계정이 단일 지역으로 감소하므로 동적 쿼럼을 유지할 수 없습니다. 이 시나리오에서 PPAF는 영향을 받는 파티션을 정상 지역으로 이동하여 가용성을 유지하기 위해 활성화할 수 있습니다.

    • 강제 장애 조치(failover): 강제 장애 조치(failover)를 수행할 책임이 있습니다. 자세한 단계는 Azure Cosmos DB 계정에 대한 강제 장애 조치(failover) 적용 참조하세요.

      장애 조치(failover)를 수행하지 않으면 계정의 동작은 일관성 수준에 따라 달라집니다.

      • 강력한 일관성: 강력한 일관성을 위해서는 동적 쿼럼을 유지하기 위해 둘 이상의 지역이 필요합니다. 사용할 수 있는 지역이 2개 미만이고 장애 조치(failover)를 수행하지 않으면 서비스가 복원될 때까지 계정이 쓰기 가용성을 잃게 됩니다.

      • 제한된 부실 일관성: 제한된 부실 일관성은 지역 간에 특정 부실 임계값을 유지 관리하는 데 의존합니다. 지역 중단 길이가 임계값을 초과하면 시스템에서 쓰기 간의 일관성을 유지할 수 없습니다. 장애 조치(failover)를 수행하지 않으면 서비스가 복원될 때까지 계정이 쓰기 가용성을 잃게 됩니다.

    • Service-managed failover: 서비스 관리 장애 조치(failover)가 사용하도록 설정된 경우 Microsoft 결국 중단을 감지하고 계정의 장애 조치(failover)를 시작합니다. 그러나 이 프로세스는 상당한 시간이 걸릴 수 있으며, 잠재적으로 1시간 이상 걸릴 수 있습니다. 더 빠른 복구를 위해 서비스 관리 장애 조치(failover)가 트리거되는 것을 기다리는 대신 강제 장애 조치(failover)를 수행합니다.

  • 알림: 지역이 다운된 경우 Microsoft는 자동으로 알리지 않습니다. 그렇지만:

  • 활성 요청: 활성 요청은 종료될 수 있으며 장애 조치(failover)가 완료된 후 클라이언트에서 다시 시도해야 합니다. 클라이언트가 짧은 시간 후에 다시 시도하여 일시적인 오류를 적절하게 처리하는 경우 일반적으로 상당한 영향을 받지 않습니다.

  • 예상 데이터 손실: 읽기 지역의 중단으로 인해 데이터가 손실되지 않습니다. Azure Cosmos DB 읽기 일관성 보장을 계속 적용합니다.

  • 예상 가동 중지 시간: 계정 환경의 가동 중지 시간은 계정에서 사용하는 장애 조치(failover) 유형에 따라 달라집니다.

    • PPAF: PPAF를 사용하도록 설정하면 시스템은 수동 개입 없이 일반적으로 3분 이내에 오류를 자동으로 감지하고 복구합니다.

    • 강제 장애 조치(failover): 가동 중지 시간은 다음에 따라 달라집니다.

      • 정전 발생을 인지하고 장애 조치를 시작하는 데 얼마나 시간이 걸리는지.

      • 장애 조치(failover)에 걸리는 시간은 보통 몇 초입니다.

        Warning

        중단 시나리오 중에는 계정 불일치 및 지연 복구가 발생하므로 영향을 받는 지역에 대한 구성(컨트롤 플레인) 작업을 수행하지 마세요. 피해야 할 컨트롤 플레인 작업의 몇 가지 예는 다음과 같습니다.

        • 쓰기 지역 변경 또는 장애 조치(failover) 우선순위 변경
        • 계정을 다중 쓰기 구성으로 업데이트
        • 일관성 수준 또는 기타 계정 설정 업데이트
        • 프라이빗 엔드포인트 구성 또는 네트워크 설정 업데이트
        • 계정 처리량 업데이트 또는 크기 조정 작업
        • 계정 구성 또는 지역 설정을 수정하는 기타 작업
    • 서비스 관리 장애 조치: Microsoft는 서비스 관리 장애 조치를 시작할 책임이 있으며, 계정이 겪는 가동 중지 시간은 중단을 선언하고 장애 조치를 시작하는 데 걸리는 시간에 따라 결정됩니다. 경우에 따라 1시간 이상이 걸릴 수 있습니다. 계정에 쓰기 중단이 발생하여 쓰기 가용성을 신속하게 복원해야 하는 경우 강제 장애 조치(failover)를 수행합니다.

  • 재배포: 강제 장애 조치 또는 서비스에서 관리하는 장애 조치의 경우 영향을 받는 지역이 연결 해제되고 오프라인 상태로 표시됩니다.

    읽기 지역 중단을 처리하기 위해 애플리케이션 코드를 변경할 필요가 없습니다. Azure Cosmos DB SDK 기본 설정 지역 목록에서 사용 가능한 다음 지역으로 읽기 작업을 리디렉션합니다. 기본 지역 목록에 있는 지역을 사용할 수 없는 경우 읽기 작업은 서비스에 구성된 대로 계정의 현재 쓰기 지역으로 자동으로 대체됩니다.

    메모

    Azure Cosmos DB 계정으로 프라이빗 엔드포인트를 사용하는 경우 오프라인 지역 작업 후에 프라이빗 DNS가 올바르게 라우팅되는지 확인합니다. 자세한 지침은 프라이빗 엔드포인트에 대한 장애 조치(failover) 고려 사항을 참조하세요.

쓰기 지역 오류 중 동작

이 섹션에서는 여러 읽기 지역이 있는 Azure Cosmos DB 계정을 구성할 때 예상되는 작업과 계정의 쓰기 지역에 중단이 발생하는 경우 예상되는 사항에 대해 설명합니다.

  • 검색 및 응답: 중단을 감지하고 응답하는 책임은 계정에서 사용하는 장애 조치 유형에 따라 달라집니다.

    • PPAF: Microsoft는 자동으로 장애를 감지하고, 적절할 경우 일부 파티션의 장애 조치를 자동으로 시작합니다. 애플리케이션은 아무 작업도 수행할 필요가 없습니다.

    • 강제 장애 조치(failover): 강제 장애 조치(failover)를 수행할 책임이 있습니다. 자세한 단계는 Azure Cosmos DB 계정에 대한 강제 장애 조치(failover) 적용 참조하세요.

      장애 조치(failover)를 수행하지 않으면 서비스가 복원될 때까지 계정이 쓰기 가용성을 잃게 됩니다.

      계정의 쓰기 지역이 중단된 경우 쓰기 지역 변경 작업을 수행하지 마세요. 원본 또는 대상 지역의 중단이 있는 경우 쓰기 지역 변경이 성공하지 않습니다. 그 이유는 지역 변경 프로시저에 지역 간의 연결이 필요한 일관성 검사가 포함되어 있기 때문입니다.

    • Service에 의해 관리되는 장애 조치: Microsoft는 자동으로 중단을 감지하고 계정에 대한 장애 조치를 시작합니다. 애플리케이션은 아무 작업도 수행할 필요가 없습니다.

  • 알림: 지역이 다운된 경우 Microsoft는 자동으로 알리지 않습니다. 그렇지만:

  • 활성 요청: 활성 요청은 종료될 수 있으며 장애 조치(failover)가 완료된 후 클라이언트에서 다시 시도해야 합니다. 클라이언트가 짧은 시간 후에 다시 시도하여 일시적인 오류를 적절하게 처리하는 경우 일반적으로 상당한 영향을 받지 않습니다.

  • 예상 데이터 손실: 강력한 일관성으로 계정을 구성하는 경우 데이터 손실이 발생하지 않습니다. 그렇지 않으면 장애 조치가 완료된 후 복제되지 않은 쓰기가 손실될 수 있습니다. 지역 중단 시 예상되는 최대 데이터 손실에 대한 자세한 내용은 지역 중단 시 잠재적인 데이터 손실을 참조하세요.

  • 예상 가동 중지 시간: 계정 환경의 가동 중지 시간은 계정에서 사용하는 장애 조치(failover) 유형에 따라 달라집니다.

    • PPAF: PPAF를 사용하도록 설정하면 일반적으로 약 3분 정도의 짧은 중단이 예상됩니다.

    • 강제 장애 조치(failover): 가동 중지 시간은 다음에 따라 달라집니다.

      • 장애를 확인하고 장애 조치(failover)를 시작하는 데 걸리는 시간.
      • 장애 조치에 걸리는 시간은 일반적으로 몇 초입니다.

    Warning

    중단 시나리오 동안 영향을 받는 지역의 제어 평면 작업을 수행하면 계정 불일치와 복구 지연이 발생할 수 있으므로 이를 피해야 합니다. 피해야 할 컨트롤 플레인 작업의 몇 가지 예는 다음과 같습니다.

    • 쓰기 지역 변경 또는 장애 조치 우선순위 변경
    • 계정을 다중 쓰기 구성으로 업데이트
    • 일관성 수준 또는 기타 계정 설정 업데이트
    • 프라이빗 엔드포인트 구성 또는 네트워크 설정 업데이트
    • 계정 처리량 업데이트 또는 크기 조정 작업
    • 계정 구성 또는 지역 설정을 수정하는 기타 작업
    • 서비스 관리 장애 조치: Microsoft는 서비스 관리 장애 조치를 시작할 책임이 있으며, 귀하의 계정에서 발생하는 가동 중지 시간은 Microsoft가 중단을 선언하고 장애 조치를 시작하는 데 소요되는 시간에 기반합니다. 경우에 따라 1시간 이상이 걸릴 수 있습니다. 쓰기 가용성을 신속하게 복원하려면 강제 장애 조치(failover)를 수행합니다.
  • 재배포: 쓰기 트래픽 재배포는 계정에서 사용하는 장애 조치(failover) 유형에 따라 달라집니다.

    • PPAF: Azure Cosmos DB는 자동으로 비정상 파티션을 정상 지역으로 장애 조치합니다.

    • 강제 장애 조치(failover): 강제 장애 조치(failover)를 수행하면 계정의 쓰기 지역이 지정한 지역으로 변경됩니다.

    메모

    Azure Cosmos DB 계정으로 프라이빗 엔드포인트를 사용하는 경우 오프라인 지역 작업 후에 프라이빗 DNS가 올바르게 라우팅되는지 확인합니다. 자세한 지침은 프라이빗 엔드포인트에 대한 장애 조치(failover) 고려 사항을 참조하세요.

    • 서비스 관리형 장애 조치: Azure Cosmos DB는 계정의 보조 지역 중 하나를 자동으로 새 기본 쓰기 지역으로 프로모션합니다. 장애 조치는 지정한 지역 우선 순위의 순서대로 다른 지역에 수행됩니다.

지역 복구

Microsoft 지역을 다시 온라인 상태로 만들어야 합니다. 중단 후 지역이 복구되면 Microsoft 자동으로 지역을 온라인 상태로 만듭니다. 그러나 이 프로세스는 며칠이 걸릴 수 있습니다.

Important

강제 장애 조치(failover) 후 Microsoft 자동으로 정상 지역에 대해 지역을 다시 온라인 상태로 전환합니다. 지역이 하루 이틀 이내에 다시 온라인 상태가 되지 않는 경우 지원 사례를 열어 지원을 요청합니다.

지역이 온라인 상태가 된 후 중단이 읽기 지역 또는 쓰기 지역에 있었는지에 따라 수행하는 작업이 다릅니다.

  • 읽기 지역 중단 후: 영향받은 지역이 다시 온라인 상태로 전환되면 현재 쓰기 지역과 동기화되고, 동기화가 완료된 후에 읽기 요청을 다시 처리할 수 있습니다. 후속 읽기는 애플리케이션 코드를 변경하지 않고도 복구된 지역으로 리디렉션됩니다. 이전에 실패한 지역의 장애 조치 및 다시 조인 중에 Azure Cosmos DB는 읽기 일관성 보장을 계속 적용합니다.

  • 쓰기 지역 중단 후: 영향을 받는 지역이 다시 온라인 상태가 되면 지역은 Azure 포털에서 "온라인"으로 표시되고 읽기 지역으로 사용할 수 있게 됩니다. 이 시점에서 쓰기 지역을 복구된 지역으로 다시 변경하는 것이 안전합니다.

    Important

    복구된 지역은 복구 되면 자동으로 쓰기 영역으로 다시 승격되지 않습니다 . 안전한 경우 복구된 지역을 쓰기 지역으로 다시 변경하는 것은 사용자의 책임입니다.

    쓰기 지역을 변경하기 전, 동안 또는 후에 는 데이터 또는 가용성 손실이 없습니다 . 애플리케이션은 고가용성을 계속 유지합니다.

    지역이 오프라인 상태가 되기 전에 쓰기가 복제되지 않은 경우, 충돌 피드에서 복제되지 않은 쓰기를 읽을 수 있습니다. 애플리케이션은 충돌 피드를 읽고, 애플리케이션별 논리에 따라 충돌을 해결하고, 업데이트된 데이터를 적절하게 컨테이너에 다시 쓸 수 있습니다.

지역 오류 테스트

Azure Cosmos DB 계정이 고가용성인 경우에도 애플리케이션이 지역 장애 조치(failover)를 올바르게 처리하지 못할 수 있습니다. 애플리케이션 테스트 또는 DR(재해 복구) 드릴의 일환으로 애플리케이션의 엔드투엔드 고가용성을 테스트하려면, 계정에 대해 서비스 관리형 장애 조치를 일시적으로 사용하지 않도록 설정합니다. PowerShell, Azure CLI 또는 Azure 포털을 사용하여 강제 장애 조치를 수행한 후 애플리케이션을 모니터링합니다. 테스트를 완료한 후 해당 지역이 자동으로 온라인 상태로 복귀하면 주 지역으로 전환하여 장애 복구한 다음, 계정에 대한 서비스 관리 장애 조치를 복원할 수 있습니다. 지역이 하루 이틀 이내에 다시 온라인 상태가 되지 않는 경우 지원 사례를 열어 지원을 요청합니다.

계정에서 PPAF를 사용하는 경우 파티션 장애 조치(failover)를 시뮬레이션할 수 있습니다. 자세한 내용은 PPAF 설치 테스트(오류 시뮬레이션)를 참조하세요.

다중 쓰기 지역

여러 지역에서 쓰기를 허용하도록 Azure Cosmos DB를 구성할 수 있습니다. 이 구성은 지역 중단에 매우 높은 복원력을 제공할 수 있습니다. 지리적으로 분산된 애플리케이션에서 쓰기 대기 시간을 줄이는 데에도 유용합니다.

Azure Cosmos DB 계정을 보여 주는 다이어그램입니다. 지역 A와 지역 B는 모두 쓰기 및 읽기 지역입니다. 지역 A의 애플리케이션은 지역 A의 Azure Cosmos DB 계정에 대해 읽기 및 쓰기를 수행합니다. 지역 B의 애플리케이션은 지역 B의 Azure Cosmos DB 계정에 대해 읽기 및 쓰기를 수행합니다. 내부적으로 Azure Cosmos DB는 지역 간 변경 내용을 비동기적으로 복제합니다.

Azure Cosmos DB 계정이 여러 쓰기 지역을 사용하도록 구성된 경우 강력한 일관성이 지원되지 않으며 쓰기 충돌이 발생할 수 있습니다. 허브 지역은 쓰기 충돌에서 중재자 역할을 합니다. 이 충돌을 해결하는 방법에 대한 자세한 내용은 여러 쓰기 지역 사용 시 충돌 형식 및 해결 정책을 참조하세요.

애플리케이션의 디자인과 여러 쓰기 지역에서 작동하는 방식을 고려하는 것이 중요합니다. 다중 지역 쓰기에 대한 모범 사례를 검토합니다.

Requirements

지원: Azure 지역을 Azure Cosmos DB 계정에 대한 읽기 또는 쓰기 지역으로 구성할 수 있습니다.

Cost

Azure Cosmos DB 계정에 쓰기 지역을 추가하면 각 지역에 대한 기존 비용이 증가합니다. 자세한 내용은 Azure Cosmos DB 가격 책정을 참조하세요.

여러 쓰기 지역 구성

계정을 만들 때 또는 계정을 만든 후 언제든지 계정에 여러 쓰기 지역을 구성할 수 있습니다. 자세한 내용은 여러 쓰기 지역 구성을 참조하세요.

여러 쓰기 지역을 효과적으로 사용하려면 앱도 적절하게 구성해야 합니다. Azure Cosmos DB 사용하는 애플리케이션에서 다중 지역 쓰기 구성을 참조하세요.

용량 계획 및 관리

애플리케이션이 지역 간에 요청을 분산하고 한 지역이 오프라인 상태가 되면 나머지 지역은 더 높은 요청 볼륨을 경험합니다. 자동 크기 조정 처리량을 사용하여 수요에 따라 용량을 동적으로 조정합니다. 프로비전된 처리량을 사용하는 경우 서비스 성능 저하 없이 지역의 손실을 처리할 수 있는 적절한 용량을 계획하고 과잉 프로비저닝을 고려합니다. 자세한 내용은 과잉 프로비저닝을 사용하여 용량 관리를 참조하세요.

모든 지역이 정상인 경우의 동작

이 섹션에서는 여러 쓰기 지역이 있는 Azure Cosmos DB 계정을 구성할 때 예상되는 작업을 설명하며 모든 지역이 작동합니다.

  • 지역 간 작업: 계정이 여러 쓰기 지역으로 구성된 경우 애플리케이션은 읽기 및 쓰기 작업에 사용해야 하는 지역을 구성합니다. 우선 순위가 지정된 지역 목록으로 애플리케이션을 구성하거나 일부 지역을 제외할 수 있습니다. 지역 선택 작동 방식에 대한 자세한 내용은 다공성 환경에서 Azure Cosmos DB SDK의 가용성을 진단하고 문제 해결 참조하세요. 애플리케이션을 구성하는 방법을 알아보려면 Azure Cosmos DB 사용하는 애플리케이션에서 다중 지역 쓰기 구성을 참조하세요.

  • 지역 간 데이터 복제: 데이터는 지역 간에 비동기적으로 복제됩니다. 복제 지연 시간은 계정의 일관성 수준에 따라 달라집니다. 다중 지역 쓰기에는 강력한 일관성을 사용할 수 없습니다. 자세한 내용은 지역 가동 중단 시 잠재적인 데이터 손실을 참조하세요.

    계정이 여러 쓰기 지역에 대해 구성된 경우 다른 지역의 애플리케이션에서 서로 충돌하는 변경 내용을 적용할 수 있습니다. Azure Cosmos DB 충돌 해결 기능을 제공합니다. 자세한 내용은 여러 쓰기 지역을 사용하는 경우 충돌 유형 및 해결 정책을 참조하세요. 고유한 충돌 해결 정책을 구성하는 방법에 대한 자세한 내용은 Azure Cosmos DB 참조하세요.

    메모

    동일한 문서 ID를 자주 업데이트하거나 TTL이 만료되거나 삭제된 후 동일한 문서 ID를 자주 다시 만들면 시스템에서 발생하는 충돌 수가 증가하여 복제 성능에 부정적인 영향을 줍니다.

지역 오류 중 동작

이 섹션에서는 여러 쓰기 지역이 있는 Azure Cosmos DB 계정을 구성할 때 예상되는 작업을 설명하며 계정의 읽기 또는 쓰기 지역 중 하나에 중단이 발생합니다.

  • 검색 및 응답: 애플리케이션이 지역 손실을 감지합니다. Azure Cosmos DB SDK는 읽기 및 쓰기 작업을 정상 지역으로 라우팅하는 자동 지역 선택 기능을 제공합니다.
  • 알림: 지역이 다운된 경우 Microsoft는 자동으로 알리지 않습니다. 그렇지만:

  • 활성 요청: 활성 요청은 종료될 수 있으며 장애 조치(failover)가 완료된 후 클라이언트에서 다시 시도해야 합니다. 클라이언트가 짧은 시간 후에 다시 시도하여 일시적인 오류를 적절하게 처리하는 경우 일반적으로 상당한 영향을 받지 않습니다.

  • 예상 데이터 손실: 최근에 업데이트된 데이터는 다른 지역에서 사용할 수 없게 될 수 있습니다. 지역 중단 시 예상되는 최대 데이터 손실에 대한 자세한 내용은 지역 중단 시 잠재적인 데이터 손실을 참조하세요. 가능성은 낮지만, 영향을 받는 지역에서 영구적인 데이터 손실이 발생할 경우 복제되지 않은 데이터가 손실될 수 있습니다.

  • 예상 가동 중지 시간: SDK가 올바르게 구성 ApplicationRegions 되었거나 PreferredRegions구성되는 경우 다중 쓰기 구성에는 예상되는 가동 중지 시간이 없습니다.

    Tip

    최상의 결과를 얻으려면 전역적으로 분산된 애플리케이션은 Azure Front Door 또는 Azure Traffic Manager 같은 전역 부하 분산 서비스에서 선행되어야 합니다. 이러한 서비스는 지역 성능 저하를 감지하고 트래픽을 정상 지역의 애플리케이션 인스턴스로 자동으로 라우팅할 수 있습니다.

  • Redistribution: Azure Cosmos DB SDK는 지역이 비정상임을 자동으로 검색하고 읽기 및 쓰기 작업을 기본 설정 지역 목록에서 사용 가능한 다음 지역으로 리디렉션합니다. 애플리케이션 코드에는 변경이 필요하지 않습니다.

    Tip

    애플리케이션이 Azure Front Door 또는 Traffic Manager에 의해 앞에 있는 경우 해당 서비스는 지역 성능 저하를 감지하고 트래픽을 정상 지역으로 라우팅합니다.

지역 복구

영향을 받는 지역이 다시 온라인 상태가 되면 지역은 Azure 포털에서 "온라인"으로 표시되고 다시 사용할 수 있게 됩니다.

지역이 실패할 때 복제되지 않은 쓰기 데이터는 충돌 피드를 통해 사용할 수 있습니다. 애플리케이션은 충돌 피드를 읽고, 애플리케이션별 논리에 따라 충돌을 해결하고, 업데이트된 데이터를 적절하게 Azure Cosmos DB 컨테이너에 다시 쓸 수 있습니다.

지역 오류 테스트

다중 지역 쓰기 장애 조치 시나리오를 테스트하려면 강제 장애 조치를 사용하여 쓰기 지역을 오프라인으로 전환할 수 있습니다. 이 프로세스는 지역 중단을 시뮬레이션하고 애플리케이션이 응답하는 방식을 관찰할 수 있습니다.

백업 및 복원

대부분의 솔루션의 경우 백업에만 의존해서는 안 됩니다. 대신 이 가이드에 설명된 다른 기능을 사용하여 복원력 요구 사항을 지원합니다. 그러나 백업은 다른 방법이 사용하지 않는 일부 위험으로부터 보호합니다. 자세한 내용은 중복도, 복제 및 백업이란?을 참조하세요.

사용자의 애플리케이션에서 실수로 인한 삭제 또는 기타 문제로 인해 데이터 손실이 발생할 수 있습니다. 단일 지역 계정을 사용하는 경우 Azure Cosmos DB 지역에서 복구할 수 없는 재해로 인해 데이터 손실이 발생할 수도 있습니다. 데이터 손실로부터 보호하기 위해 Azure Cosmos DB 백업 및 복원 기능 집합을 제공합니다. 복구 가능성 요구 사항 및 비용 요구 사항에 따라 백업 및 보존을 구성할 수 있습니다. 자세한 내용은 Azure Cosmos DB의 온라인 백업 및 주문형 데이터 복원을 참조하세요.

서비스 유지 관리에 대한 복원력

Azure Cosmos DB 개별 컴퓨팅 노드의 모든 세부 정보를 투명하게 관리하고 패치 및 기타 유형의 계획된 유지 관리를 자동으로 수행합니다. 가용성 및 대기 시간에 대한 Azure Cosmos DB SLA는 시스템에서 수행하는 모든 자동 유지 관리 작업을 통해 적용됩니다.

서비스 수준 약정

Azure 서비스에 대한 SLA(서비스 수준 계약)는 각 서비스의 예상 가용성과 솔루션이 가용성 기대치를 달성하기 위해 충족해야 하는 조건을 설명합니다. 자세한 내용은 온라인 서비스 SLA를 참조하세요.

Azure Cosmos DB 가용성, 대기 시간, 처리량 및 일관성을 비롯한 다양한 구성 및 서비스 특성에 대한 SLA를 제공합니다.

가용성 SLA는 다음 제품 기능을 사용하는지 여부에 따라 다릅니다.

  • 프로비전된 처리량
  • 가용성 영역이 지원되는 단일 지역 계정(영역 중복성)
  • 여러 읽기 지역을 사용하는 계정
  • 여러 쓰기 지역을 사용하는 계정(중요 비즈니스용 계층)