Azure Cosmos DB의 고가용성 달성

적용 대상: NoSQL MongoDB Cassandra Gremlin 테이블

고가용성을 사용하여 솔루션을 빌드하려면 모든 구성 요소의 안정성 특성을 평가해야 합니다. Azure Cosmos DB는 솔루션에 대한 고가용성을 달성하는 데 도움이 되는 기능 및 구성 옵션을 제공합니다.

이 문서에서 사용하는 용어는 다음과 같습니다.

  • RTO(복구 시간 목표): Azure Cosmos DB에 영향을 주는 중단 시작과 전체 가용성 복구 사이의 시간입니다.
  • RPO(복구 지점 목표): 올바르게 복원된 마지막 쓰기와 Azure Cosmos DB에 영향을 주는 중단 시작 시간 사이의 시간입니다.

참고

예상 및 최대 RPO 및 RTO는 Azure Cosmos DB에서 발생하는 가동 중단의 종류에 따라 달라집니다. 예를 들어 단일 노드의 중단은 전체 지역의 중단과 예상 RTO 및 RPO가 다릅니다.

이 문서에서는 Azure Cosmos DB 가용성 및 해당 Azure Cosmos DB 구성 옵션에 영향을 줄 수 있는 이벤트를 자세히 설명합니다.

복제본 유지 관리

Azure Cosmos DB는 개별 컴퓨팅 노드의 모든 세부 정보를 투명하게 관리하는 다중 테넌트 서비스입니다. 사용자는 어떤 종류의 패치 또는 계획된 유지 관리에 대해 걱정할 필요가 없습니다. Azure Cosmos DB는 시스템에서 수행하는 모든 자동 유지 관리 작업을 통해 가용성 및 P99 대기 시간에 대한 SLA 를 보장합니다.

복제본 가동 중단

복제본 중단 은 Azure 지역에 배포된 Azure Cosmos DB 클러스터의 개별 노드 중단입니다.

Azure Cosmos DB는 4개의 복제본 쿼럼 내에서 계정에 대해 각 Azure 지역에 있는 데이터의 복제본을 3개 이상 보장하여 복제본 중단을 자동으로 완화합니다. 이렇게 하면 애플리케이션 변경 또는 구성 없이 개별 노드 중단에 대해 RTO가 0이고 RPO가 0이 됩니다.

많은 Azure 지역에서 가용성 영역에 Azure Cosmos DB 클러스터를 배포할 수 있습니다. 가용성 영역은 물리적으로 분리되어 있고 고유한 전원, 네트워크 및 냉각을 제공하기 때문에 SLA를 증가시킬 수 있습니다. 가용성 영역을 사용하여 Azure Cosmos DB 계정을 배포하는 경우 Azure Cosmos DB는 영역 중단 시에도 RTO 0 및 RPO 0을 제공합니다.

추가 사용자 입력 없이 단일 Azure 지역에 배포하는 경우 Azure Cosmos DB는 노드 중단에 대한 복원력이 있습니다. 가용성 영역 간에 중복성을 사용하도록 설정하면 Azure Cosmos DB가 요금 인상으로 인해 영역 중단에 탄력적입니다.

Azure Cosmos DB 계정에 새 지역을 추가할 때만 영역 중복성을 구성할 수 있습니다. 기존 지역의 경우 지역을 제거한 다음 영역 중복을 사용하도록 설정하여 다시 추가하여 영역 중복을 사용하도록 설정할 수 있습니다. 단일 지역 계정의 경우 이 방법을 사용하려면 일시적으로 장애 조치(failover)할 지역을 추가한 다음 영역 중복성을 사용하도록 설정된 원하는 지역을 제거하고 추가해야 합니다.

기본적으로 Azure Cosmos DB 계정은 여러 가용성 영역을 사용하지 않습니다. 다음과 같은 방법으로 여러 가용성 영역 전체에서 배포를 사용하도록 설정할 수 있습니다.

Azure Cosmos DB 계정이 N개의 Azure 지역에 배포되는 경우 모든 데이터의 N x 4개 복사본이 있습니다. Azure Cosmos DB가 각 지역의 데이터를 복제하는 방법에 대한 자세한 내용은 Azure Cosmos DB를 사용하여 전역 배포를 참조하세요. 두 개 이상의 지역에 Azure Cosmos DB 계정을 사용하면 애플리케이션의 가용성이 향상되고 연결된 지역에서 대기 시간이 짧아질 수 있습니다.

지역 가동 중단

지역 중단 은 모든 가용성 영역에서 Azure 지역의 모든 Azure Cosmos DB 노드에 영향을 주는 중단입니다. 드문 지역 가동 중단의 경우 내구성 및 가용성의 다양한 결과를 지원하도록 Azure Cosmos DB를 구성할 수 있습니다.

내구성

Azure Cosmos DB 계정이 단일 지역에 배포되면 일반적으로 데이터 손실이 발생하지 않습니다. Azure Cosmos DB 서비스가 영향을 받는 지역에서 복구한 후 데이터 액세스가 복원됩니다. 데이터 손실은 Azure Cosmos DB 지역에서 복구할 수 없는 재해로만 발생할 수 있습니다.

Azure Cosmos DB는 지역의 치명적인 재해로 인해 발생할 수 있는 완전한 데이터 손실로부터 보호하기 위해 다음 두 가지 백업 모드를 제공합니다.

  • 연속 백업은 100초마다 각 지역을 백업합니다. 1초 단위로 특정 시점으로 데이터를 복원할 수 있습니다. 각 지역에서 백업은 해당 지역에서 커밋된 데이터에 따라 달라집니다.
  • 주기적 백업은 파티션 간 동기화 없이 계정 아래의 모든 컨테이너에서 모든 파티션을 완전히 백업합니다. 최소 백업 간격은 1시간입니다.

Azure Cosmos DB 계정이 여러 지역에 배포되면 데이터 내구성은 계정에서 구성하는 일관성 수준에 따라 달라집니다. 다음 표에서는 모든 일관성 수준에 대해 두 개 이상의 지역에 배포된 Azure Cosmos DB 계정의 RPO를 자세히 설명합니다.

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

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

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

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

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

가용성

지역 가동 중단 중에 솔루션에 지속적인 가용성이 필요한 경우 여러 지역에 데이터를 복제하고 필요한 경우 사용 가능한 지역으로 투명하게 장애 조치(failover)되도록 Azure Cosmos DB를 구성할 수 있습니다.

단일 지역 계정은 지역 가동 중단 후 가용성이 손실될 수 있습니다. 항상 고가용성을 보장하려면 단일 쓰기 지역 및 최소 1초(읽기) 지역으로 Azure Cosmos DB 계정을 설정하고 서비스 관리 장애 조치(failover)를 사용하도록 설정하는 것이 좋습니다.

서비스 관리 장애 조치(failover)를 사용하면 Azure Cosmos DB가 내구성 섹션의 앞부분에서 설명한 대로 데이터 손실의 비용으로 가용성을 유지하기 위해 다중 지역 계정의 쓰기 지역을 장애 조치(failover)할 수 있습니다. 지역 장애 조치(failover)는 Azure Cosmos DB 클라이언트에서 검색되고 핸들됩니다. 애플리케이션에서 변경할 필요가 없습니다. 여러 읽기 지역 및 서비스 관리 장애 조치(failover)를 사용하도록 설정하는 방법에 대한 지침은 Azure Portal 사용하여 Azure Cosmos DB 계정 관리를 참조하세요.

중요

서비스 관리 장애 조치(failover)를 사용하도록 프로덕션 워크로드에 사용되는 Azure Cosmos DB 계정을 구성하는 것이 좋습니다. 이 구성을 사용하면 Azure Cosmos DB가 계정 데이터베이스를 사용 가능한 지역으로 자동으로 장애 조치(failover)할 수 있습니다.

이 구성이 없는 경우 계정은 쓰기 지역 중단의 전체 기간 동안 쓰기 가용성이 손실됩니다. 지역 연결이 부족하여 수동 장애 조치(failover)가 성공하지 못합니다.

다중 쓰기 지역

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

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

중요

내부 Azure Cosmos DB 아키텍처로 인해 여러 쓰기 지역을 사용하면 지역 중단 중에 쓰기 가용성이 보장되지 않습니다. 지역 가동 중단 중에 고가용성을 달성하기 위한 가장 좋은 구성은 서비스 관리 장애 조치(failover)를 사용하는 단일 쓰기 지역입니다.

충돌 해결 지역

Azure Cosmos DB 계정이 다중 지역 쓰기로 구성된 경우 지역 중 하나가 쓰기 충돌 시 중재자 역할을 합니다. 이러한 충돌이 발생하면 일관된 해결을 위해 이 지역으로 라우팅됩니다.

다중 지역 쓰기에 대한 모범 사례

다음은 여러 지역에 쓸 때 고려해야 할 몇 가지 모범 사례입니다.

로컬 트래픽을 로컬로 유지

다중 지역 쓰기를 사용하는 경우 애플리케이션은 로컬 지역에서 시작되는 읽기 및 쓰기 트래픽을 로컬 Cosmos DB 지역에 엄격하게 발급해야 합니다. 최적의 성능을 위해 지역 간 호출을 피합니다.

애플리케이션은 다음 안티패턴을 방지하여 충돌을 최소화하는 것이 중요합니다.

  • 모든 지역에 동일한 쓰기 작업을 전송하여 빠른 응답 시간을 얻을 확률을 높입니다.

  • 요청별로 읽기 또는 쓰기 작업에 대한 대상 지역을 임의로 결정

  • 라운드 로빈 정책을 사용하여 요청별로 읽기 또는 쓰기 작업의 대상 지역 결정

복제 지연에 대한 종속성 방지

강력한 일관성을 위해 다중 지역 쓰기 계정을 구성할 수 없습니다. Azure Cosmos DB가 데이터를 전역적으로 비동기적으로 복제하는 동안 데이터를 로컬로 복제한 직후에 응답하도록 작성되는 지역입니다.

자주 발생하지는 않지만 데이터를 지역 복제할 때 하나 또는 몇 개의 파티션에서 복제 지연이 발생할 수 있습니다. 복제 지연은 네트워크 트래픽의 드문 블립 또는 평소보다 높은 충돌 해결 속도로 인해 발생할 수 있습니다.

예를 들어 애플리케이션이 지역 A에 쓰지만 지역 B에서 읽는 아키텍처는 두 지역 간의 복제 지연에 대한 종속성을 도입합니다. 그러나 애플리케이션이 동일한 지역에 읽고 쓰는 경우 복제 지연이 있는 경우에도 성능은 일정하게 유지됩니다.

쓰기 작업에 대한 세션 일관성 사용량 평가

세션 일관성에서는 읽기 및 쓰기 작업 모두에 세션 토큰을 사용합니다.

읽기 작업의 경우 Azure Cosmos DB는 지정된(또는 최신) 세션 토큰에 해당하는 데이터를 수신하도록 보장하여 캐시된 세션 토큰을 서버에 보냅니다.

쓰기 작업의 경우 Azure Cosmos DB는 서버가 제공된 세션 토큰을 따라잡은 경우에만 데이터를 유지할 수 있도록 세션 토큰을 데이터베이스에 보냅니다. 단일 지역 쓰기 계정에서 쓰기 지역은 항상 세션 토큰을 따라잡도록 보장됩니다. 그러나 다중 지역 쓰기 계정에서 작성하는 지역이 다른 지역에 발급된 쓰기를 따라잡지 못했을 수 있습니다. 클라이언트가 지역 B의 세션 토큰을 사용하여 지역 A에 쓰는 경우 지역 A는 지역 B에서 변경된 내용을 따라잡을 때까지 데이터를 유지할 수 없습니다.

클라이언트 인스턴스 간에 세션 토큰을 전달할 때는 읽기 작업에만 세션 토큰을 사용하고 쓰기 작업에는 사용하지 않는 것이 가장 좋습니다.

동일한 문서에 대한 신속한 업데이트 완화

충돌의 부재를 해결하거나 확인하기 위한 서버의 업데이트는 동일한 문서가 반복적으로 업데이트될 때 애플리케이션에서 트리거하는 쓰기와 충돌할 수 있습니다. 동일한 문서에 대한 반복 업데이트를 연속해서 반복하면 충돌 해결 중에 더 높은 대기 시간이 발생합니다.

동일한 문서에 대한 반복 업데이트가 가끔 발생하는 것은 불가피하지만, 안정적인 상태 트래픽이 장기간에 걸쳐 동일한 문서에 대한 빠른 업데이트를 볼 경우 새 문서가 만들어지는 아키텍처를 탐색하는 것이 좋습니다.

지역 가동 중단 중에 발생할 수 있는 작업

단일 지역 계정의 클라이언트는 서비스가 복원될 때까지 읽기 및 쓰기 가용성이 손실됩니다.

다중 지역 계정은 다음 구성 및 중단 유형에 따라 다른 동작을 경험합니다.

구성 Outage 가용성 영향 내구성 영향 수행할 작업
단일 쓰기 지역 읽기 지역 가동 중단 모든 클라이언트는 읽기를 다른 지역으로 자동으로 리디렉션합니다. 모든 구성에 대한 읽기 또는 쓰기 가용성 손실은 없습니다. 예외는 강력한 일관성을 가진 두 지역의 구성으로, 서비스가 복원될 때까지 쓰기 가용성이 손실됩니다. 또는 서비스 관리 장애 조치(failover)를 사용하도록 설정하면 서비스가 지역을 실패로 표시하고 장애 조치(failover)가 발생합니다. 데이터가 손실되지 않습니다. 가동 중단 중에는 읽기 트래픽을 지원하기 위해 나머지 지역에 충분한 프로비전된 RU(요청 단위)가 있는지 확인합니다.

중단이 끝나면 프로비전된 RU를 적절하게 다시 조정합니다.
단일 쓰기 지역 쓰기 지역 가동 중단 클라이언트는 읽기를 다른 지역으로 리디렉션합니다.

서비스 관리 장애 조치(failover)가 없으면 클라이언트에서 쓰기 가용성 손실이 발생합니다. 쓰기 가용성 복원은 중단이 종료되면 자동으로 발생합니다.

서비스 관리 장애 조치(failover)를 사용하면 서비스가 선택한 새 쓰기 지역으로의 장애 조치(failover)를 관리할 때까지 클라이언트에서 쓰기 가용성 손실이 발생합니다.
강력한 일관성 수준을 선택하지 않으면 서비스가 일부 데이터를 나머지 활성 지역에 복제하지 않을 수 있습니다. 이 복제는 선택한 일관성 수준에 따라 달라집니다. 영향을 받는 지역에서 영구적인 데이터 손실이 발생하면 설명되지 않은 데이터가 손실될 수 있습니다. 가동 중단 중에는 읽기 트래픽을 지원하기 위해 남은 지역에 프로비전된 RU가 충분한지 확인합니다.

중단 중에는 성공할 수 없으므로 수동 장애 조치(failover)를 트리거하지 마세요.

중단이 끝나면 프로비전된 RU를 적절하게 다시 조정합니다. NoSQL용 API를 사용하는 계정은 충돌 피드에서 실패한 지역의 설명되지 않은 데이터를 복구할 수도 있습니다.
다중 쓰기 지역 모든 지역 가동 중단 서비스 관리 장애 조치(failover)를 사용하는 단일 쓰기 지역과 유사한 쓰기 가용성의 일시적인 손실이 발생할 수 있습니다. 충돌 해결 지역의 장애 조치(failover)로 인해 중단 시 많은 수의 충돌하는 쓰기가 발생하는 경우에도 쓰기 가용성이 손실될 수 있습니다. 선택한 일관성 수준에 따라 실패한 지역의 최근 업데이트된 데이터를 나머지 활성 지역에서 사용할 수 없을 수 있습니다. 영향을 받는 지역에서 영구적인 데이터 손실이 발생하면 설명되지 않은 데이터가 손실될 수 있습니다. 가동 중단 중에는 더 많은 트래픽을 지원하기 위해 나머지 지역에 프로비전된 RU가 충분한지 확인합니다.

중단이 끝나면 프로비전된 RU를 적절하게 재조정할 수 있습니다. 가능하면 Azure Cosmos DB는 실패한 지역에서 설명되지 않은 데이터를 자동으로 복구합니다. 이 자동 복구는 NoSQL용 API를 사용하는 계정에 대해 구성하는 충돌 해결 방법을 사용합니다. 다른 API를 사용하는 계정의 경우 이 자동 복구는 마지막 쓰기 승리를 사용합니다.

읽기 지역 가동 중단에 대한 추가 정보

  • 영향을 받는 지역은 자동으로 연결이 끊어지고 오프라인으로 표시됩니다. Azure Cosmos DB SDK는 읽기 호출을 기본 설정 지역 목록에서 사용 가능한 다음 지역으로 리디렉션합니다.

  • 기본 설정 지역 목록에 있는 지역을 사용할 수 없는 경우 호출은 자동으로 현재 쓰기 지역으로 대체됩니다.

  • 읽기 지역 중단을 처리하기 위해 애플리케이션 코드에서 변경할 필요가 없습니다. 영향을 받는 읽기 지역이 다시 온라인 상태가 되면 현재 쓰기 지역과 자동으로 동기화되고 읽기 요청을 다시 제공할 수 있습니다.

  • 후속 읽기는 애플리케이션 코드를 변경하지 않고도 복구된 지역으로 리디렉션됩니다. 이전에 실패한 지역의 장애 조치(failover) 및 재가입 중에 Azure Cosmos DB는 읽기 일관성 보장을 계속 적용합니다.

  • Azure 쓰기 지역이 영구적으로 복구할 수 없는 드물고 불행한 경우에도 다중 지역 Azure Cosmos DB 계정이 강력한 일관성으로 구성된 경우 데이터 손실이 없습니다. 다중 지역 Azure Cosmos DB 계정에는 내구성 섹션의 앞부분에서 지정한 내구성 특성이 있습니다.

쓰기 지역 가동 중단에 대한 추가 정보

  • Azure Cosmos DB 계정에서 자동(서비스 관리) 장애 조치(failover) 가 구성된 경우 쓰기 지역 중단 중에 Azure Cosmos DB 계정은 보조 지역을 새 기본 쓰기 지역으로 자동으로 승격합니다. 장애 조치(failover)는 지정한 지역 우선 순위의 순서대로 다른 지역으로 발생합니다.

  • 수동 장애 조치(failover)는 트리거되어서는 안 되며 원본 또는 대상 지역이 중단된 상태에서는 성공하지 못합니다. 그 이유는 장애 조치(failover) 프로시저에 지역 간 연결이 필요한 일관성 검사가 포함되어 있기 때문입니다.

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

  • 이전에 영향을 받은 쓰기 지역이 복구되면 읽기 지역으로 자동으로 사용할 수 있게 됩니다. PowerShell, Azure CLI 또는 Azure Portal 사용하여 복구된 지역을 쓰기 지역으로 다시 전환할 수 있습니다. 쓰기 지역을 전환하기 전, 동안 또는 후에 는 데이터 또는 가용성 손실이 없습니다 . 애플리케이션은 고가용성을 계속 유지합니다.

SLA

다음 표에서는 다양한 계정 구성의 고가용성 기능을 요약합니다.

KPI 가용성 영역이 없는 단일 지역 쓰기 가용성 영역이 있는 단일 지역 쓰기 가용성 영역이 없는 다중 지역, 단일 지역 쓰기 가용성 영역이 있는 다중 지역, 단일 지역 쓰기 가용성 영역의 여부에 관계없이 다중 지역, 단일 지역 쓰기
쓰기 가용성 SLA 99.99% 99.995% 99.99% 99.995% 99.999%
가용성 SLA 읽기 99.99% 99.995% 99.999% 99.999% 99.999%
영역 오류: 데이터 손실 데이터 손실 데이터 손실 없음 데이터 손실 없음 데이터 손실 없음 데이터 손실 없음
영역 오류: 가용성 가용성 손실 가용성 손실 없음 가용성 손실 없음 가용성 손실 없음 가용성 손실 없음
지역 가동 중단: 데이터 손실 데이터 손실 데이터 손실 일관성 수준에 따라 달라집니다. 자세한 내용은 일관성, 가용성 및 성능 장단점을 참조하세요. 일관성 수준에 따라 달라집니다. 자세한 내용은 일관성, 가용성 및 성능 장단점을 참조하세요. 일관성 수준에 따라 달라집니다. 자세한 내용은 일관성, 가용성 및 성능 장단점을 참조하세요.
지역 가동 중단: 가용성 가용성 손실 가용성 손실 읽기 지역 오류에 대한 가용성 손실 없음, 쓰기 지역 오류에 대해서는 임시 읽기 지역 오류에 대한 가용성 손실 없음, 쓰기 지역 오류에 대해서는 임시 영향을 받는 지역에서 읽기 가용성 손실, 일시적인 쓰기 가용성 손실 없음
가격(1) 해당 없음 프로비전된 RU/초 x 1.25 비율 프로비전된 RU/s x N 지역 프로비전된 RU/s x 1.25 속도 x N 지역(2) 다중 지역 쓰기 속도 x N 지역

1 서버리스 계정의 경우 RU에 1.25의 배율로 곱합니다.

2 1.25 속도는 가용성 영역을 사용하도록 설정하는 지역에만 적용됩니다.

고가용성 애플리케이션을 빌드하기 위한 팁

  • 이벤트 중 Azure Cosmos DB SDK의 예상 동작 과 영향을 미치는 구성을 검토합니다.

  • 높은 쓰기 및 읽기 가용성을 보장하려면 Azure Cosmos DB 계정을 두 개 이상의 지역(또는 강력한 일관성을 사용하는 경우 3개)에 걸쳐 있도록 구성합니다. 지역 중단에 대한 고가용성을 달성하기 위한 최상의 구성은 서비스 관리 장애 조치(failover)를 사용하는 단일 쓰기 지역입니다. 자세한 내용은 자습서: API for NoSQL을 사용하여 Azure Cosmos DB 전역 배포 설정을 참조하세요.

  • 단일 쓰기 지역으로 구성된 다중 지역 Azure Cosmos DB 계정의 경우 Azure CLI 또는 Azure Portal 사용하여 서비스 관리 장애 조치를 사용하도록 설정합니다. 서비스 관리 장애 조치(failover)를 사용하도록 설정한 후 지역 재해가 발생할 때마다 Azure Cosmos DB는 사용자 입력 없이 계정을 장애 조치합니다.

  • Azure Cosmos DB 계정이 고가용성인 경우에도 애플리케이션이 고가용성 상태로 유지되도록 올바르게 설계되지 않았을 수 있습니다. 애플리케이션 테스트 또는 DR(재해 복구) 훈련의 일부로 애플리케이션의 엔드 투 엔드 고가용성을 테스트하려면 계정에 대해 서비스 관리 장애 조치(failover)를 일시적으로 사용하지 않도록 설정합니다. PowerShell, Azure CLI 또는 Azure Portal 사용하여 수동 장애 조치(failover)를 호출한 다음 애플리케이션을 모니터링합니다. 테스트를 완료한 후 주 지역으로 장애 복구하고 계정에 대한 서비스 관리 장애 조치(failover)를 복원할 수 있습니다.

    중요

    원본 또는 대상 지역에서 Azure Cosmos DB 중단 중에 수동 장애 조치(failover)를 호출하지 마세요. 수동 장애 조치(failover)를 수행하려면 데이터 일관성을 유지하기 위해 지역 연결이 필요하므로 성공하지 못합니다.

  • 전역적으로 분산 데이터베이스 환경에서 지역 전체 가동 중단이 발생할 경우, 일관성 수준과 데이터 내구성 사이에 직접적인 관계가 있습니다. 비즈니스 연속성 계획을 개발할 때 중단 이벤트(즉, RTO) 후에 애플리케이션이 완전히 복구되기까지 허용되는 최대 시간을 이해해야 합니다. 또한 중단 이벤트(즉, RPO) 후 복구할 때 애플리케이션이 손실을 허용할 수 있는 최근 데이터 업데이트의 최대 기간을 이해해야 합니다. RTO 및 RPO에 대한 자세한 내용은 Azure Cosmos DB의 일관성 수준을 참조하세요.

Azure Cosmos DB 지역 가동 중단 중에 발생할 수 있는 작업

단일 지역 계정의 경우 클라이언트는 Azure Cosmos DB 지역 중단 중에 읽기 및 쓰기 가용성이 손실됩니다. 다음 표에 설명된 대로 다중 지역 계정은 서로 다른 동작을 경험합니다.

쓰기 지역 서비스 관리 장애 조치(failover) 필요한 항목 수행할 작업
단일 쓰기 지역 사용 안 함 강력한 일관성을 사용하지 않을 때 읽기 지역에 중단이 발생하면 모든 클라이언트가 다른 지역으로 리디렉션됩니다. 읽기 또는 쓰기 가용성 손실이 없으며 데이터 손실이 없습니다. 강력한 일관성을 사용하는 경우 읽기 영역이 2개 미만인 경우 읽기 지역의 중단이 쓰기 가용성에 영향을 줄 수 있습니다.

쓰기 지역에 중단이 발생하면 클라이언트에서 쓰기 가용성 손실이 발생합니다. 강력한 일관성을 선택하지 않은 경우 서비스는 일부 데이터를 나머지 활성 지역에 복제하지 않을 수 있습니다. 이 복제는 선택한 일관성 수준에 따라 달라집니다. 영향을 받는 지역에서 영구적인 데이터 손실이 발생하면 설명되지 않은 데이터가 손실될 수 있습니다.

Azure Cosmos DB는 중단이 종료되면 쓰기 가용성을 자동으로 복원합니다.
가동 중단 중에는 읽기 트래픽을 지원하기 위해 남은 지역에 프로비전된 RU가 충분한지 확인합니다.

중단 중에는 성공할 수 없으므로 수동 장애 조치(failover)를 트리거하지 마세요.

중단이 끝나면 프로비전된 RU를 적절하게 다시 조정합니다.
단일 쓰기 지역 사용 강력한 일관성을 사용하지 않을 때 읽기 지역에 중단이 발생하면 모든 클라이언트가 다른 지역으로 리디렉션됩니다. 읽기 또는 쓰기 가용성 손실이 없으며 데이터 손실이 없습니다. 강력한 일관성을 사용하는 경우 읽기 영역이 2개 미만인 경우 읽기 영역의 중단이 쓰기 가용성에 영향을 줄 수 있습니다.

쓰기 지역에 중단이 발생하면 Azure Cosmos DB가 기본 설정에 따라 새 쓰기 지역으로 새 지역을 자동으로 선택할 때까지 클라이언트에서 쓰기 가용성 손실이 발생합니다. 강력한 일관성을 선택하지 않은 경우 서비스는 일부 데이터를 나머지 활성 지역에 복제하지 않을 수 있습니다. 이 복제는 선택한 일관성 수준에 따라 달라집니다. 영향을 받는 지역에서 영구적인 데이터 손실이 발생하면 설명되지 않은 데이터가 손실될 수 있습니다.
가동 중단 중에는 읽기 트래픽을 지원하기 위해 남은 지역에 프로비전된 RU가 충분한지 확인합니다.

중단 중에는 성공할 수 없으므로 수동 장애 조치(failover)를 트리거하지 마세요.

중단이 끝나면 쓰기 지역을 원래 지역으로 다시 이동하고 프로비전된 RU를 적절하게 다시 조정할 수 있습니다. NoSQL용 API를 사용하는 계정은 충돌 피드에서 실패한 지역의 설명되지 않은 데이터를 복구할 수도 있습니다.
다중 쓰기 지역 해당 없음 실패한 지역의 최근 업데이트된 데이터는 나머지 활성 지역에서 사용할 수 없을 수 있습니다. 최종적이고 일관된 접두사 및 세션 일관성 수준은 부실을 15분 미만으로 보장합니다. 제한된 부실은 구성에 따라 K 업데이트 또는 T 초보다 적게 보장됩니다. 영향을 받는 지역에서 영구적인 데이터 손실이 발생하면 설명되지 않은 데이터가 손실될 수 있습니다. 가동 중단 중에는 더 많은 트래픽을 지원하기 위해 나머지 지역에 프로비전된 RU가 충분한지 확인합니다.

중단이 끝나면 프로비전된 RU를 적절하게 재조정할 수 있습니다. 가능하면 Azure Cosmos DB는 실패한 지역에서 설명되지 않은 데이터를 자동으로 복구합니다. 이 자동 복구는 NoSQL용 API를 사용하는 계정에 대해 구성하는 충돌 해결 방법을 사용합니다. 다른 API를 사용하는 계정의 경우 이 자동 복구는 마지막 쓰기 우선을 사용합니다.

다음 단계

다음으로, 다음 문서를 읽을 수 있습니다.