Share via


Service Bus 및 안정성

Azure Service Bus에 사용되는 메시지 큐와 게시-구독 토픽이 있는 완전 관리형 엔터프라이즈 메시지 브로커입니다. 이 서비스는 소비하는 주체에서 메시지를 받을 준비가 될 때까지 메시지를 broker(예: queue)에 저장합니다.

이점은 다음과 같습니다.

  • 경합하는 작업자 간에 부하를 분산합니다.
  • 서비스 및 애플리케이션 경계에서 데이터 및 제어를 안전하게 라우팅하고 전송합니다.
  • 높은 수준의 안정성이 필요한 트랜잭션 작업을 조정합니다.

Service Bus 사용에 대한 자세한 내용은 Azure Service Bus 메시징을 참조하세요. 온-프레미스 및 클라우드 환경에서 애플리케이션 및 서비스를 연결하는 메시징을 설정하는 방법에 대해 알아봅니다.

Service Bus가 안정적인 워크로드에 어떻게 기여하는지 알아보려면 다음 토픽을 참조하세요.

다음 섹션은 Azure Service Bus 및 안정성과 관련이 있습니다.

  • 디자인 고려 사항
  • 구성 검사 목록
  • 권장 구성 옵션
  • 원본 아티팩트

디자인 고려 사항

Azure Service Bus 가동 시간 SLA를 사용하여 안정성을 최대화합니다. 올바르게 구성된 애플리케이션은 메시지를 보내거나 받거나, 배포된 큐 또는 토픽에서 다른 작업을 수행할 수 있습니다. 자세한 내용은 Service Bus SLA를 참조하세요.

다른 디자인 고려 사항은 다음과 같습니다.

Service Bus 프리미엄 및 표준 메시징 계층에 대한 설명서 외에도 다음 기능은 Premium SKU(Stock Keeping Unit)에서만 사용할 수 있습니다.

지역 재해 복구 및 가용성 영역에서 Service Bus를 배포할 때 SLO(서비스 수준 운영)는 크게 증가하지만 가동 시간 SLA는 변하지 않습니다.

검사 목록

안정성을 염두에 두고 Azure Service Bus를 구성했나요?

  • Azure Service Bus 프리미엄 계층 이점을 평가합니다.
  • Service Bus 메시징 예외가 제대로 처리되었는지 확인합니다.
  • Service Bus를 AMQP(Advanced Message Queuing Protocol)와 연결하고, 가능하다면 서비스 엔드포인트 또는 프라이빗 엔드포인트를 사용합니다.
  • Service Bus 메시징을 사용한 성능 향상의 모범 사례를 검토하세요.
  • 발신자 및 수신자 쪽에서 지역 복제를 구현하여 중단 및 재해로부터 보호합니다.
  • 지역 재해를 구성합니다.
  • 큐 및 토픽이 포함된 중요 업무용 메시지가 필요한 경우 지리적 재해 복구에 Service Bus 프리미엄을 사용하는 것이 좋습니다.
  • Service Bus 네임스페이스에서 영역 중복성을 구성합니다(프리미엄 계층에서만 가능).
  • Service Bus 네임스페이스에 대한 고가용성을 구현합니다.
  • 관련 메시지가 보장된 순서대로 배달되도록 확인합니다.
  • JMS API를 통해 다양한 JMS(Java Messaging Service) 기능을 평가합니다.
  • .NET Nuget 패키지를 사용하여 Service Bus 메시지 엔터티와 통신합니다.
  • 메시지를 보내거나 받을 때 일시적인 오류 처리에 대한 복원력을 구현합니다.
  • 메시징 단위의 자동 크기 조정을 구현합니다.

구성 권장 사항

Azure Service Bus를 구성할 때 안정성을 최적화하려면 다음 권장 사항을 고려하세요.

권장 Description
Azure Service Bus 프리미엄 계층 이점을 평가합니다. 플랫폼에서 지원하는 중단 및 재해 방지를 활용하려면 Service Bus 프리미엄 계층으로 마이그레이션하는 것이 좋습니다.
Service Bus를 AMQP 프로토콜과 연결하고, 가능한 경우 서비스 엔드포인트 또는 프라이빗 엔드포인트를 사용합니다. 이 권장 사항은 Azure 백본에서 트래픽을 유지합니다. 참고: Microsoft.Azure.ServiceBusWindows.Azure.ServiceBus 네임스페이스의 기본 연결 프로토콜은 AMQP입니다.
발신자 및 수신자 쪽에서 지역 복제를 구현하여 중단 및 재해로부터 보호합니다. 표준 계층은 발신자 및 수신자 쪽 지역 중복의 구현만 지원합니다. Azure 지역의 중단 또는 재해로 인해 솔루션의 가동 중지 시간이 발생할 수 있습니다.
지역 재해를 구성합니다. - 활성-활성
- 활성/수동
- 쌍을 이루는 네임스페이스(활성/수동)
- 참고: 보조 지역은 가급적이면 Azure 쌍을 이루는 지역인 것이 좋습니다.
큐 및 토픽이 포함된 중요 업무용 메시지가 필요한 경우 지리적 재해 복구에 Service Bus 프리미엄을 사용하는 것이 좋습니다. 패턴 선택은 비즈니스 요구 사항 및 RTO(복구 시간 목표)에 따라 달라집니다.
Service Bus 네임스페이스에서 영역 중복성을 구성합니다(프리미엄 계층에서만 가능). 영역 중복에는 메시지 저장소 복사본 3개가 포함됩니다. 한 영역은 기본 메시지 저장소로 할당되고 다른 영역은 보조 영역으로 할당됩니다. 주 영역을 사용할 수 없게 되면 인식 가능한 가동 중지 시간 없이 보조 영역이 주 영역으로 승격됩니다. 가용성 영역은 새 지역이 정기적으로 추가되는 Azure 지역의 하위 집합에서 사용할 수 있습니다.
Service Bus 네임스페이스에 대한 고가용성을 구현합니다. 프리미엄 계층은 네임스페이스 수준에서 지리적 재해 복구 및 복제를 지원합니다. 이 수준에서 프리미엄 계층은 기본 및 보조 재해 복구 네임스페이스를 사용하여 메타데이터 재해 복구를 위한 고가용성을 제공합니다.
관련 메시지가 보장된 순서대로 배달되도록 확인합니다. 관련 메시지가 메시지 엔터티의 동일한 파티션으로 전송되도록 각 메시지에서 파티션 키, 세션 ID 또는 메시지 ID를 설정해야 하는 요구 사항에 유의하세요.
JMS API를 통해 다양한 JMS 기능을 평가합니다. JMS 2.0 API(및 SDK(소프트웨어 개발 키트))를 통해 제공되는 기능은 네이티브 SDK를 통해 제공되는 기능과 다릅니다. 예를 들어 Service Bus 세션은 JMS에서 사용할 수 없습니다.
메시지를 보내거나 받을 때 일시적인 오류 처리에 대한 복원력을 구현합니다. 처리량을 유지하고 메시지 손실을 방지하려면 송신 및 수신 작업에 적합한 일시적 장애 처리 및 오류 처리를 구현해야 합니다.
메시징 단위의 자동 크기 조정을 구현하여 워크로드에 사용할 수 있는 충분한 리소스가 있는지 확인합니다.

원본 아티팩트

  • 프라이빗 엔드포인트를 사용하지 않는 프리미엄 Service Bus 인스턴스를 식별하려면 다음 쿼리를 사용합니다.

    Resources
    | where
      type == 'microsoft.servicebus/namespaces'
    | where
      sku.tier == 'Premium'
      and isempty(properties.privateEndpointConnections)
    
  • 프리미엄 계층에 없는 Service Bus 인스턴스를 식별하려면 다음 쿼리를 사용합니다.

    Resources
    | where
      type == 'microsoft.servicebus/namespaces'
    | where
      sku.tier != 'Premium'
    
  • 영역 중복되지 않는 프리미엄 Service Bus 인스턴스를 식별하려면 다음 쿼리를 사용합니다.

    Resources
    | where
      type == 'microsoft.servicebus/namespaces'
    | where
      sku.tier == 'Premium'
      and properties.zoneRedundant == 'false'
    

다음 단계