다음을 통해 공유


Azure Event Hubs의 안정성

Azure Event Hubs 는 모든 원본에서 모든 대상으로 대기 시간이 짧은 초당 수백만 개의 이벤트를 스트리밍할 수 있는 네이티브 클라우드 서비스입니다. Event Hubs를 사용하여 스트리밍 데이터를 수집 및 저장하고, Apache Kafka용으로 빌드된 클라이언트 애플리케이션 또는 Event Hubs 클라이언트 SDK를 사용하는 애플리케이션과 통합합니다.

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

이 문서에서는 Event Hubs가 다양한 잠재적인 중단 및 문제에 대해 어떻게 복원력을 가지는지 설명하며, 일시적인 오류, 가용성 영역 중단, 지역 중단을 포함한 다른 문제에 대비하여 복원력을 갖추도록 Event Hubs를 구성하는 방법을 설명합니다. 또한 백업 및 복구 옵션에 대해 설명하고 Azure Event Hubs SLA(서비스 수준 계약)에 대한 몇 가지 주요 정보를 강조 표시합니다.

프로덕션 배포 권장 사항

솔루션의 안정성 요구 사항을 지원하고 안정성이 아키텍처의 다른 측면에 미치는 영향을 이해하기 위해 Event Hubs를 배포하는 방법을 알아보려면 Azure Well-Architected Framework에서 Event Hubs에 대한 아키텍처 모범 사례를 참조하세요.

안정성 아키텍처 개요

이 섹션에서는 Event Hubs가 안정성 관점에서 작동하는 방식에 대한 중요한 측면을 설명합니다. 배포하고 사용하는 리소스 및 기능을 포함하는 논리 아키텍처를 소개합니다. 또한 서비스가 내부적으로 작업을 관리하는 방법에 대한 세부 정보를 제공하는 물리적 아키텍처를 설명합니다.

논리 아키텍처

Event Hubs 네임스페이스는 하나 이상의 이벤트 허브에 대한 관리 컨테이너 역할을 합니다. 네임스페이스 수준에서 스트리밍 용량 할당, 네트워크 보안 구성, 지역 복원력 및 지역 재해 복구 사용과 같은 서비스를 구성합니다.

네임스페이스 내에서 이벤트를 이벤트 허브로 구성할 수 있습니다. Apache® Kafka 에코시스템은 이러한 유형의 엔터티를 토픽으로 참조합니다. 이벤트 허브 또는 토픽은 이벤트의 추가 전용 분산 로그입니다.

각 이벤트 허브에는 순차적인 이벤트의 기록인 하나 이상의 파티션이 포함됩니다. 이벤트 허브는 여러 파티션을 사용하여 병렬 처리 및 수평 크기 조정을 수행할 수 있습니다. Event Hubs는 단일 파티션 내에서만 순서를 보장합니다. 분할은 애플리케이션의 안정성 디자인에서 중요한 역할을 합니다. 애플리케이션을 디자인할 때 가용성과 일관성을 극대화하는 것 사이에서 절편을 만듭니다. 대부분의 애플리케이션에 대한 가동 시간을 최대화하려면 클라이언트 애플리케이션에서 직접 파티션의 주소를 지정하지 않도록 합니다. 자세한 내용은 Event Hubs의 가용성 및 일관성을 참조하세요.

이벤트 허브에서 읽은 소비자는 수신하는 마지막 이벤트를 식별하는 자체 검사점을 유지 관리하여 이벤트를 순차적으로 읽을 수 있습니다.

Event Hubs의 파티션 및 기타 기본 개념에 대한 자세한 내용은 Event Hubs의 기능 및 용어를 참조하세요.

물리적 아키텍처

물리적 아키텍처에서 Event Hubs 네임스페이스는 클러스터 내에서 실행됩니다. 클러스터는 기본 컴퓨팅 및 스토리지 리소스를 제공합니다. 대부분의 네임스페이스는 다른 Azure 고객이 공유하는 클러스터에서 실행됩니다. 프리미엄 계층을 사용하는 경우 네임스페이스는 공유 클러스터 내에서 전용 리소스를 할당합니다. 전용 계층을 사용하는 경우 클러스터는 네임스페이스 전용입니다. 전용 클러스터에 대한 자세한 내용은 Event Hubs 전용 계층 개요를 참조하세요. 계층 및 클러스터 유형에 관계없이 Microsoft는 클러스터와 해당 기본 가상 머신 및 스토리지를 관리합니다.

중복성을 달성하기 위해 각 클러스터에는 읽기 및 쓰기 요청을 처리하는 여러 복제본이 있습니다. 고가용성 및 성능 최적화를 위해 모든 데이터는 3개의 스토리지 복제본에 저장됩니다. 네임스페이스의 컴퓨팅 리소스 크기를 조정하려면 계층에 따라 CPU(처리량 단위), CPU(처리 단위) 또는 CPU(용량 단위)를 배포합니다. 자세한 내용은 Event Hubs를 사용한 크기 조정을 참조하세요.

클러스터는 여러 물리적 머신과 랙에 걸쳐 있어 네임스페이스에 영향을 주는 치명적인 오류의 위험을 줄입니다. 가용성 영역이 있는 지역에서 클러스터는 별도의 물리적 데이터 센터에 걸쳐 확장됩니다. 자세한 내용은 가용성 영역 오류에 대한 복원력을 참조하세요.

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

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

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

Event Hubs는 투명한 오류 검색 및 장애 조치(failover) 메커니즘을 구현하여 일반적으로 오류가 발생할 때 눈에 띄는 중단 없이 서비스가 보장된 서비스 수준 내에서 계속 작동하도록 합니다.

Event Hubs에서 작동하도록 클라이언트 애플리케이션을 디자인할 때 다음 지침을 따릅니다.

  • 기본 제공 재시도 정책을 사용합니다. Event Hubs 및 Apache Kafka SDK는 네트워크 시간 제한, 응답 제한 또는 서버 사용 중일 때와 같은 재시도 가능한 오류에 대한 작업을 자동으로 다시 시도합니다. 서비스가 불필요하게 오버로드되는 것을 방지하기 위해 기본적으로 지수 백오프를 구현합니다.

  • 애플리케이션 요구 사항에 따라 적절한 시간 제한 값을 구성합니다. 기본 시간 제한은 일반적으로 60초이지만 시나리오에 따라 조정할 수 있습니다.

  • 이벤트 프로세서에서 검사점을 구현하여 진행 상황을 추적하고 일시적인 오류 후 마지막으로 처리된 위치에서 복구를 사용하도록 설정합니다.

  • 송신 작업에 일괄 처리를 사용하여 처리량을 개선하고 일시적인 네트워크 문제가 개별 메시지에 미치는 영향을 줄입니다.

  • Kafka 프로토콜을 사용하는 경우 Apache Kafka SDK를 사용합니다 . 또한 Kafka SDK는 일시적인 오류를 처리하는 데 도움이 되는 재시도 정책 및 기타 모범 사례를 구현합니다.

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

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

Event Hubs는 모든 서비스 계층에서 영역 중복 배포를 지원합니다. 지원되는 지역에 Event Hubs 네임스페이스를 만들면 추가 비용 없이 영역 중복성이 자동으로 사용하도록 설정됩니다. 그러나 전용 계층에서는 가용성 영역이 최소 3개의 CPU로만 지원됩니다. 영역 중복 배포 모델은 캡처, 스키마 레지스트리 및 Kafka 프로토콜 지원을 비롯한 모든 Event Hubs 기능에 적용됩니다.

Event Hubs는 해당 지역의 세 가용성 영역에서 구성, 메타데이터 및 이벤트 데이터를 투명하게 복제합니다. 영역 중복은 사용자가 개입할 필요 없이 자동 장애 조치를 제공합니다. 컴퓨팅, 네트워킹 및 스토리지를 포함한 모든 Event Hubs 구성 요소는 영역 간에 복제됩니다. Event Hubs에는 영역의 전체 손실을 즉시 처리할 수 있는 충분한 용량 예약이 있습니다. 전체 가용성 영역을 사용할 수 없게 되더라도 Event Hubs는 스트리밍 애플리케이션에 대한 데이터 손실 또는 중단 없이 계속 작동합니다.

영역 중복 Event Hubs 네임스페이스를 보여 주는 다이어그램

다이어그램은 세 가지 가용성 영역에 분산된 Event Hubs 클러스터를 보여줍니다. 각 영역에는 공유 네임스페이스가 포함되며 클러스터는 모든 영역에 걸쳐 고가용성을 제공합니다.

지역 지원

영역 중복 Event Hubs 네임스페이스는 가용성 영역을 지원하는 모든 Azure 지역에 배포할 수 있습니다.

요구 사항

  • 표준 및 프리미엄 계층은 추가 구성 없이 가용성 영역을 지원합니다.

  • 전용 계층의 경우 가용성 영역에는 최소 3개의 CPU가 필요합니다.

비용

Event Hubs의 영역 중복성은 추가 비용을 추가하지 않습니다.

가용성 영역 지원 구성

Event Hubs 네임스페이스는 지원되는 지역에 배포될 때 영역 중복을 자동으로 지원합니다. 추가 구성은 필요하지 않습니다.

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

Event Hubs 네임스페이스가 영역 중복성을 사용하고 모든 가용성 영역이 정상적으로 작동하는 경우 다음 동작이 필요합니다.

  • 영역 간의 트래픽 라우팅: Event Hubs는 세 가용성 영역의 인프라가 들어오는 이벤트를 동시에 처리하는 활성-활성 모델에서 작동합니다.

  • 영역 간 데이터 복제: Event Hubs는 가용성 영역에서 동기 복제를 사용합니다. 이벤트 생산자가 이벤트를 보내면 Event Hubs는 클라이언트에 쓰기 작업이 완료됨을 인정하기 전에 여러 영역의 복제본에 이벤트를 씁니다. 이 방법을 사용하면 전체 영역을 사용할 수 없게 되더라도 데이터 손실이 발생하지 않습니다. 동기 복제 접근 방식은 최적화된 복제 프로토콜을 통해 짧은 대기 시간을 유지하면서 강력한 일관성을 보장합니다.

영역 오류 중 동작

Event Hubs 네임스페이스가 영역 중복을 사용하고 가용성 영역 중단이 발생하는 경우 다음 동작을 예상합니다.

  • 검색 및 응답: Event Hubs는 가용성 영역에서 오류를 자동으로 검색하는 역할을 담당합니다. 영역 장애 조치(failover)를 시작할 필요가 없습니다.
  • 알림: 영역이 다운된 경우 Microsoft는 자동으로 알리지 않습니다. 그러나 Azure Service Health 를 사용하여 영역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.
  • 활성 요청: 영역 실패 시 Event Hubs는 활성 요청을 삭제할 수 있습니다. 클라이언트가 짧은 시간 후에 다시 시도하여 일시적인 오류를 적절하게 처리하는 경우 일반적으로 상당한 영향을 받지 않습니다.

  • 예상 데이터 손실: Event Hubs는 승인 전에 영역 간에 이벤트를 동기적으로 복제하기 때문에 영역 오류 중에 데이터 손실이 발생하지 않습니다.

  • 예상 가동 중지 시간: 영역 오류가 발생하면 몇 초의 가동 중지 시간이 발생할 수 있습니다. 클라이언트가 짧은 시간 후에 다시 시도하여 일시적인 오류를 적절하게 처리하는 경우 일반적으로 상당한 영향을 받지 않습니다.

  • 트래픽 경로 변경: Event Hubs는 영역 손실을 감지하고 새 요청을 정상 가용성 영역 중 하나의 다른 복제본으로 자동으로 리디렉션합니다.

    Event Hubs 클라이언트 SDK는 일반적으로 연결 관리를 처리하고 논리를 투명하게 다시 시도합니다.

영역 복구

가용성 영역이 복구되면 Event Hubs는 자동으로 영역을 활성 서비스 토폴로지로 다시 통합합니다. 복구된 영역은 새 연결을 수락하고 다른 영역과 함께 이벤트를 처리하기 시작합니다. 중단 시 생존 영역에 복제된 데이터는 그대로 유지되며 모든 영역에서 정상적인 동기 복제가 다시 시작됩니다. 영역 복구 및 재통합에 대한 조치를 취할 필요가 없습니다.

영역 오류 테스트

Event Hubs는 영역 오류에 대한 트래픽 라우팅, 장애 조치 및 영역 복구를 관리하므로 가용성 영역 오류 프로세스의 유효성을 검사하거나 추가 입력을 제공할 필요가 없습니다.

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

Event Hubs는 다음 두 가지 유형의 다중 지역 지원을 제공합니다.

  • 지역 복제(프리미엄 및 전용 계층) 는 주 지역과 하나 이상의 보조 지역 간에 메타데이터 및 이벤트 데이터를 모두 활성-활성 복제합니다. 지역 중단에 대한 복원력을 유지하고 이벤트 데이터 손실에 대한 허용 오차가 낮은 대부분의 애플리케이션에 지역 복제를 사용합니다.

  • 메타데이터 지역 재해 복구(표준 계층 이상) 는 주 지역과 보조 지역 간에 구성 및 메타데이터의 활성-수동 복제를 제공하지만 이벤트 데이터를 복제하지는 않습니다. 재해 시나리오 중에 일부 이벤트 데이터 손실을 허용할 수 있고 다른 지역에서 작업을 신속하게 다시 시작해야 하는 애플리케이션에 지역 재해 복구를 사용합니다.

지역 복제와 메타데이터 지리적 재해 복구를 위해서는 수동으로 장애 조치(failover)를 시작하거나 보조 지역을 새로운 주 지역으로 승격해야 합니다. 주 지역이 다운된 경우에도 Microsoft는 자동으로 장애 복구 또는 프로모션을 수행하지 않습니다.

Geo-replication

프리미엄 및 전용 계층은 지역에서 복제를 지원합니다. 이 기능은 네임스페이스에 대한 메타데이터(예: 엔터티, 구성 및 속성)와 데이터(예: 이벤트 페이로드)를 모두 복제합니다. 네임스페이스의 구성 및 이벤트 데이터에 대한 복제 방법을 구성합니다. 이 기능을 사용하면 다른 지역에서 이벤트를 계속 사용할 수 있으며 필요할 때 보조 지역으로 전환할 수 있습니다. 또한 스키마 레지스트리 메타데이터 및 데이터를 복제합니다.

지역 중단에 대한 복원력이 필요하고 이벤트 데이터 손실에 대한 허용 오차가 낮은 시나리오에 지역 복제를 사용합니다.

네임스페이스는 기본적으로 지역 간에 확장됩니다. 한 지역은 주 지역으로 사용되고 다른 지역은 보조 지역으로 사용됩니다. 지역 복제를 위해 구성하는 보조 지역 수에 관계없이 Azure 구독에 단일 네임스페이스가 표시됩니다.

지역 복제를 위해 구성된 Event Hubs 네임스페이스를 보여 주는 다이어그램

언제든지 보조 지역을 주 지역으로 승격 할 수 있습니다. 보조 지역을 승격하면 Event Hubs는 네임스페이스의 FQDN(정규화된 도메인 이름)을 선택한 보조 지역으로 다시 지정하고 이전 주 지역을 보조 지역으로 강등합니다. 계획된 승격을 수행할지 여부를 결정합니다. 즉, 데이터 복제가 완료될 때까지 기다리거나 강제 승격을 수행하여 데이터가 손실될 수 있습니다.

비고

Event Hubs 지역 복제는 보조 지역을 주 지역으로 승격하고 나중에 주 지역을 보조 지역으로 강등하는 프로세스를 가장 잘 나타내 기 때문에 승격 이라는 용어를 사용합니다. 일반 프로세스를 설명하는 데 사용되는 장애 조치(failover )라는 용어도 표시될 수 있습니다.

이 섹션에서는 지역 복제의 중요한 측면을 요약합니다. 전체 설명서를 검토하여 작동 방식을 정확하게 이해합니다. 자세한 내용은 Event Hubs 지역 복제를 참조하세요.

지역 지원

Event Hubs를 주 지역 또는 보조 지역으로 지원하는 Azure 지역을 선택할 수 있습니다. Azure 쌍을 이루는 지역을 사용할 필요가 없으므로 대기 시간, 규정 준수 또는 데이터 상주 요구 사항에 따라 보조 지역을 선택할 수 있습니다.

요구 사항

지역에서 복제를 사용하도록 설정하려면 네임스페이스가 프리미엄 또는 전용 계층을 사용해야 합니다.

고려 사항

지역에서 복제를 사용하도록 설정하는 경우 다음 요소를 고려합니다.

  • 검사점 형식: 검사점의 형식이 변경됩니다. 자세한 내용은 지역 복제: 데이터 소비를 참조하세요.

  • 프라이빗 엔드포인트: 프라이빗 엔드포인트를 사용하여 네임스페이스에 연결하는 경우 기본 및 보조 지역에서도 네트워킹을 구성해야 합니다. 자세한 내용은 프라이빗 엔드포인트를 참조하세요.

비용

지역 복제에 대한 가격 책정 작동 방식을 이해하려면 가격 책정을 참조하세요.

다중 지역 지원 구성

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

이 섹션에서는 지역 복제를 위해 Event Hubs 네임스페이스가 구성되고 주 지역이 작동할 때 예상되는 작업에 대해 설명합니다.

  • 지역 간 트래픽 라우팅: 클라이언트 애플리케이션은 네임스페이스에 대한 FQDN을 통해 연결되고 해당 트래픽은 주 지역으로 라우팅됩니다.

    기본 지역만 정상 작업 중에 클라이언트의 이벤트를 적극적으로 처리합니다. 보조 지역은 복제된 이벤트를 수신하지만, 그렇지 않으면 대기 모드에서 수동 상태로 유지됩니다.

  • 지역 간 데이터 복제: 주 지역과 보조 지역 간의 데이터 복제 동작은 동기 복제 또는 비동기 복제를 사용하도록 복제 쌍을 구성하는지 여부에 따라 달라집니다.

    • 동기: 이벤트는 쓰기 작업이 완료되기 전에 보조 지역에 복제됩니다.

      이 모드는 기본 및 보조 지역에서 커밋해야 하므로 이벤트 데이터가 안전하다는 가장 큰 보증을 제공합니다. 그러나 동기 복제는 들어오는 이벤트에 대한 쓰기 대기 시간을 크게 늘립니다. 또한 보조 지역에서 쓰기 작업을 수락할 수 있어야 하므로 보조 지역의 중단으로 인해 쓰기 작업이 실패합니다.

      • 비동기: 이벤트는 주 지역에 기록된 다음 쓰기 작업이 완료됩니다. 잠시 후 보조 지역에 이벤트를 복제합니다.

      이 모드는 쓰기 작업 중에 지역 간 복제 대기 시간이 없기 때문에 동기 복제보다 더 높은 쓰기 처리량을 제공합니다. 또한 비동기 복제 모드는 주 지역에서 쓰기 작업을 허용하면서 보조 지역의 손실을 허용할 수 있습니다. 그러나 주 지역에 중단이 있는 경우 보조 지역에 아직 복제되지 않은 모든 데이터를 사용할 수 없거나 손실될 수 있습니다.

      비동기 복제를 구성하는 경우 복제에 허용되는 최대 지연 시간을 구성합니다. 언제든지 Azure Monitor 메트릭을 사용하여 현재 복제 지연 시간을 확인할 수 있습니다.

      지정한 최대값을 초과하여 비동기 복제 지연 시간이 증가하면 주 지역이 들어오는 요청을 제한하기 시작하여 복제가 따라잡을 수 있도록 합니다. 이러한 상황을 방지하려면 지리적으로 그리 멀지 않은 보조 지역을 선택하고 용량이 처리량에 충분한지 확인하는 것이 중요합니다.

      자세한 내용은 복제 모드를 참조하세요.

지역 오류 중 동작

이 섹션에서는 지역 복제를 위해 Event Hubs 네임스페이스가 구성되고 주 지역 또는 보조 지역에서 중단이 발생할 때 예상되는 사항에 대해 설명합니다.

  • 검색 및 응답: 네임스페이스의 보조 지역을 새 주 지역으로 승격할 시기를 결정할 책임이 있습니다. Microsoft는 지역 가동 중단이 있더라도 이 결정을 내리거나 프로세스를 시작하지 않습니다. 보조 지역을 새 주 지역으로 승격하는 방법에 대한 자세한 내용은 보조 수준 올리기를 참조하세요.

    보조 지역을 승격하는 경우 계획된 승격 또는 강제 승격을 수행할지 여부를 선택합니다. 계획된 프로모션은 새 트래픽을 수락하기 전에 보조 지역이 동기화될 때까지 기다립니다. 이 방법은 데이터 손실을 제거하지만 가동 중지 시간이 발생합니다.

    주 지역에서 중단이 발생하는 경우 일반적으로 강제 승격을 수행해야 합니다. 주 지역을 이용할 수 있고 다른 이유로 승격을 트리거하는 경우 계획된 승격을 선택할 수 있습니다.

  • 알림: Microsoft는 지역이 다운된 경우 자동으로 알리지 않습니다. 그러나 Azure Service Health 를 사용하여 지역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.

    해당 정보 및 기타 메트릭을 사용하여 보조 지역을 주 지역으로 승격할 시기를 결정합니다.

  • 활성 요청: 이 동작은 주 지역 또는 보조 지역에서 지역 중단이 발생하는지 여부에 따라 달라집니다.

    • 주 지역 중단: 주 지역을 사용할 수 없는 경우 모든 활성 요청이 종료됩니다. 클라이언트 애플리케이션은 승격이 완료된 후 작업을 다시 시도해야 합니다.

    • 보조 지역 중단: 보조 지역의 중단으로 인해 다음과 같은 상황에서 활성 요청에 문제가 발생할 수 있습니다.

      • 동기 복제 모드를 사용하는 경우, 어떤 보조 지역이라도 사용할 수 없으면 주 지역에서 쓰기 작업을 완료할 수 없습니다.

      • 비동기 복제 모드를 사용하는 경우 네임스페이스는 복제 지연이 구성한 최대값에 도달한 후 새 이벤트를 제한하고 수락하지 않습니다.

      주 지역에서 네임스페이스를 계속 사용하려면 지역 복제 구성에서 보조 네임스페이스를 제거합니다.

  • 예상 데이터 손실: 데이터 손실의 양은 수행하는 승격 유형(계획 또는 강제) 및 복제 모드(동기 또는 비동기)에 따라 달라집니다.

    • 계획된 프로모션: 데이터 손실이 예상되지 않습니다. 그러나 지역 가동 중단 중에는 모든 기본 및 보조 지역을 사용할 수 있어야 하므로 계획된 승격이 불가능할 수 있습니다.

    • 강제 승격, 동기 복제: 데이터 손실이 예상되지 않습니다.

    • 강제 승격, 비동기 복제: 보조 지역에 복제되지 않은 최근 이벤트에 대한 데이터 손실이 발생할 수 있습니다. 금액은 복제 지연에 따라 달라집니다. 현재 복제 지연을 확인하려면 Azure Monitor 메트릭을 사용합니다.

    강제 승격을 수행하는 경우 주 지역을 사용할 수 있게 된 후에도 손실된 데이터를 복구할 수 없습니다.

  • 예상 가동 중지 시간: 예상 가동 중지 시간은 계획된 승격 또는 강제 승격 수행 여부에 따라 달라집니다.

    • 계획된 프로모션: 계획된 승격의 첫 번째 단계는 보조 지역에 데이터를 복제합니다. 이 프로세스는 일반적으로 빠르게 완료되지만 경우에 따라 복제 지연 시간이 최대로 걸릴 수 있습니다. 복제가 완료된 후 승격 프로세스는 일반적으로 약 5~10분이 걸립니다. DNS(도메인 이름 시스템) 서버가 항목을 업데이트하고 해당 레코드를 클라이언트에 완전히 복제하는 데 시간이 더 오래 걸릴 수 있습니다.

      주 지역은 전체 승격 프로세스 중에 쓰기 작업을 허용하지 않습니다.

      이 옵션은 모든 주 및 보조 지역을 사용할 수 있어야 하므로 지역 중단 중에는 불가능할 수 있습니다.

    • 강제 승격: 강제 승격 중에 Event Hubs는 데이터 복제가 완료될 때까지 기다리지 않고 즉시 승격을 시작합니다. 승격 프로세스는 일반적으로 약 5~10분이 걸립니다. DNS 항목이 클라이언트에서 완전히 복제되고 업데이트되는 데 시간이 더 오래 걸릴 수 있습니다.

      주 지역은 전체 승격 프로세스 중에 쓰기 작업을 허용하지 않습니다.

  • 트래픽 경로 변경: 승격이 완료되면 네임스페이스의 FQDN이 새 주 지역을 가리킵니다. 그러나 이 리디렉션은 DNS 서버가 네임스페이스 DNS 레코드의 TTL(Time-to-Live)을 적용하는 것을 포함하여 클라이언트의 DNS 레코드가 업데이트되는 빈도에 따라 달라집니다.

    경우에 따라 지역 승격이 발생한 후 일관되게 작동하도록 소비자 애플리케이션을 구성해야 합니다. 자세한 내용은 지역 복제: 데이터 소비를 참조하세요.

지역 복구

원래 주 지역이 복구된 후 네임스페이스를 원래 주 지역으로 반환하려면 동일한 지역 승격 프로세스를 따릅니다.

지역 중단 중에 강제 승격을 수행한 경우 주 지역을 사용할 수 있게 된 후에도 손실된 데이터를 복구할 수 없습니다.

지역 오류 테스트

지역에서 복제를 테스트하려면 일시적으로 보조 지역을 주 지역으로 승격하고 클라이언트 애플리케이션이 중단을 최소화하면서 지역 간에 전환할 수 있음을 확인합니다.

프로모션 기간을 모니터링하고 런북과 자동화가 올바르게 작동하는지 검증합니다. 테스트 후에는 원래 구성으로 장애 복구(failback)할 수 있습니다.

승격 프로세스 도중 및 이후에 발생할 수 있는 잠재적인 가동 중지 시간 및 데이터 손실을 이해합니다. 프로덕션 네임스페이스의 구성을 미러링하는 비프로덕션 환경에서 지역 복제를 테스트합니다.

메타데이터 지역 재해 복구

표준 계층 이상은 메타데이터 지역 재해 복구를 지원합니다. 이 기능은 지역의 치명적인 손실을 포함하여 재해 시나리오에서 복구를 향상시킵니다. 지역 재해 복구는 네임스페이스의 구성 및 메타데이터만 복제합니다. 그러나 이벤트 데이터는 복제하지 않습니다. 재해 복구를 지원하기 위해 이 기능은 다른 지역의 네임스페이스를 미리 구성하고 클라이언트의 이벤트를 즉시 수락할 준비가 되도록 합니다. 지역 재해 복구는 단방향 복구 솔루션으로 사용되며 이전 주 지역으로의 장애 복구를 지원하지 않습니다.

메타데이터 지역 재해 복구는 모든 이벤트를 엄격하게 유지할 필요가 없고 재해 시나리오 중에 일부 데이터 손실을 허용할 수 있는 애플리케이션에 가장 적합합니다. 예를 들어, 나중에 집계해야 하는 센서 판독값으로 구성된 이벤트일 경우 다른 지역에서 새 이벤트 처리를 신속하게 다시 시작할 수 있다면, 실패한 지역에서 일부 이벤트 손실을 감당할 수 있다고 선택할 수 있습니다.

중요합니다

지역 재해 복구를 사용하면 구성이 동일하지만 이벤트 데이터를 복제하지 않는 작업을 연속할 수 있습니다. 이벤트 데이터를 복제해야 하는 경우 지역 복제를 사용하는 것이 좋습니다.

메타데이터 지리적 재해 복구를 구성할 때, 클라이언트 애플리케이션이 연결하는 별칭을 만듭니다. 별칭은 기본적으로 모든 트래픽을 기본 네임스페이스로 전송하는 FQDN입니다.

메타데이터 지역 재해 복구를 위해 구성된 두 개의 Event Hubs 네임스페이스를 보여 주는 다이어그램

주 지역이 실패하거나 다른 유형의 재해가 발생하는 경우 언제든지 주 지역에서 보조 지역으로 단일 단방향 장애 조치(failover) 이동을 수동으로 시작할 수 있습니다. 장애 조치가 거의 즉시 완료됩니다. 장애 조치(failover) 프로세스 동안 지리적 재해 복구 별칭은 보조 네임스페이스를 다시 가리키고 페어링은 제거됩니다.

이 섹션에서는 지역 재해 복구의 중요한 측면을 요약합니다. 전체 설명서를 검토하여 작동 방식을 정확하게 이해합니다. 자세한 내용은 Event Hubs 지역 재해 복구를 참조하세요.

지역 지원

Event Hubs를 기본 또는 보조 네임스페이스로 지원하는 Azure 지역을 선택할 수 있습니다. Azure 쌍을 이루는 지역을 사용할 필요가 없으므로 대기 시간, 규정 준수 또는 데이터 상주 요구 사항에 따라 보조 지역을 선택할 수 있습니다.

요구 사항

  • 기본 네임스페이스 계층: 메타데이터 지역 재해 복구를 사용하려면 기본 네임스페이스가 표준 계층 이상에 있어야 합니다.

  • 보조 네임스페이스 계층: 메타데이터 지역 재해 복구는 기본 및 보조 네임스페이스에 대한 특정 계층 조합을 지원합니다. 자세한 내용은 지원되는 네임스페이스 쌍을 참조하세요.

고려 사항

  • 역할 할당: 주 네임스페이스의 엔터티에 대한 Microsoft Entra RBAC(역할 기반 액세스 제어) 할당은 보조 네임스페이스에 복제되지 않습니다. 보조 네임스페이스에서 수동으로 역할 할당을 만들어 액세스를 보호합니다.

  • 스키마 레지스트리: 스키마 레지스트리 메타데이터는 메타데이터 지역 재해 복구를 사용할 때 복제되지만 스키마 레지스트리에 등록된 스키마는 복제되지 않습니다.

  • 애플리케이션 디자인: 지역 재해 복구에는 클라이언트 애플리케이션을 디자인할 때 특정 고려 사항이 필요합니다. 자세한 내용은 고려 사항참조하세요.

  • 프라이빗 엔드포인트: 프라이빗 엔드포인트를 사용하여 네임스페이스에 연결하는 경우 주 지역과 보조 지역 모두에서 네트워킹을 구성합니다. 자세한 내용은 프라이빗 엔드포인트를 참조하세요.

비용

메타데이터 지역 재해 복구를 사용하도록 설정하면 기본 네임스페이스와 보조 네임스페이스 모두에 대한 비용을 지불합니다.

다중 지역 지원 구성

  • 메타데이터 지리적 재해 복구 쌍을 구성합니다. 주 네임스페이스와 보조 네임스페이스 간에 재해 복구를 구성하려면 설치 및 장애 조치 흐름을 참조하세요.

  • 메타데이터 지역 재해 복구를 사용하지 않도록 설정합니다. 네임스페이스 간의 페어링을 중단하려면 설치 및 장애 조치 흐름을 참조하세요.

용량 계획 및 관리

다중 지역 배포를 계획할 때 한 지역이 실패할 경우 두 지역 모두 전체 부하를 처리할 수 있는 충분한 용량이 있는지 확인합니다. 보조 지역은 정상 작업 중에 수동 상태로 유지되지만 장애 조치(failover) 후 트래픽을 즉시 처리해야 합니다. 지연 없이 프로덕션 트래픽을 수신할 수 있도록 보조 네임스페이스 용량의 크기를 조정하는 방법을 계획합니다. 장애 조치(failover) 프로세스 중에 추가 가동 중지 시간을 허용할 수 있는 경우 장애 조치(failover) 중 또는 이후에 보조 네임스페이스 용량의 크기를 조정하도록 선택할 수 있습니다. 가동 중지 시간을 줄이려면 프로덕션 부하를 받을 준비가 되도록 보조 네임스페이스에 용량을 미리 프로비전합니다.

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

이 섹션에서는 지역 재해 복구를 위해 Event Hubs 네임스페이스가 구성되고 주 지역이 작동할 때 예상되는 작업에 대해 설명합니다.

  • 지역 간 트래픽 라우팅: 클라이언트 애플리케이션은 네임스페이스에 대한 지역 재해 복구 별칭을 통해 연결되고 해당 트래픽은 주 지역의 주 네임스페이스로 라우팅됩니다.

    기본 네임스페이스만 정상 작업 중에 클라이언트의 이벤트를 적극적으로 처리합니다. 보조 네임스페이스는 대기 모드에서 수동 상태로 유지되며 데이터에 액세스하는 모든 요청이 실패합니다.

  • 지역 간 데이터 복제: 구성 메타데이터만 네임스페이스 간에 복제됩니다. 구성 복제는 지속적으로 비동기적으로 발생합니다.

    모든 이벤트 데이터는 주 네임스페이스에만 유지되며 보조 네임스페이스에 복제되지 않습니다.

지역 오류 중 동작

이 섹션에서는 지역 재해 복구를 위해 Event Hubs 네임스페이스가 구성되고 주 지역에서 중단이 발생할 때 예상되는 사항에 대해 설명합니다.

  • 탐지 및 대응: 지역 상태를 모니터링하고 장애 조치(failover)를 수동으로 시작해야 합니다. Microsoft는 주 지역이 다운된 경우에도 장애 조치(failover)를 수행하거나 보조 지역을 자동으로 승격하지 않습니다.

    장애 조치(failover)를 시작하는 방법에 대한 자세한 내용은 수동 장애 조치(failover)를 참조하세요.

    장애 조치(failover)는 단방향 작업이므로, 이후에 지리적 재해 복구 쌍을 다시 설정해야 합니다. 자세한 내용은 지역 복구를 참조하세요.

  • 알림: Microsoft는 지역이 다운된 경우 자동으로 알리지 않습니다. 그러나 Azure Service Health 를 사용하여 지역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.

    해당 정보 및 기타 메트릭을 사용하여, 언제 보조 지역으로 전환(failover)할지 결정합니다.

  • 활성 요청: 진행 중인 활성 요청은 장애 조치(failover)가 시작되면 종료됩니다. 클라이언트 애플리케이션은 장애 조치(failover)가 완료된 후 작업을 다시 시도해야 합니다.

  • 예상 데이터 손실:

    • 메타데이터: 구성 및 메타데이터는 일반적으로 보조 네임스페이스에 복제됩니다. 그러나 메타데이터 복제는 비동기적으로 발생하므로 최근 변경 내용, 특히 복잡한 변경 내용이 복제되지 않을 수 있습니다. 클라이언트가 액세스하기 전에 보조 네임스페이스의 구성을 확인합니다.

    • 이벤트 데이터: 이벤트 데이터는 지역 간에 복제되지 않습니다. 주 지역이 중단되면 주 네임스페이스의 이벤트를 사용할 수 없게 됩니다.

      치명적인 재해로 인해 주 지역의 총 손실이 발생하지 않는 한 이벤트는 영구적으로 손실되지 않습니다. 지역이 복구되면 나중에 주 네임스페이스에서 이벤트를 검색할 수 있습니다.

  • 예상 가동 중지 시간: 장애 조치 절차는 일반적으로 5~10분 내에 완료됩니다. 클라이언트가 DNS 항목을 완전히 복제하고 업데이트하는 데 시간이 더 오래 걸릴 수 있습니다.

  • 트래픽 경로 변경: 지역 재해 복구 별칭을 사용하여 네임스페이스에 연결하는 클라이언트는 장애 조치(failover) 후 자동으로 보조 네임스페이스로 리디렉션됩니다. 그러나 이 리디렉션은 네임스페이스 DNS 레코드의 TTL을 적용하는 DNS 서버와 업데이트된 DNS 레코드를 수신하는 클라이언트에 따라 달라집니다.

지역 복구

원래 주 지역이 복구된 후에는 수동으로 페어링을 다시 설정하고 선택적으로 장애 복구를 수행해야 합니다. 새 복구된 지역을 보조로 하여 지역 재해 복구 쌍을 생성한 다음, 원래 지역으로 돌아가려면 또 다른 장애 조치(failover)를 수행합니다. 이 프로세스에는 임시 주 복제본으로 전송된 이벤트의 잠재적인 데이터 손실이 포함됩니다.

재해로 인해 주 지역의 모든 영역이 손실되는 경우 데이터를 복구할 수 없을 수 있습니다. 다른 시나리오에서는 장애 조치(failover)가 복구되기 전부터 이벤트 데이터가 기본 네임스페이스에 남아 있습니다. 액세스를 복원한 후 이전 주 네임스페이스에서 기록 이벤트를 가져올 수 있습니다. 이러한 이벤트를 수신하고 처리하도록 애플리케이션을 구성할 책임이 있습니다. Microsoft는 당신의 보조 지역에 그것들을 자동으로 복원하지 않습니다.

지역 오류 테스트

응답 및 재해 복구 프로세스를 테스트하려면 유지 관리 기간 동안 계획된 장애 조치(failover)를 수행합니다. 주 네임스페이스에서 보조 네임스페이스로 장애 조치(failover)를 시작하고 애플리케이션이 새 주 네임스페이스의 이벤트를 연결하고 처리할 수 있는지 확인합니다.

장애 조치(failover) 기간을 모니터링하고 Runbook과 자동화가 올바르게 작동하는지 유효성을 검사합니다. 테스트 후에는 원래 구성으로 장애 복구(failback)할 수 있습니다.

장애 조치(failover) 프로세스 도중 및 이후에 발생할 수 있는 잠재적 가동 중지 시간 및 데이터 손실을 이해합니다. 프로덕션 네임스페이스의 구성을 미러링하는 비프로덕션 환경에서 지역 복제를 테스트합니다.

복원력을 위한 사용자 지정 다중 지역 솔루션

지역 복제 및 메타데이터 지역 재해 복구는 지역 중단 및 기타 문제에 대한 복원력을 제공하며 대부분의 워크로드를 지원합니다. 일부 Event Hubs 계층은 이러한 기능을 지원하지 않거나 사용자 지정 복제가 필요하거나 여러 활성 지역을 동시에 유지 관리해야 할 수 있습니다.

다양한 디자인 패턴은 Event Hubs에서 다양한 유형의 다중 지역 지원을 달성할 수 있습니다. 대부분의 패턴에는 여러 네임스페이스를 배포하고 Azure Functions와 같은 서비스를 사용하여 이벤트를 복제해야 합니다. 자세한 내용은 다중 사이트 및 다중 지역 페더레이션을 참조하세요.

백업 및 복원

Event Hubs는 데이터에 대한 장기 스토리지 위치로 설계되지 않았습니다. 일반적으로 짧은 시간 동안 이벤트 허브에 데이터를 저장한 다음 처리하거나 다른 데이터 스토리지 시스템에 유지합니다. 요구 사항 및 네임스페이스에서 사용하는 계층에 따라 이벤트 허브에 대한 데이터 보존 기간을 구성할 수 있습니다. 자세한 내용은 이벤트 보존을 참조하세요.

이벤트 복사본을 유지해야 하는 경우 이벤트 복사본을 Azure Blob Storage 계정에 저장하는 Event Hubs 캡처를 사용하는 것이 좋습니다.

서비스 수준 약정

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

네임스페이스의 가용성 SLA는 프리미엄 또는 전용 계층을 사용하는 경우 더 높습니다.