Azure Service Bus는 애플리케이션 및 서비스를 분리하기 위한 안정적인 비동기 메시징 기능을 제공하는 완전 관리형 엔터프라이즈 메시지 브로커 서비스입니다. Service Bus는 지점 간 통신을 위한 큐와 게시-구독 메시징 패턴을 위한 구독이 있는 토픽을 지원합니다. 이 서비스는 메시지 내구성, 최소 한 번 전달 보장, 실패한 메시지 처리를 위한 데드레터 큐 등 내장된 신뢰성 기능을 제공합니다.
Azure를 사용하는 경우 안정성은 공유 책임입니다. Microsoft는 복원력 및 복구를 지원하는 다양한 기능을 제공합니다. 이러한 기능이 사용하는 모든 서비스 내에서 작동하는 방식을 이해하고 비즈니스 목표 및 가동 시간 목표를 충족하는 데 필요한 기능을 선택할 책임이 있습니다.
이 문서에서는 일시적인 오류, 가용성 영역 중단 및 지역 중단을 포함한 다양한 잠재적인 중단과 문제에 대해 Service Bus의 복원력을 강화하는 방법을 설명합니다. 또한 Service Bus SLA(서비스 수준 계약)에 대한 몇 가지 주요 정보를 강조 표시합니다.
프로덕션 배포 권장 사항
Azure Well-Architected Framework는 안정성, 성능, 보안, 비용 및 운영에 대한 권장 사항을 제공합니다. 이러한 영역이 서로에 미치는 영향을 이해하고 신뢰할 수 있는 App Service 솔루션에 기여하려면 Azure Well-Architected Framework에서 Azure Service Bus에 대한 아키텍처 모범 사례를 참조하세요.
안정성 아키텍처 개요
이 섹션에서는 안정성 관점에서 가장 관련성이 높은 서비스가 작동하는 방식의 몇 가지 중요한 측면을 설명합니다. 이 섹션에서는 배포하고 사용하는 일부 리소스 및 기능을 포함하는 논리 아키텍처를 소개합니다. 또한 서비스의 작동 방식에 대한 세부 정보를 제공하는 물리적 아키텍처에 대해서도 설명합니다.
논리 아키텍처
네임스페이스는 Service Bus의 관리 컨테이너 역할을 하며 기본, 표준 또는 프리미엄 계층을 사용하도록 구성할 수 있습니다. 용량을 할당하고, 네트워크 보안을 구성하고, Geo-Replication 및 Geo-Disaster Recovery를 사용하도록 설정하여 네임스페이스 수준에서 서비스를 구성합니다.
네임스페이스 내에서 서로 다른 의미 체계를 가진 메시징 엔터티인 큐 및 토픽을 배포합니다. 자세한 내용은 Service Bus 큐, 토픽 및 구독을 참조하세요.
필요에 따라 네임스페이 스에서 파티션을 구성하여 여러 메시지 브로커 및 메시징 저장소에 큐와 토픽을 분산할 수 있습니다. 네임스페이스는 여러 파티션을 사용하여 병렬 처리 및 수평 크기 조정을 수행할 수 있습니다. Service Bus는 단일 파티션 내에서만 순서를 보장합니다. 분할은 애플리케이션의 안정성 디자인에서 중요한 역할을 합니다. 애플리케이션을 디자인할 때 가용성과 일관성을 극대화하는 것 사이에서 절편을 만듭니다. 프리미엄 계층의 경우 네임스페이스에서 분할을 사용하도록 설정합니다. 기본 및 표준 계층 네임스페이스의 경우 엔터티에서 파티션을 구성하고 , 필요에 따라 메시지를 보낼 때 파티션을 구성합니다.
Service Bus 및 비동기 디자인 방법을 사용하여 애플리케이션의 가용성을 높일 수 있습니다. 자세한 내용은 비동기 메시징 패턴 및 고가용성을 참조하세요.
물리적 아키텍처
Service Bus는 기본 컴퓨팅 및 스토리지 리소스를 제공합니다. 각 네임스페이스에 대해 여러 메시지 브로커가 메시지를 처리하고 여러 메시징 저장소 가 메시지를 저장합니다. 메시징 저장소에는 기본 복사본 1개와 보조 복제본 2개 등 세 개의 복사본이 있습니다. Service Bus는 데이터 및 관리 작업을 위해 세 가지 복사본을 모두 동기화 상태로 유지합니다. 기본 복사본이 실패하면, 보조 복사본 중 하나가 기본 복사본으로 승격되며, 사용자는 다운타임을 인지하지 못합니다.
기본 또는 표준 계층을 사용하는 네임스페이스의 경우 Service Bus는 사용 가능한 경우 가용성 영역 간에 메시지를 자동으로 복제하는 공유 다중 테넌트 인프라를 통해 중복성을 제공합니다. 이 서비스는 여러 메시징 저장소를 유지하고 모든 복사본을 데이터 및 관리 작업 모두에 대해 동기화된 상태로 유지합니다.
프리미엄 계층 네임스페이스의 경우 Service Bus는 각각 전용 CPU 및 메모리 리소스가 있는 전용 메시징 단위를 제공합니다. 프리미엄 계층 네임스페이스는 워크로드 요구에 따라 자동으로 확장할 수 있습니다. 자세한 내용은 Azure Service Bus 네임스페이스의 메시징 단위 자동 업데이트를 참조하세요.
Service Bus 인프라는 장애 도메인에 분산된 여러 물리적 컴퓨터 및 랙에 걸쳐 있으므로 네임스페이스에 영향을 주는 치명적인 오류의 위험을 줄입니다. 가용성 영역이 있는 지역에서 인프라는 별도의 물리적 데이터 센터에 걸쳐 확장됩니다. 이 서비스는 보장된 서비스 수준 내에서 그리고 일반적으로 이러한 오류가 발생할 때 눈에 띄는 중단 없이 계속 작동하도록 투명한 오류 감지 및 장애 조치(failover) 메커니즘을 구현합니다.
일시적인 오류에 대한 복원력
일시적인 오류는 구성 요소에서 짧고 간헐적인 오류입니다. 클라우드와 같은 분산 환경에서 자주 발생하며 작업의 일반적인 부분입니다. 일시적인 오류는 짧은 시간 후에 스스로 수정됩니다. 애플리케이션은 일반적으로 영향을 받는 요청을 다시 시도하여 일시적인 오류를 처리할 수 있는 것이 중요합니다.
모든 클라우드 호스팅 애플리케이션은 클라우드 호스팅 API, 데이터베이스 및 기타 구성 요소와 통신할 때 Azure 임시 오류 처리 지침을 따라야 합니다. 자세한 내용은 임시 오류 처리를 위한 권장 사항을 참조하세요.
Azure Service Bus SDK에는 네트워크 시간 제한 또는 임시 서비스 사용 불가와 같은 일시적인 조건으로 인해 실패하는 작업에 대한 지수 백오프가 포함된 자동 재시도 논리가 포함되어 있습니다. 애플리케이션이 Service Bus에서 일시적인 연결을 끊으면 SDK는 구성된 재시도 정책을 사용하여 자동으로 다시 연결을 시도합니다.
애플리케이션에서 일시적인 오류 처리를 최적화하려면 최신 재시도 논리 및 연결 관리 기능을 포함하는 최신 Service Bus SDK를 사용합니다. 자세한 내용은 .NET용 Azure Service Bus 클라이언트 라이브러리를 참조하세요.
가용성 영역 오류에 대한 복원력
가용성 영역은 Azure 지역 내에서 물리적으로 별도의 데이터 센터 그룹입니다. 한 영역이 실패하면 서비스가 나머지 영역 중 하나로 전환될 수 있습니다.
Service Bus는 모든 서비스 계층에서 영역 중복 배포를 지원합니다. 지원되는 지역에 Service Bus 네임스페이스를 만들면 추가 비용 없이 영역 중복성이 자동으로 사용하도록 설정됩니다. 영역 중복 배포 모델은 분할 및 세션을 비롯한 모든 Service Bus 기능에 적용됩니다.
Service Bus는 해당 지역의 여러 가용성 영역에서 구성, 메타데이터 및 메시지 데이터를 투명하게 복제합니다. 영역 중복은 사용자가 개입할 필요 없이 자동 장애 조치를 제공합니다. 컴퓨팅, 네트워킹 및 스토리지를 포함한 모든 Service Bus 구성 요소는 영역 간에 복제됩니다. Service Bus에는 영역이 완전히 손실되는 경우를 즉시 처리할 수 있는 충분한 용량 예약이 제공됩니다. 전체 가용성 영역을 사용할 수 없게 되더라도 Service Bus는 데이터 손실 또는 메시징 애플리케이션 중단 없이 계속 작동합니다.
요구 사항
지역 지원: 영역 중복 Service Bus 네임스페이스는 가용성 영역이 지원되는 Azure 지역에 배포할 수 있습니다. Service Bus는 지원되는 지역에 네임스페이스를 만들 때 추가 구성 없이 가용성 영역 지원을 자동으로 사용하도록 설정합니다.
계층: 모든 Service Bus 계층(기본, 표준 및 프리미엄)은 추가 요구 사항 없이 가용성 영역을 지원합니다.
고려 사항
Service Bus 네임스페이스에는 속성이 zoneRedundant 포함됩니다. 이전에는 가용성 영역을 사용하도록 설정하기 위해 이 속성이 필요했지만 이 동작이 변경되고 zoneRedundant 속성이 더 이상 사용되지 않습니다. 영역 중복을 사용하는 경우에도 이 속성이 계속 표시 false 될 수 있습니다. 가용 영역이 있는 리전의 모든 네임스페이스는 영역 중복 입니다.
비용
Service Bus의 영역 중복성은 추가 비용을 추가하지 않습니다.
가용성 영역 지원 구성
Service Bus 네임스페이스는 지원되는 지역에 배포될 때 영역 중복을 자동으로 지원합니다. 추가 구성은 필요하지 않습니다.
모든 영역이 정상인 경우의 동작
이 섹션에서는 Service Bus 네임스페이스가 영역 중복성을 위해 구성되고 모든 가용성 영역이 작동할 때 예상되는 사항에 대해 설명합니다.
영역 간의 트래픽 라우팅. Service Bus는 메시지가 여러 가용성 영역에 분산되는 활성-활성 모델을 사용합니다. 클라이언트 연결은 영역 간에 자동으로 부하 분산되며, 서비스는 영역에 관계없이 사용 가능한 메시징 인프라로 작업을 라우팅합니다.
영역 간의 데이터 복제입니다. Service Bus는 메타데이터 및 메시지 데이터를 포함하여 가용성 영역에서 동기 복제를 사용합니다. 메시징 저장소의 여러 복사본은 완료된 것으로 간주되기 전에 쓰기 작업을 승인해야 하며, 정상적인 작업 중에 영역 간에 데이터 일관성을 보장합니다.
영역 오류 중 동작
이 섹션에서는 Service Bus 네임스페이스가 영역 중복성을 위해 구성되고 가용성 영역 중단이 발생할 때 예상되는 사항에 대해 설명합니다.
- 검색 및 응답: Microsoft는 자동으로 영역 오류를 감지하고 정상 영역으로 장애 조치(failover)를 시작합니다. 영역 수준 장애 조치에 대해 고객이 취할 조치는 없습니다.
- 알림: 영역이 다운된 경우 Microsoft는 자동으로 알리지 않습니다. 그러나 Azure Service Health 를 사용하여 영역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.
활성 요청: 영역이 실패하는 동안 Service Bus는 활성 요청을 삭제할 수 있습니다. 클라이언트가 짧은 시간 후에 다시 시도하여 일시적인 오류를 적절하게 처리하는 경우 일반적으로 상당한 영향을 받지 않습니다.
예상 데이터 손실: Service Bus가 승인하기 전에 영역 간에 메시지를 동기적으로 복제하기 때문에 영역 오류 중에 데이터 손실이 발생하지 않습니다.
예상 가동 중지 시간: 영역 오류로 인해 몇 초 동안 가동 중지가 발생할 수 있습니다. 클라이언트가 짧은 시간 후에 다시 시도하여 일시적인 오류를 적절하게 처리하는 경우 일반적으로 상당한 영향을 받지 않습니다.
트래픽 경로 변경: Service Bus는 영역 손실을 감지하고 새 요청을 정상 가용성 영역 중 하나의 다른 복제본으로 자동으로 리디렉션합니다.
Service Bus SDK는 일반적으로 연결 관리 및 재시도 논리를 투명하게 처리합니다.
영역 복구
가용성 영역이 복구되면 Service Bus는 자동으로 영역을 활성 서비스 토폴로지로 다시 통합합니다. 복구된 영역은 새 연결을 수락하고 다른 영역과 함께 메시지를 처리하기 시작합니다. 중단 시 생존 영역에 복제된 데이터는 그대로 유지되며 모든 영역에서 정상적인 동기 복제가 다시 시작됩니다. 영역 복구 및 재통합에 대한 조치를 취할 필요가 없습니다.
영역 오류 테스트
Service Bus는 영역 오류에 대한 트래픽 라우팅, 장애 조치 및 영역 복구를 관리하므로 가용성 영역 오류 프로세스의 유효성을 검사하거나 추가 입력을 제공할 필요가 없습니다.
지역 전체 오류에 대한 복원력
Service Bus는 두 가지 유형의 다중 지역 지원을 제공하며, 둘 다 프리미엄 계층 네임스페이스가 필요합니다.
지역 복제 는 주 지역과 보조 지역 간에 메타데이터 및 메시지 데이터를 모두 활성-수동 복제를 제공합니다. 지역 중단에 대한 복원력을 유지하고 메시지 데이터 손실에 대한 허용 오차가 낮은 대부분의 애플리케이션에 Geo-Replication 사용합니다.
메타데이터 Geo-Disaster Recovery 는 주 지역과 보조 지역 간에 구성 및 메타데이터의 활성-수동 복제를 제공하지만 메시지 데이터를 복제하지는 않습니다. 자체 데이터 복제를 처리하거나 데이터 복제가 필요하지 않은 애플리케이션에 Geo-Disaster Recovery를 사용하는 것이 좋습니다.
지역 내 복제와 메타데이터 지리적 재해 복구 모두 보조 리전을 새로운 기본 리전으로 승격하거나 장애 조치를 수동으로 시작해야 합니다. 주 지역이 다운된 경우에도 Microsoft는 자동으로 장애 복구 또는 프로모션을 수행하지 않습니다.
기본 및 표준 계층의 네임스페이스에는 네이티브 다중 지역 기능이 포함되지 않지만 지역 간에 여러 네임스페이스를 사용하여 애플리케이션 수준 복제 패턴을 구현할 수 있습니다. 자세한 내용은 아래 의 복원력 섹션에 대한 사용자 지정 다중 지역 솔루션을 참조하세요.
Geo-Replication
프리미엄 계층은 지역에서 복제를 지원합니다. 이 기능은 네임스페이스에 대한 메타데이터(예: 엔터티, 구성 및 속성) 및 데이터(예: 큐 및 토픽의 메시지, 메시지 속성 및 상태)를 모두 복제합니다. 네임스페이스의 구성 및 데이터에 대한 복제 방법을 구성합니다. 이 기능을 사용하면 메시지가 다른 지역에서 계속 사용할 수 있으며 필요할 때 보조 지역으로 전환할 수 있습니다.
지역 중단에 대한 복원력이 필요하고 메시지 데이터 손실에 대한 허용 오차가 낮은 시나리오에는 Geo-Replication 사용합니다.
네임스페이스는 기본적으로 지역 간에 확장됩니다. 한 지역은 주 지역으로 사용되고 다른 지역은 보조 지역으로 사용됩니다. Azure 구독에 단일 네임스페이스가 표시됩니다.
언제든지 보조 지역을 주 지역으로 승격 할 수 있습니다. 보조 지역을 승격하면 Service Bus는 네임스페이스의 FQDN(정규화된 도메인 이름)을 선택한 보조 지역으로 다시 지정하고 이전 주 지역을 보조 지역으로 강등합니다. 계획된 승격을 수행할지 여부를 결정합니다. 즉, 데이터 복제가 완료될 때까지 기다리거나 강제 승격을 수행하여 데이터가 손실될 수 있습니다.
비고
Service Bus Geo-Replication 보조 지역을 주 지역으로 승격하고 나중에 주 지역을 보조 지역으로 강등하는 프로세스를 가장 잘 나타내 기 때문에 승격 이라는 용어를 사용합니다. 일반 프로세스를 설명하는 데 사용되는 장애 조치(failover )라는 용어도 표시될 수 있습니다.
이 섹션에서는 지역에서 복제의 중요한 측면을 요약합니다. 전체 설명서를 검토하여 작동 방식을 정확하게 이해합니다. 자세한 내용은 Service Bus 지역 복제를 참조하세요.
요구 사항
지역 지원: Service Bus를 주 지역 또는 보조 지역으로 지원하는 모든 Azure 지역을 선택할 수 있습니다. Azure 쌍을 이루는 지역을 사용할 필요가 없으므로 대기 시간, 규정 준수 또는 데이터 상주 요구 사항에 따라 보조 지역을 선택할 수 있습니다.
계층: 지역에서 복제를 사용하도록 설정하려면 네임스페이스가 프리미엄 계층을 사용해야 합니다.
메타데이터 지리적 재해 복구: 지역에서 복제와 지리적 재해 복구를 동시에 사용하도록 네임스페이스를 구성할 수 없습니다.
고려 사항
기능 제한 사항: 지역에서 복제를 사용하도록 설정하면 몇 가지 제한 사항이 있습니다. 자세한 내용은 Service Bus 지역 복제를 참조하세요.
프라이빗 엔드포인트: 프라이빗 엔드포인트를 사용하여 네임스페이스에 연결하는 경우 기본 및 보조 지역에서도 네트워킹을 구성해야 합니다. 자세한 내용은 Azure Event Hubs 설명서의 프라이빗 엔드포인트 를 참조하세요.
비용
지역 복제에 대한 가격 책정 작동 방식을 이해하려면 가격 책정을 참조하세요.
다중 지역 지원 구성
새 네임스페이스에서 Geo-Replication 사용하도록 설정합니다. 만드는 동안 네임스페이스에서 Geo-Replication 사용하도록 설정하려면 복제 모드 전환을 참조하세요.
메타데이터 지리적 재해 복구에서 지역에서 복제로 마이그레이션합니다.메타데이터 지리적 재해 복구에서 지역에서 복제로 전환할 수 있습니다.
복제 방법을 변경합니다. 동기 복제 모드와 비동기 복제 모드 간에 변경하려면 복제 모드 전환을 참조하세요.
Geo-Replication을 비활성화합니다. 보조 지역에 대한 Geo-Replication 사용하지 않도록 설정하려면 보조 지역 삭제를 참조하세요.
모든 지역이 정상인 경우의 동작
이 섹션에서는 지역 복제를 위해 Service Bus 네임스페이스가 구성되고 주 지역이 작동할 때 예상되는 작업에 대해 설명합니다.
지역 간 트래픽 라우팅: 클라이언트 애플리케이션은 네임스페이스에 대한 FQDN을 통해 연결되고 해당 트래픽은 주 지역으로 라우팅됩니다.
기본 지역만 정상적으로 작업하는 동안 클라이언트의 메시지를 적극적으로 처리합니다. 보조 지역은 복제된 메시지를 수신하지만, 그렇지 않으면 대기 모드에서 수동 상태로 유지됩니다.
지역 간 데이터 복제: 주 지역과 보조 지역 간의 데이터 복제 동작은 동기 복제 또는 비동기 복제를 사용하도록 복제 쌍을 구성하는지 여부에 따라 달라집니다.
동기: 메시지는 쓰기 작업이 완료되기 전에 보조 지역에 복제됩니다.
이 모드는 메시지 데이터가 기본 및 보조 지역에서 커밋되어야 하므로 안전하게 보호됩니다. 그러나 동기 복제는 들어오는 메시지에 대한 쓰기 대기 시간을 크게 늘립니다. 또한 보조 지역이 쓰기 작업을 수락할 수 있어야 하므로 보조 지역의 중단으로 인해 쓰기 작업이 실패합니다.
- 비동기: 메시지는 주 지역에 기록된 다음 쓰기 작업이 완료됩니다. 잠시 후 메시지를 보조 지역에 복제합니다.
이 모드는 쓰기 작업 중에 지역 간 복제 대기 시간이 없기 때문에 동기 복제보다 더 높은 쓰기 처리량을 제공합니다. 또한 비동기 복제 모드는 주 지역에서 쓰기 작업을 허용하면서 보조 지역의 손실을 허용할 수 있습니다. 그러나 주 지역에 중단이 있는 경우 보조 지역에 아직 복제되지 않은 모든 데이터를 사용할 수 없거나 손실될 수 있습니다.
비동기 복제를 구성하는 경우 복제에 허용되는 최대 지연 시간을 구성합니다. 언제든지 Azure Monitor 메트릭을 사용하여 현재 복제 지연 시간을 확인할 수 있습니다.
지정한 최대값을 초과하여 비동기 복제 지연 시간이 증가하면 주 지역이 들어오는 요청을 제한하기 시작하여 복제가 따라잡을 수 있도록 합니다. 이러한 상황을 방지하려면 지리적으로 그리 멀지 않은 보조 지역을 선택하고 용량이 처리량에 충분한지 확인하는 것이 중요합니다.
비동기 복제 모드를 선택하는 경우에도 일부 메타데이터 형식이 동기적으로 복제됩니다.
자세한 내용은 복제 모드를 참조하세요.
지역 중단 중 동작
이 섹션에서는 Geo-Replication Service Bus 네임스페이스가 구성되고 주 또는 보조 지역에서 중단이 발생할 때 예상되는 사항에 대해 설명합니다.
검색 및 응답: 네임스페이스의 보조 지역을 새 주 지역으로 승격할 시기를 결정할 책임이 있습니다. Microsoft는 지역 가동 중단이 있더라도 이 결정을 내리거나 프로세스를 시작하지 않습니다. 장애 조치 여부를 결정할 때, 승격 트리거의 권장 시나리오를 참고하여 고려할 것을 권장합니다.
보조 지역을 새 주 지역으로 승격하는 방법에 대한 자세한 내용은 승격 흐름을 참조하세요.
보조 지역을 승격하는 경우 계획된 승격 또는 강제 승격을 수행할지 여부를 선택합니다. 계획된 프로모션은 새 트래픽을 수락하기 전에 보조 지역이 동기화될 때까지 기다립니다. 이 방법은 데이터 손실을 제거하지만 가동 중지 시간이 발생합니다.
주 지역에서 중단이 발생하는 경우 일반적으로 강제 승격을 수행해야 합니다. 주 지역을 이용할 수 있고 다른 이유로 승격을 트리거하는 경우 계획된 승격을 선택할 수 있습니다.
- 알림: 지역이 다운된 경우 Microsoft는 자동으로 알리지 않습니다. 그러나 Azure Service Health 를 사용하여 지역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.
활성 요청: 이 동작은 주 지역 또는 보조 지역에서 지역 중단이 발생하는지 여부에 따라 달라집니다.
주 지역 중단: 주 지역을 사용할 수 없는 경우 모든 활성 요청이 종료됩니다. 클라이언트 애플리케이션은 승격이 완료된 후 작업을 다시 시도해야 합니다.
보조 지역 중단: 보조 지역의 중단으로 인해 다음과 같은 상황에서 활성 요청에 문제가 발생할 수 있습니다.
동기 복제 모드를 사용하는 경우, 어떤 보조 지역이라도 사용할 수 없으면 주 지역에서 쓰기 작업을 완료할 수 없습니다.
비동기 복제 모드를 사용하는 경우 복제 지연 시간이 구성한 최대값에 도달한 후 네임스페이스가 제한되고 새 메시지를 수락하지 않습니다.
주 지역의 네임스페이스를 계속 사용하려면 Geo-Replication 구성에서 보조 네임스페이스를 제거합니다.
예상 데이터 손실: 데이터 손실의 양은 수행하는 승격 유형(계획 또는 강제) 및 복제 모드(동기 또는 비동기)에 따라 달라집니다.
계획된 프로모션: 데이터 손실이 예상되지 않습니다. 그러나 지역 가동 중단 중에는 모든 기본 및 보조 지역을 사용할 수 있어야 하므로 계획된 승격이 불가능할 수 있습니다.
강제 승격, 동기 복제: 데이터 손실이 예상되지 않습니다.
강제 승격, 비동기 복제: 보조 지역에 복제되지 않은 최근 메시지와 아직 복제되지 않은 상태 변경에 대한 데이터 손실이 발생할 수 있습니다. 금액은 복제 지연에 따라 달라집니다. 현재 복제 지연을 확인하려면 Azure Monitor 메트릭을 사용합니다.
강제 승격을 수행하는 경우 주 지역을 사용할 수 있게 된 후에도 손실된 데이터를 복구할 수 없습니다.
예상 가동 중지 시간: 예상 가동 중지 시간은 계획된 승격 또는 강제 승격 수행 여부에 따라 달라집니다.
계획된 프로모션: 계획된 승격의 첫 번째 단계는 보조 지역에 데이터를 복제합니다. 이 프로세스는 일반적으로 빠르게 완료되지만 경우에 따라 복제 지연 시간이 최대로 걸릴 수 있습니다. 복제가 완료된 후 승격 프로세스는 일반적으로 약 5~10분이 걸립니다. DNS(도메인 이름 시스템) 서버가 항목을 업데이트하고 해당 레코드를 클라이언트에 완전히 복제하는 데 시간이 더 오래 걸릴 수 있습니다.
주 지역은 전체 승격 프로세스 중에 쓰기 작업을 허용하지 않습니다.
이 옵션은 모든 주 및 보조 지역을 사용할 수 있어야 하므로 지역 중단 중에는 불가능할 수 있습니다.
강제 승격: 강제 승격 중에 Service Bus는 데이터 복제가 완료될 때까지 기다리지 않고 즉시 승격을 시작합니다. 승격 프로세스는 일반적으로 약 5~10분이 걸립니다. DNS 항목이 클라이언트에서 완전히 복제되고 업데이트되는 데 시간이 더 오래 걸릴 수 있습니다.
주 지역은 전체 승격 프로세스 중에 쓰기 작업을 허용하지 않습니다.
트래픽 경로 변경: 승격이 완료되면 네임스페이스의 FQDN이 새 주 지역을 가리킵니다. 그러나 이 리디렉션은 DNS 서버가 네임스페이스 DNS 레코드의 TTL(Time-to-Live)을 적용하는 것을 포함하여 클라이언트의 DNS 레코드가 업데이트되는 빈도에 따라 달라집니다.
지역 복구
원래 주 지역이 복구된 후 네임스페이스를 원래 주 지역으로 반환하려면 동일한 지역 승격 프로세스를 따릅니다.
지역 중단 중에 강제 승격을 수행한 경우 주 지역을 사용할 수 있게 된 후에도 손실된 데이터를 복구할 수 없습니다.
지역 오류 테스트
지역에서 복제를 테스트하려면 일시적으로 보조 지역을 주 지역으로 승격하고 클라이언트 애플리케이션이 중단을 최소화하면서 지역 간에 전환할 수 있음을 확인합니다.
프로모션 기간을 모니터링하고 런북과 자동화가 올바르게 작동하는지 검증합니다. 테스트 후에는 원래 구성으로 장애 복구(failback)할 수 있습니다.
승격 프로세스 도중 및 이후에 발생할 수 있는 잠재적인 가동 중지 시간 및 데이터 손실을 이해합니다. 프로덕션 네임스페이스의 구성을 미러링하는 비프로덕션 환경에서 Geo-Replication 테스트합니다.
메타데이터 지리재해 복구
프리미엄 계층은 메타데이터와 함께 지구 재해 복구를 지원합니다. 이 기능은 지역의 치명적인 손실을 포함하여 재해 시나리오에서 복구를 향상시킵니다. Geo-Disaster Recovery는 네임스페이스의 구성 및 메타데이터만 복제합니다. 그러나 메시지 데이터는 복제하지 않습니다. 재해 복구를 지원하기 위해 이 기능은 다른 지역의 네임스페이스를 미리 구성하고 클라이언트의 메시지를 즉시 수락할 준비가 되도록 합니다. Geo-Disaster Recovery는 단방향 복구 솔루션으로 사용되며 이전 주 지역으로의 장애 복구를 지원하지 않습니다.
메타데이터 Geo-Disaster Recovery는 모든 메시지를 엄격하게 유지할 필요가 없고 재해 시나리오 중에 일부 데이터 손실을 허용할 수 있는 애플리케이션에 가장 적합합니다. 메타데이터 지리적 재해 복구는 데이터를 자체적으로 복제하는 애플리케이션이나 데이터 복제가 전혀 필요 없는 애플리케이션에도 적합할 수 있습니다. 예를 들어, 메시지가 나중에 썸네일로 변환되는 대형 이미지를 나타내는 경우를 생각해 보세요. 실패한 지역에서 일부 메시지를 잃어도 빠르게 다른 지역에서 새 메시지 처리를 다시 시작할 수 있다면, 나중에 메시지를 다시 구성하여 뒤처진 부분을 만회할 수 있다는 결정을 내릴 수 있습니다.
중요합니다
Geo-Disaster 복구를 사용하면 구성이 동일하지만 메시지 데이터를 복제하지 않는 작업의 연속성을 사용할 수 있습니다. 메시지 데이터를 복제해야 하는 경우 지역에서 복제를 사용하는 것이 좋습니다.
Geo-Disaster Recovery를 위한 메타데이터를 구성할 때, 클라이언트 애플리케이션이 연결하는 별칭을 만듭니다. 별칭은 기본적으로 모든 트래픽을 기본 네임스페이스로 전송하는 FQDN입니다.
주 지역이 실패하거나 다른 유형의 재해가 발생하는 경우 언제든지 주 지역에서 보조 지역으로 단일 단방향 장애 조치(failover) 이동을 수동으로 시작할 수 있습니다. 안전한 장애 조치(failover)를 수행하도록 선택할 수 있습니다. 이 장애 조치( failover)는 지역 가동 중단 중에는 이 옵션을 사용할 수 없지만 보조로 전환하기 전에 복제가 완료될 때까지 대기합니다. 장애 조치(failover)가 시작되면 거의 즉시 완료됩니다. 장애 조치 과정에서 지리적 재해 복구 별칭은 보조 네임스페이스를 가리키도록 변경되며, 기존 페어링은 제거됩니다.
이 섹션에서는 Geo-Disaster Recovery의 중요한 측면을 요약합니다. 전체 설명서를 검토하여 작동 방식을 정확하게 이해합니다. 자세한 내용은 Service Bus Geo-Disaster Recovery를 참조하세요.
요구 사항
지역 지원: Service Bus를 기본 또는 보조 네임스페이스로 지원하는 Azure 지역을 선택할 수 있습니다. Azure 쌍을 이루는 지역을 사용할 필요가 없으므로 대기 시간, 규정 준수 또는 데이터 상주 요구 사항에 따라 보조 지역을 선택할 수 있습니다.
계층: 메타데이터 Geo-Disaster Recovery를 사용하도록 설정하려면 두 네임스페이스 모두 프리미엄 계층을 사용해야 합니다.
분할: 분할된 네임스페이스를 분할되지 않은 네임스페이스와 페어링할 수 없습니다.
메타데이터 지리적 재해 복구: 지역에서 복제와 지리적 재해 복구를 동시에 사용하도록 네임스페이스를 구성할 수 없습니다.
고려 사항
기능 제한 사항: Geo-Disaster 복구를 사용하도록 설정하면 몇 가지 제한 사항이 있습니다. 자세한 내용은 고려해야 할 중요 사항 및 고려 사항을 참조하세요.
역할 할당: 주 네임스페이스의 엔터티에 대한 Microsoft Entra RBAC(역할 기반 액세스 제어) 할당은 보조 네임스페이스에 복제되지 않습니다. 보조 네임스페이스에서 수동으로 역할 할당을 만들어 액세스를 보호합니다.
애플리케이션 디자인: Geo-Disaster 복구에는 클라이언트 애플리케이션을 디자인할 때 특정 고려 사항이 필요합니다. 자세한 내용은 고려 사항참조하세요.
프라이빗 엔드포인트: 프라이빗 엔드포인트를 사용하여 네임스페이스에 연결하는 경우 주 지역과 보조 지역 모두에서 네트워킹을 구성합니다. 자세한 내용은 프라이빗 엔드포인트를 참조하세요.
표준에서 프리미엄으로 마이그레이션된 네임스페이스: 네임스페이스가 이전에 표준 계층에 있었고 프리미엄 계층으로 마이그레이션한 경우 별칭을 다르게 처리해야 합니다. 자세한 내용은 Service Bus Standard to Premium을 참조하세요.
비용
메타데이터 지리적 재해 복구를 사용하도록 설정하면 기본 네임스페이스와 보조 네임스페이스 모두에 대한 비용을 지불해야 합니다.
다중 지역 지원 구성
Geo-Disaster 복구를 위한 메타데이터 페어링을 생성합니다. 주 네임스페이스와 보조 네임스페이스 간에 재해 복구를 구성하려면 설치 및 장애 조치 흐름을 참조하세요.
메타데이터 Geo-Disaster Recovery를 비활성화합니다. 네임스페이스 간의 페어링을 중단하려면 설치 및 장애 조치 흐름을 참조하세요.
용량 계획 및 관리
다중 지역 배포를 계획할 때 한 지역이 실패할 경우 두 지역 모두 전체 부하를 처리할 수 있는 충분한 용량이 있는지 확인합니다. 보조 지역은 정상 작업 중에 수동 상태로 유지되지만 장애 조치(failover) 후 트래픽을 즉시 처리해야 합니다. 지연 없이 프로덕션 트래픽을 수신할 수 있도록 보조 네임스페이스 용량의 크기를 조정하는 방법을 계획합니다. 장애 조치(failover) 프로세스 중에 추가 가동 중지 시간을 허용할 수 있는 경우 장애 조치(failover) 중 또는 이후에 보조 네임스페이스 용량의 크기를 조정하도록 선택할 수 있습니다. 가동 중지 시간을 줄이려면 프로덕션 부하를 받을 준비가 되도록 보조 네임스페이스에 용량을 미리 프로비전합니다.
모든 지역이 정상인 경우의 동작
이 섹션에서는 service Bus 네임스페이스가 Geo-Disaster Recovery에 대해 구성되고 주 지역이 작동할 때 예상되는 작업에 대해 설명합니다.
지역 간 트래픽 라우팅: 클라이언트 애플리케이션은 네임스페이스의 지리적 재해 복구 별칭을 통해 연결되며, 트래픽은 기본 리전의 기본 네임스페이스로 라우팅됩니다.
기본 네임스페이스만 정상 작업 중에 클라이언트의 메시지를 적극적으로 처리합니다. 보조 네임스페이스는 대기 모드에서 수동 상태로 유지되며 데이터에 액세스하는 모든 요청이 실패합니다.
지역 간 데이터 복제: 구성 메타데이터만 네임스페이스 간에 복제됩니다. 구성 복제는 지속적으로 비동기적으로 발생합니다.
모든 메시지 데이터는 기본 네임스페이스에만 남아 있으며 보조 네임스페이스에 복제되지 않습니다.
지역 중단 중 동작
이 섹션에서는 Service Bus 네임스페이스가 Geo-Disaster Recovery에 대해 구성되고 주 지역에 중단이 발생할 때 예상되는 작업에 대해 설명합니다.
탐지 및 대응: 지역 상태를 모니터링하고 장애 조치(failover)를 수동으로 시작해야 합니다. Microsoft는 주 지역이 다운된 경우에도 장애 조치(failover)를 수행하거나 보조 지역을 자동으로 승격하지 않습니다.
장애 조치(failover)를 시작하는 방법에 대한 자세한 내용은 장애 조치 흐름을 참조하세요.
장애 조치(failover)를 시작할 때 안전한 장애 조치(failover ) 또는 표준(강제 또는 수동 장애 조치)을 수행할지 여부를 선택합니다. 안전한 장애 조치는 장애 조치가 시작되기 전에 보조 리전으로의 복제가 완료될 때까지 대기합니다. 이 방법은 메타데이터 손실을 줄이지만 가동 중지 시간이 발생합니다. 안전한 장애 조치(failover)를 수행하려면 네임스페이스가 동일한 Azure 구독에 있어야 합니다.
주 지역에 장애가 발생하면 일반적으로 강제 장애 조치(failover)를 수행해야 합니다. 기본 리전이 사용 가능한 상태에서 다른 이유로 장애 조치를 실행해야 하는 경우, 계획된 장애 조치를 선택할 수 있습니다.
장애 조치(failover)는 단방향 작업이므로 나중에 Geo-Disaster 복구 페어링을 다시 설정해야 합니다. 자세한 내용은 지역 복구를 참조하세요.
- 알림: 지역이 다운된 경우 Microsoft는 자동으로 알리지 않습니다. 그러나 Azure Service Health 를 사용하여 지역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.
활성 요청: 진행 중인 활성 요청은 장애 조치(failover)가 시작되면 종료됩니다. 클라이언트 애플리케이션은 장애 조치(failover)가 완료된 후 작업을 다시 시도해야 합니다.
예상 데이터 손실:
메타데이터: 구성 및 메타데이터는 일반적으로 보조 네임스페이스에 복제됩니다. 그러나 메타데이터 복제는 비동기적으로 발생하므로 최근 변경 내용, 특히 복잡한 변경 내용이 복제되지 않을 수 있습니다. 클라이언트가 액세스하기 전에 보조 네임스페이스의 구성을 확인합니다.
메시지 데이터: 메시지 데이터는 지역 간에 복제되지 않습니다. 주 지역이 중단되면 주 네임스페이스의 메시지를 사용할 수 없게 됩니다.
치명적인 재해로 인해 주 지역의 총 손실이 발생하지 않는 한 메시지는 영구적으로 손실되지 않습니다. 지역이 복구되면 나중에 주 네임스페이스에서 메시지를 검색할 수 있습니다.
예상 가동 중지 시간: 장애 조치 절차는 일반적으로 5~10분 내에 완료됩니다. 클라이언트가 DNS 항목을 완전히 복제하고 업데이트하는 데 시간이 더 오래 걸릴 수 있습니다.
트래픽 경로 변경: Geo-Disaster 복구 별칭을 사용하여 네임스페이스에 연결하는 클라이언트는 장애 조치(failover) 후 자동으로 보조 네임스페이스로 리디렉션됩니다. 그러나 이 리디렉션은 네임스페이스 DNS 레코드의 TTL을 적용하는 DNS 서버와 업데이트된 DNS 레코드를 수신하는 클라이언트에 따라 달라집니다.
지역 복구
원래 주 지역이 복구된 후에는 수동으로 페어링을 다시 설정하고 선택적으로 장애 복구를 수행해야 합니다. 새로운 지형 재해 복구 페어링을 생성하여 복구된 지역을 보조로 설정한 다음, 원래 지역으로 복귀하려면 다시 장애 조치(failover)를 수행하십시오. 이 프로세스에는 임시 주 복제본으로 전송된 메시지의 잠재적인 데이터 손실이 포함됩니다.
재해로 인해 주 지역의 모든 영역이 손실되는 경우 데이터를 복구할 수 없을 수 있습니다. 다른 시나리오에서는 장애 조치(failover)를 복구할 수 있기 전부터 메시지 데이터가 기본 네임스페이스에 남아 있습니다. 액세스를 복원한 후 이전 주 네임스페이스에서 기록 메시지를 가져올 수 있습니다. 이러한 메시지를 받고 처리하도록 애플리케이션을 구성할 책임이 있습니다. Microsoft는 당신의 보조 지역에 그것들을 자동으로 복원하지 않습니다.
지역 오류 테스트
응답 및 재해 복구 프로세스를 테스트하려면 유지 관리 기간 동안 계획된 장애 조치(failover)를 수행합니다. 기본 네임스페이스에서 보조 네임스페이스로 장애 조치(failover)를 시작하고 애플리케이션이 새 주 네임스페이스의 메시지를 연결하고 처리할 수 있는지 확인합니다.
장애 조치(failover) 기간을 모니터링하고 Runbook과 자동화가 올바르게 작동하는지 유효성을 검사합니다. 테스트 후에는 원래 구성으로 장애 복구(failback)할 수 있습니다.
장애 조치(failover) 프로세스 도중 및 이후에 발생할 수 있는 잠재적 가동 중지 시간 및 데이터 손실을 이해합니다. 프로덕션 네임스페이스의 구성을 미러링하는 비프로덕션 환경에서 메타데이터 Geo-Disaster Recovery를 테스트합니다.
복원력을 위한 사용자 지정 다중 지역 솔루션
Geo-Replication 및 메타데이터 Geo-Disaster Recovery는 지역 중단 및 기타 문제에 대한 복원력을 제공하며 대부분의 워크로드에 적합합니다. 그러나 다음과 같은 상황에서 요구 사항에 맞지 않을 수 있습니다.
- 사용자 지정 복제 또는 여러 활성 지역을 동시에 유지 관리하기 위한 요구 사항이 있습니다.
- 이러한 기능을 지원하지 않는 Service Bus 계층을 사용합니다.
Service Bus에서 다양한 유형의 다중 지역 지원을 달성하기 위한 다양한 디자인 패턴이 있습니다. 대부분의 패턴에서는 여러 네임스페이스를 배포하고 네임스페이스를 적절하게 사용하도록 애플리케이션을 구성해야 합니다. 자세한 내용은 다음 문서를 참조하세요.
서비스 유지 관리에 대한 복원력
Service Bus는 정기적인 유지 관리를 수행합니다. 계획된 유지 관리 중에 네임스페이스는 최신 업데이트를 포함하는 중복 노드로 이동됩니다. 이 이동이 발생하면 클라이언트 SDK는 네임스페이스에서 연결이 끊어지고 자동으로 다시 연결됩니다. 일반적으로 업그레이드는 30초 이내에 수행됩니다. 유지 관리 기간 동안 발생하는 일시적인 네트워크 연결 끊김에 대해 애플리케이션을 준비하는 것이 중요합니다.
자세한 내용은 Azure Service Bus에 대한 Azure 유지 관리 이벤트에 대한 지침을 참조하세요.
백업 및 복원
Service Bus는 데이터에 대한 장기 스토리지 위치로 설계되지 않았습니다. 일반적으로 데이터는 짧은 시간 동안 토픽 또는 큐에 저장되고, 처리되거나 다른 데이터 스토리지 시스템으로 유지되며, 이때 삭제됩니다. 이 디자인으로 인해 Service Bus는 메시지 데이터의 복제본을 자동으로 유지 관리하지만 메시지 데이터에 대한 백업 및 복원 기능을 제공하지는 않습니다.
장기 메시지 보존이 필요한 시나리오의 경우 Azure Storage 또는 기타 지속성 스토리지 서비스에 애플리케이션 수준 보관을 구현하는 것이 좋습니다.
서비스 수준 약정
Azure 서비스의 SLA(서비스 수준 계약)는 각 서비스의 예상 가용성과 해당 가용성 예상 결과치를 달성하기 위해 솔루션이 충족해야 하는 조건을 설명합니다. 자세한 내용은 온라인 서비스 SLA를 참조하세요.
Service Bus는 모든 네임스페이스에 대해 SLA를 제공합니다. 네임스페이스가 다음 조건을 모두 충족하면 가용성 SLA가 더 높습니다.
- 프리미엄 계층을 사용합니다.
- 가용성 영역이 있는 지역에 있습니다.
- 분할을 사용합니다.