Azure Event Hubs 지역 복제

Azure Event Hubs 지역 복제는 네임스페이스의 메타데이터(엔터티, 구성 및 속성) 및 이벤트 데이터의 복사본을 여러 Azure 지역에 유지합니다. 주 지역에서 중단이 발생하는 경우 보조 지역을 승격하여 데이터 손실을 최소화하면서 스트리밍 애플리케이션을 계속 실행할 수 있습니다.

다음 섹션에서는 지역에서 복제의 작동 방식을 설명하고, 동기 및 비동기 복제 모드를 비교하고, 보조 지역을 관리하는 방법을 설명합니다.

참고

Event Hubs 지역 복제 기능은 프리미엄 및 전용 계층에서만 사용할 수 있습니다.

지역 복제를 사용하면 네임스페이스의 메타데이터와 데이터가 주 지역에서 보조 지역으로 지속적으로 복제됩니다. 네임스페이스는 둘 이상의 지역으로 확장되는 것으로 간주할 수 있으며, 한 지역은 주 지역이고 다른 지역은 보조 지역이라고 생각할 수 있습니다.

언제든지 보조 지역을 주 지역으로 승격할 수 있습니다. 보조 지역을 승격하면 네임스페이스 FQDN(정규화된 도메인 이름)이 선택한 보조 지역으로 다시 지정되고, 이전 주 지역이 보조 지역으로 강등됩니다.

시나리오

Event Hubs 지역 복제는 여러 시나리오에서 사용할 수 있습니다.

비즈니스 연속성 및 재해 복구

지역 복제는 네임스페이스의 모든 스트리밍 데이터에 대한 재해 복구 및 비즈니스 연속성을 보장합니다. 조직에서는 지역 간에 데이터를 복제하여 데이터 손실을 방지하고 지역 가동 중단 시에도 애플리케이션이 계속 작동하도록 할 수 있습니다. 이 기능은 고가용성과 최소 가동 중지 시간이 필요한 중요 업무용 애플리케이션에 매우 중요합니다.

글로벌 데이터 배포

지역 복제를 사용하여 데이터를 전역적으로 배포할 수 있으므로 애플리케이션이 가장 가까운 지역의 데이터에 액세스할 수 있습니다. 이렇게 하면 대기 시간이 줄어들고 전 세계 여러 지역에 있는 워크로드의 성능이 향상됩니다.

데이터 주권 및 규정 준수

여러 국가 또는 지역에서 활동하는 조직은 특정 지리적 경계 내에 데이터를 저장해야 하는 데이터 주권법을 준수해야 하는 경우가 많습니다. 지역에서 복제를 사용하면 이러한 조직이 지역 규정을 준수하는 지역에 데이터를 복제하여 통합 데이터 플랫폼을 유지하면서 법적 요구 사항을 충족하도록 할 수 있습니다.

마이그레이션 및 업그레이드

지역 복제를 사용하여 데이터 마이그레이션, 유지 관리 및 시스템 업그레이드를 용이하게 할 수도 있습니다. 조직은 주 지역에서 유지 관리 및 업그레이드를 허용하도록 기본 지역에서 보조 지역으로 네임스페이스를 사전에 마이그레이션할 수 있습니다.

기본 개념

지역 복제 기능은 기본 보조 복제 모델을 사용하여 메타데이터 및 데이터를 복제합니다. 언제든지 생산자와 소비자 모두에게 서비스를 제공하는 단일 기본 지역이 있습니다. 보조 지역은 핫 대기 지역으로 작용하기 때문에 보조 지역과 상호 작용할 수 없습니다. 그러나 주 지역과 동일한 구성으로 실행되므로 승격 후 신속하게 단계별로 실행할 수 있습니다.

지역에서 복제 기능의 주요 측면 중 일부는 다음과 같습니다.

  • 기본-보조 복제 모델 – 지역 복제는 주-보조 복제 모델을 기반으로 하며, 지정된 시간에는 이벤트 생산자 및 이벤트 소비자에게 서비스를 제공하는 하나의 기본 네임스페이스만 있습니다.
  • Event Hubs는 구성된 일관성 수준을 사용하여 보조 데이터베이스 전체에서 메타데이터, 이벤트 데이터 및 소비자 오프셋의 완전 관리형 바이트 간 복제를 수행합니다.
  • 단일 네임스페이스 호스트 이름 - 지역에서 복제 사용 네임스페이스를 성공적으로 구성한 후 클라이언트 애플리케이션에서 네임스페이스 호스트 이름을 사용합니다. 호스트 이름은 구성된 기본 및 보조 지역에 관계없이 작동하며 항상 주 지역을 가리킵니다.
  • 승격을 시작하면 호스트 이름은 새 주 지역으로 선택된 지역을 가리킵니다. 이전 기본 지역이 보조 지역이 됩니다.
  • 보조 지역에서는 읽거나 쓸 수 없습니다.
  • 기본 지역에서 보조 지역으로의 고객 관리 승격으로 중단 해결에 대한 완전한 소유권과 표시 여부를 제공합니다. 고객 쪽에서 승격을 자동화하는 데 도움이 되는 메트릭을 사용할 수 있습니다.
  • 보조 지역을 추가하거나 제거할 수 있습니다.
  • 복제 일관성 - 동기 및 비동기라는 두 가지 복제 일관성 설정을 사용할 수 있습니다.
시스템 상태 도표
장애 조치(failover) 전(보조 승격) A 지역이 기본이고 B 지역이 보조인 경우를 보여 주는 다이어그램.
장애 조치(failover) 후(보조 승격) B가 기본이 되면 A가 새로운 보조가 되는 것을 보여 주는 다이어그램.

복제 모드

동기 및 비동기라는 두 가지 복제 일관성 구성을 사용할 수 있습니다. 애플리케이션과 데이터 일관성에 영향을 주므로 이러한 두 구성 간의 차이점을 이해합니다.

비동기 복제

비동기 복제를 사용하는 경우 주 복제본은 모든 요청을 커밋한 다음 클라이언트에 승인을 보냅니다. 보조 지역에 대한 복제는 비동기식으로 수행됩니다. 허용되는 최대 지연 시간(주 지역과 보조 지역의 최신 작업 간에 서비스 쪽 오프셋)을 구성할 수 있습니다. 서비스는 데이터와 메타데이터를 지속적으로 복제하여 지연 시간이 가능한 한 작게 유지되도록 합니다. 활성 보조 복제본의 지연 시간이 사용자가 구성한 최대 복제 지연 시간보다 커지면 주 복제본은 들어오는 요청을 제한하기 시작합니다.

동기 복제

동기 복제를 사용하는 경우 시스템은 모든 요청을 보조 위치로 보냅니다. 보조 위치는 기본 위치가 커밋되기 전에 작업을 커밋하고 확인합니다. 결과적으로 애플리케이션은 게시, 복제, 승인 및 커밋하는 데 걸리는 속도로 게시됩니다. 이 프로세스는 애플리케이션이 두 지역의 가용성에 따라 달라 지는 것을 의미합니다. 보조 지역이 지연되거나 사용할 수 없는 경우 기본 위치는 메시지를 승인하거나 커밋하지 않으며 들어오는 요청을 제한합니다.

복제 일관성 비교

동기식 복제의 경우:

  • 분산 커밋 작업으로 인해 대기 시간이 길어집니다.
  • 가용성은 두 지역의 가용성에 따라 달라집니다. 한 지역이 다운되면 네임스페이스를 사용할 수 없습니다.

반면 동기 복제는 데이터가 안전하다는 최고의 보장을 제공합니다. 동기 복제를 사용하면 지역 복제를 위해 구성한 모든 지역에서 데이터가 커밋되어 최상의 데이터 보증을 제공합니다.

비동기 복제의 경우:

  • 대기 시간은 최소한의 영향을 받습니다.
  • 보조 지역의 손실은 가용성에 즉시 영향을 주지 않습니다. 그러나 구성된 최대 복제 지연에 도달하면 가용성이 영향을 받습니다.

따라서 동기 복제와 같은 커밋 전에 모든 지역에 데이터가 있다는 절대적인 보장이 없으며 데이터 손실 또는 중복이 발생할 수 있습니다. 그러나 단일 지역이 지연되거나 사용할 수 없는 경우 더 이상 즉시 영향을 받지 않아 애플리케이션 가용성이 향상되고 대기 시간이 짧아집니다.

역량 동기 복제 비동기 복제
지연 분산 커밋 작업으로 인해 더 길어짐 최소 영향을 받습니다.
가용도 보조 지역의 가용성과 관련됨 보조 지역의 손실은 가용성에 즉시 영향을 주지 않습니다.
데이터 일관성 승인 전에 두 지역 모두에서 항상 커밋되는 데이터 승인 전에만 기본 지역에서 커밋되는 데이터
RPO(복구 지점 목표) RPO 0, 승격 시 데이터 손실 없음 RPO > 0, 승격 시 데이터 손실 가능

지역에서 복제를 구성한 후 복제 모드를 변경할 수 있습니다. 동기에서 비동기 또는 비동기에서 동기로 전환할 수 있습니다. 비동기에서 동기로 전환하면 지연 시간이 0에 도달하면 보조 지역이 동기로 구성됩니다. 어떤 이유로든 지속적인 지연으로 실행하는 경우 지연 시간이 0에 도달하도록 게시자를 일시 중지하고 모드를 동기로 전환할 수 있도록 해야 할 수 있습니다. 비동기 복제 대신 동기 복제를 사용하도록 설정하는 이유는 애플리케이션의 가용성보다는 데이터, 특정 비즈니스 요구 사항 또는 규정 준수 이유의 중요성과 관련이 있습니다.

참고

보조 지역이 지연되거나 사용할 수 없게 되면 애플리케이션은 이 지역에 복제할 수 없으며 복제 지연에 도달하면 제한을 시작합니다. 기본 위치에서 네임스페이스를 계속 사용하려면 고통받는 보조 지역을 제거합니다. 모든 보조 지역을 제거하면 네임스페이스는 지리적 복제가 활성화되지 않은 상태에서 지속됩니다. 언제든지 다른 보조 지역을 추가할 수 있습니다. 이벤트 허브인 최상위 엔터티는 구성된 복제 모드에 관계없이 동기적으로 복제됩니다.

보조 지역 선택

지역에서 복제 기능을 사용하도록 설정하려면 기능이 활성화된 주 및 보조 지역을 사용합니다. 지역 복제 기능은 게시된 메시지를 주 지역에서 보조 지역으로 복제할 수 있는 것에 따라 달라집니다. 보조 지역이 다른 대륙에 있는 경우 이 선택은 주 지역에서 보조 지역으로의 복제 지연에 큰 영향을 줍니다. 가용성을 위해 지역에서 복제를 사용하는 경우 가능한 경우 동일한 대륙에서 보조 지역을 선택합니다. 지리적 거리로 인한 대기 시간을 더 잘 이해하려면 Azure 네트워크 왕복 대기 시간 통계 참조하세요.

참고

지역에서 복제하려면 Event Hubs의 기본 및 보조 복사본이 동일한 계층에 있어야 합니다. 계층 간에 지역 복제를 구성할 수 없습니다.

지역 복제 관리

지역 복제 기능을 사용하면 메타데이터 및 데이터를 복제할 보조 지역을 구성할 수 있습니다. 따라서 다음 관리 작업을 수행할 수 있습니다.

  • 지역 복제 구성 - 지역에서 복제 기능을 사용하도록 설정하여 지역의 새 네임스페이스 또는 기존 네임스페이스에서 보조 지역을 구성할 수 있습니다.
  • 복제 일관성 구성 - 지역에서 복제를 구성할 때 동기 및 비동기 복제를 설정합니다. 나중에 이 설정을 전환할 수도 있습니다.
  • 승격/장애 조치(failover) 트리거 - 모든 승격은 고객이 시작합니다.
  • 보조 지역 제거 - 보조 지역을 제거하려면 제거할 수 있습니다. 보조 지역의 데이터가 삭제됩니다.

승격을 트리거하는 조건

다음은 보조 시스템이 기본 시스템으로 승격되는 상황이 발생할 수 있는 몇 가지 사례입니다.

  • 지역 중단: 주 지역에 영향을 주는 지역 중단이 있는 경우 보조 지역을 승격하여 비즈니스 연속성을 보장하고 가동 중지 시간을 최소화합니다.

  • 유지 관리 활동: 주 지역에서 계획된 유지 관리 작업 중에 보조 지역을 승격하면 중요 업무용 애플리케이션에 대한 고가용성을 유지하는 데 도움이 될 수 있습니다.

  • 재해 복구: 주 지역에 영향을 주는 재해가 발생하는 경우 보조 지역을 승격하면 데이터에 계속 액세스할 수 있고 애플리케이션이 계속 작동합니다.

  • 성능 문제: 주 지역에 Event Hubs의 가용성 또는 안정성에 영향을 주는 성능 문제가 발생하는 경우 보조 지역을 승격하면 이러한 문제를 완화하는 데 도움이 될 수 있습니다.

경우에 따라 장애 조치(failover) 메커니즘을 테스트하여 비즈니스 연속성 계획이 효과적인지 확인하고 필요할 때 애플리케이션이 보조 지역으로 원활하게 전환할 수 있습니다.

데이터 복제 모니터링

애플리케이션 메트릭 로그에서 복제 지연 메트릭을 확인하여 복제 작업의 진행률을 모니터링할 수 있습니다.

  • Azure Event Hubs 모니터링 - Azure Event Hubs | Microsoft Learn를 따라 Event Hubs 네임스페이스에서 애플리케이션 메트릭 로그를 활성화하십시오.

  • 애플리케이션 메트릭 로그를 사용하도록 설정한 후 로그를 보기 전에 몇 분 동안 네임스페이스에서 데이터를 생성하고 사용합니다.

  • 애플리케이션 메트릭 로그를 보려면 Event Hubs 페이지의 모니터링 섹션으로 이동하고 왼쪽 메뉴에서 로그 를 선택합니다. 다음 쿼리를 사용하여 주 네임스페이스와 보조 네임스페이스 간의 복제 지연 시간(초)을 찾습니다.

    AzureDiagnostics
      | where TimeGenerated > ago(1h)
      | where Category == "ApplicationMetricsLogs"
      | where ActivityName_s == "ReplicationLag"
    
  • 이 열 count_d 은 주 지역과 보조 지역 간의 복제 지연 시간(초)을 보여 줍니다.

데이터 게시

게시 애플리케이션은 지리적 복제 기능이 활성화된 네임스페이스의 호스트 이름을 통해 지리적 중복 네임스페이스로 데이터를 보낼 수 있습니다. 게시 방법은 지리적이 아닌 복제 사례와 동일합니다. 데이터 평면 SDK 또는 클라이언트 애플리케이션을 변경할 필요가 없습니다.

다음 상황에서는 이벤트 게시가 불가능할 수 있습니다.

  • 보조 지역의 승격을 요청한 후 기존 주 지역은 이벤트 허브에 게시된 새 이벤트를 거부합니다.
  • 기본 지역과 보조 지역 간의 복제 지연이 최대 복제 지연 기간에 도달하면 게시자 인그레스 워크로드가 제한될 수 있습니다.

게시자 애플리케이션은 보조 지역의 네임스페이스에 직접 액세스할 수 없습니다.

데이터 사용

애플리케이션을 사용하는 경우 지역 복제 기능이 활성화된 네임스페이스의 네임스페이스 호스트 이름을 사용하여 데이터를 사용할 수 있습니다. 프로모션이 시작되는 순간부터 프로모션이 완료될 때까지 소비자 작업은 지원되지 않습니다.

체크포인트 및 오프셋 관리

이벤트 사용 애플리케이션은 지역 복제되지 않은 네임스페이스와 동일한 방식으로 오프셋 관리를 유지할 수 있습니다. 지오 복제가 활성화된 네임스페이스는 오프셋 관리를 위해 특별한 고려가 필요하지 않습니다.

경고

강제 장애 조치(failover)(즉, 정상이 아닌 장애 조치)의 경우 일부 데이터는 아직 복사되지 않아 손실될 수 있습니다. 이 데이터 손실로 인해 해당 특정 데이터의 오프셋이 네임스페이스의 주 및 보조 지역 간에 다를 수 있습니다. 그러나 오프셋은 네임스페이스에 대해 구성된 최대 복제 지연 시간의 범위 내에 유지됩니다. 이러한 경우 마지막으로 커밋된 오프셋에서 사용을 시작합니다. 일부 데이터에는 중복 처리가 있을 수 있으며 클라이언트 쪽에서 처리해야 합니다.

Kafka

소비자는 Event Hubs에 직접 오프셋을 커밋하고 시스템은 지역 간에 오프셋을 복제합니다. 따라서 소비자는 기본 지역에서 중단된 위치에서 소비를 시작할 수 있습니다.

지원되는 Apache Kafka 클라이언트 목록은 다음과 같습니다.

클라이언트 이름 버전
Apache Kafka 2.1.0 이상
Librdkafka 및 파생 라이브러리 2.1.0 이상

다른 라이브러리의 경우 지원은 API 버전에 따라 달라집니다.

API 이름 지원되는 버전
메타데이터 API 7 이상
페치 API 9 이상
ListOffset API 4 이상
OffsetFetch API (오프셋 가져오기 API) 5 이상
OffsetForLeaderEpoch API 0 이상

Event Hubs SDK 및 AMQP

AMQP의 경우 사용자는 Azure Blob Storage 또는 사용자 지정 스토리지 솔루션과 같은 검사점 저장소를 사용하여 검사점을 관리합니다. 장애 조치(failover)가 있는 경우 클라이언트가 검사점 데이터를 검색하고 메시지 손실을 방지할 수 있도록 보조 지역에 검사점 저장소가 있어야 합니다.

최신 버전의 Event Hubs SDK에는 장애 조치(failover)를 지원하기 위한 검사점 표현 변경 내용이 포함되어 있습니다. 최신 버전의 SDK를 사용하지만 다음 SDK의 이전 버전도 지원됩니다.

언어 패키지 이름
C# (프로그래밍 언어) Azure.Messaging.EventHubs
C# (프로그래밍 언어) Microsoft.Azure.EventHubs

경고

구현의 일부로 네임스페이스에서 지역에서 복제를 사용하도록 설정하면 검사점 형식이 조정됩니다. 지역 복제 쌍 이후의 후속 검사점은 새 형식으로 작성됩니다. 지역 복제 페어링이 완료된 직후, 그러나 새 검사점이 저장되기 전에 보조 지역을 주 지역으로 강제 승격하는 경우(이 상황은 강제 승격 또는 장애 조치(failover) 시 발생할 수 있음), 승격 후에 게시된 새 데이터가 손실될 위험이 있습니다.

이러한 경우 마지막으로 커밋된 오프셋에서 사용을 시작합니다. 일부 데이터에는 중복 처리가 있을 수 있으며 클라이언트 쪽에서 처리해야 합니다.

최신 버전의 SDK로 업그레이드합니다.

고려 사항

다음과 같은 고려 사항을 염두에 둡니다.

  • 프로모션 계획에서 시간 요소를 고려합니다. 예를 들어 15~20분이 넘게 연결이 손실된 경우 승격을 시작하기로 결정할 수 있습니다.
  • 복잡한 분산 인프라 홍보를 한 번 이상 연습 해야 합니다.

가격 책정

가격 책정은 선택하는 계층에 따라 다르지만 일반적으로 두 개의 매개 변수가 있습니다.

  • 클러스터 또는 네임스페이스에 대한 컴퓨팅 요금입니다.
  • 주 지역과 보조 지역 간에 복제되는 데이터에 대한 대역폭 요금입니다.

참고

요금을 확인하려면 Azure Event Hubs 나열된 가격 책정 세부 정보를 참조하세요. 기본 지역의 위치에 따라 지리적 복제 요금이 달라집니다.

전용 클러스터

Event Hubs 전용 클러스터에서 지역 복제를 사용하는 경우 별도의 지역에 두 개 이상의 전용 클러스터가 필요합니다. 이러한 클러스터를 사용하여 지역에서 복제되는 네임스페이스 이외의 네임스페이스를 호스트할 수 있습니다. 이러한 전용 클러스터는 각각에 할당된 CPU(용량 단위) 수에 따라 별도로 비용을 지불합니다.

지리적 복제를 활성화하면 기본에서 보조로 복제된 데이터에 대한 대역폭 요금만 추가로 청구됩니다. 이 요금은 주 지역의 위치에 따라 달라집니다.

프리미엄 네임스페이스

프리미엄 네임스페이스의 경우 지역 복제를 사용하도록 설정하면 보조 지역에서 동일한 수의 CPU(처리 단위)를 얻게 됩니다. 사용하는 PU 수주 지역과 보조 지역 간에 전송되는 데이터의 대역폭에 대한 요금을 지불합니다.

예를 들어 4PU로 프로비전한 프리미엄 네임스페이스에서 지역 복제를 사용하도록 설정하는 경우 비용을 지불합니다.

  • 주 지역의 4PU,
  • 보조 지역의 4PU,
  • 복제된 데이터의 GB당 지역 복제 요금입니다.

주 지역과 보조 지역 간에 전송된 데이터에 따라 대역폭 요금을 지불합니다.

가격 책정 미터

지역 복제 데이터 전송 대역폭 요금에 대한 가격 책정 미터는 다음 세부 정보와 함께 표시됩니다.

제품 이름 미터 설명
Service Bus Service Bus - 지역 복제 영역 1GB 데이터 전송 - 지역 이름
Service Bus Service Bus - 지역 복제 영역 2GB 데이터 전송 - 지역 이름
Service Bus Service Bus - 지역 복제 영역 3GB 데이터 전송 - 지역 이름

프라이빗 엔드포인트

이 섹션에서는 프라이빗 엔드포인트를 사용하는 네임스페이스와 함께 지역에서 복제를 사용할 때 추가 고려 사항을 제공합니다. Event Hubs에서 프라이빗 엔드포인트를 사용하는 방법에 대한 일반적인 내용은 Azure Private Link 참조하세요.

프라이빗 엔드포인트를 사용하는 Event Hubs 네임스페이스에 대한 지역 복제를 구현하는 경우 주 지역과 보조 지역 모두에 대한 프라이빗 엔드포인트를 만듭니다. 애플리케이션의 기본 인스턴스와 보조 인스턴스를 모두 호스트하는 가상 네트워크에 대해 이러한 엔드포인트를 구성합니다. 예를 들어 VNET-1과 VNET-2라는 두 개의 가상 네트워크가 있는 경우 각각 VNET-1 및 VNET-2의 서브넷을 사용하여 Event Hubs 네임스페이스에 두 개의 프라이빗 엔드포인트를 만들어야 합니다. 클라이언트가 프라이빗 엔드포인트 중 하나와 통신할 수 있도록 지역 간 피어링을 사용하여 가상 네트워크를 설정합니다. 마지막으로 모든 클라이언트가 네임스페이스 엔드포인트(namespacename.servicebus.windows.net)를 현재 주 지역에 있는 프라이빗 엔드포인트의 IP 주소로 가리키는 DNS 정보를 가져올 수 있도록 DNS 를 관리합니다.

중요한

Event Hubs에 대한 보조 지역을 승격하는 경우 해당 엔드포인트를 가리키도록 DNS 항목을 업데이트합니다.

자체 프라이빗 엔드포인트와 온-프레미스 인스턴스 및 Event Hubs 네임스페이스에 연결된 VM이 있는 두 개의 VNET을 보여 주는 스크린샷

이 방법은 애플리케이션 계층 또는 Event Hubs 네임스페이스에서 독립적으로 장애 조치(failover)가 발생할 수 있다는 이점을 제공합니다.

  • 애플리케이션 전용 장애 조치(failover): 이 시나리오에서 애플리케이션은 VNET-1에서 VNET-2로 이동합니다. 프라이빗 엔드포인트는 기본 및 보조 네임스페이스 모두에 대해 VNET-1 및 VNET-2 모두에서 구성되므로 애플리케이션은 계속해서 원활하게 작동합니다.
  • Event Hubs 네임스페이스 전용 장애 조치(failover): 장애 조치(failover)가 Event Hubs 네임스페이스 수준에서만 발생하는 경우 프라이빗 엔드포인트가 두 가상 네트워크에서 모두 구성되기 때문에 애플리케이션은 계속 작동합니다.

이러한 지침에 따라 프라이빗 엔드포인트를 사용하는 Event Hubs 네임스페이스에 대해 강력하고 안정적인 장애 조치(failover) 메커니즘을 보장할 수 있습니다.

지역 복제 기능을 사용하는 방법을 알아보려면 지역 복제 사용을 참조하세요.