Service Bus 프리미엄 메시징 계층
큐 및 토픽과 같은 엔터티를 포함하는 Service Bus 메시징은 클라우드 규모로 엔터프라이즈 메시징 기능을 풍부한 게시-구독 의미 체계와 결합합니다. Service Bus 메시징은 정교한 여러 클라우드 솔루션의 통신 백본으로 사용됩니다.
Service Bus 메시징의 프리미엄 계층은 중요 업무용 애플리케이션에 대한 확장성, 성능 및 가용성에 관한 일반적인 고객의 요청을 해결합니다. 프로덕션 시나리오의 경우 프리미엄 계층을 사용하는 것이 좋습니다. 기능 집합은 거의 동일하지만 Service Bus 메시징의 표준 및 프리미엄 계층은 서로 다른 사용 사례를 지원하도록 고안되었습니다.
다음 테이블에는 차이가 자세히 설명되어 있습니다.
기준 | Premium | Standard |
---|---|---|
처리량 | 높은 처리량 | 가변 처리량 |
성능 | 예측 가능한 성능 | 가변 대기 시간 |
가격 책정 | 고정된 가격 책정 | 종량제 가변 가격 |
확장 | 작업을 확장 및 축소하는 기능 | 해당 없음 |
메시지 크기 | 최대 100MB의 메시지 크기. 자세한 내용은 대용량 메시지 지원을 참조하세요. | 최대 256KB의 메시지 크기 |
Service Bus 프리미엄 메시지는 각 고객의 워크로드가 따로 실행되도록 CPU 및 메모리 수준에서 리소스 격리를 제공합니다. 이 리소스 컨테이너를 메시징 단위라고 합니다. 각 프리미엄 네임스페이스에는 하나 이상의 메시징 단위가 할당됩니다. 각 Service Bus 프리미엄 네임스페이스에 대해 1, 2, 4, 8 또는 16 메시징 단위를 구입할 수 있습니다. 단일 워크로드 또는 엔터티는 여러 메시징 단위에 걸쳐 있을 수 있으며 메시징 단위 수는 마음대로 변경할 수 있습니다. 그 결과, Service Bus 기반 솔루션에 대해 예측 가능하고 반복 가능한 성능이 구현됩니다.
이로 인해 예측 가능성 및 가용성도 높아질 뿐 아니라 속도도 더 빨라집니다. 프리미엄 메시징을 사용할 경우 표준 계층의 경우보다 최고 성능이 훨씬 더 빠릅니다.
프리미엄 메시징의 기술적 차이
다음 섹션에서는 프리미엄 및 표준 메시지 계층 간의 몇 가지 차이점을 설명합니다.
Express 엔터티
프리미엄 메시징은 격리된 런타임 환경에서 실행되므로 Express 엔터티는 프리미엄 네임스페이스에서 지원되지 않습니다. Express 엔터티는 메시지를 영구 저장소에 쓰기 전에 일시적으로 메모리에 보관합니다. 표준 메시징에서 실행되는 코드가 있고 이를 프리미엄 계층으로 이식하려는 경우, Express 엔터티 기능을 사용하지 않도록 설정해야 합니다.
프리미엄 메시징 자원 배정 현황
일반적으로 엔터티에 대한 모든 작업으로 인해 CPU 및 메모리 사용량이 발생할 수 있습니다. 다음은 그 중 몇 가지 작업입니다.
- 큐, 토픽 및 구독에 대한 CRUD(만들기, 검색, 업데이트 및 삭제) 작업과 같은 관리 작업.
- 런타임 작업(메시지 보내기 및 받기)
- 작업 및 경고 모니터링
추가 CPU 및 메모리 사용량은 추가로 가격이 책정되지 않습니다. 프리미엄 메시징 계층의 경우, 메시지 단위에 대한 단일 가격이 적용됩니다.
다음과 같은 이유로 CPU 및 메모리 사용량이 추적되고 표시됩니다.
- 시스템 내부에 투명성 제공
- 구매한 리소스의 용량 파악
- 스케일 업/다운을 결정하는 데 도움이 되는 용량 계획
필요한 메시징 단위는 몇 개입니까?
Azure Service Bus 프리미엄 네임스페이스를 프로비전할 때 메시징 단위의 수를 지정합니다. 이러한 메시징 단위는 네임스페이스에 할당된 전용 리소스입니다. 네임스페이스에서 분할을 사용하도록 설정하면 메시징 단위는 모든 파티션에 걸쳐 균일하게 분산됩니다.
Service Bus 프리미엄 네임스페이스에 할당된 메시징 단위의 수는 워크로드의 변경(증가 또는 감소)을 고려하여 동적으로 조정할 수 있습니다.
아키텍처의 메시징 단위 수를 결정할 때 고려할 요인이 몇 가지 있습니다.
- 네임스페이스에 할당된 1개 또는 2개의 메시징 단위 또는 파티션당 1개의 메시지 단위로 시작합니다.
- 네임스페이스에 대한 리소스 사용 현황 메트릭 내에서 CPU 사용 현황 메트릭을 연구합니다.
- CPU 사용량이 20% 미만이면 네임스페이스에 할당된 메시징 단위 수를 축소할 수도 있습니다.
- CPU 사용량이 70% 이상인 경우 네임스페이스에 할당된 메시징 단위 수를 스케일 업할 수 있습니다.
자동으로 크기를 조정(메시징 단위 증가 또는 감소)하도록 Service Bus 네임스페이스를 구성하는 방법을 알아보려면 메시징 단위 자동 업데이트를 참조하세요.
참고 항목
네임스페이스에 할당된 리소스의 크기 조정은 선점형이거나 반응형일 수 있습니다.
선점형: 추가 워크로드가 예상되는 경우(계절성 또는 추세로 인해) 워크로드가 발생하기 전에 네임스페이스에 더 많은 메시징 단위를 할당할 수 있습니다.
반응형: 리소스 사용 현황 메트릭을 연구하여 추가 워크로드를 식별하면 증가하는 수요를 반영하기 위해 네임스페이스에 추가 리소스를 할당할 수 있습니다.
Service Bus의 청구 측정 단위는 시간당입니다. 스케일 업의 경우 사용된 시간에 대한 추가 리소스에 대해서만 비용을 지불합니다.
프리미엄 메시징 시작
프리미엄 메시징 시작은 간단하며 그 프로세스는 표준 메시징의 프로세스와 비슷합니다. 먼저 Azure Portal에서 네임스페이스를 만듭니다. 가격 책정 계층에서 프리미엄을 선택했는지 확인합니다. 전체 가격 책정 세부 정보 보기를 선택하여 각 계층에 대해 자세히 알아봅니다.
Azure Resource Manager 템플릿을 사용하여 프리미엄 네임스페이스를 만들 수도 있습니다.
대용량 메시지 지원
Azure Service Bus 프리미엄 계층 네임스페이스는 최대 100MB의 대용량 메시지 페이로드를 전송하는 기능을 지원합니다. 이 기능은 다른 엔터프라이즈 메시징 브로커에서 더 큰 용량의 메시지 페이로드를 사용했다가 Azure Service Bus로 원활하게 마이그레이션하려는 레거시 워크로드를 주된 대상으로 합니다.
Azure Service Bus에서 대용량 메시지를 보낼 때 고려할 사항은 다음과 같습니다.
- Azure Service Bus 프리미엄 계층 네임스페이스에서만 지원됩니다.
- AMQP(고급 메시지 큐 프로토콜) 프로토콜을 사용하는 경우에만 지원됩니다. SBMP 또는 HTTP 프로토콜을 사용하는 경우에는 지원되지 않으며, 프리미엄 계층에서 SBMP 및 HTTP 프로토콜의 최대 메시지 크기는 1MB입니다.
- JMS(Java Message Service) 2.0 클라이언트 SDK 및 기타 언어 클라이언트 SDK를 사용하는 경우 지원됩니다.
- 대용량 메시지를 보내면 처리량이 줄어들고 대기 시간이 길어집니다.
- 100MB의 메시지 페이로드가 지원되지만, Service Bus 네임스페이스의 안정적인 성능을 보장하려면 메시지 페이로드를 가능한 한 작게 유지하는 것이 좋습니다.
- 최대 메시지 크기는 큐 또는 토픽으로 전송된 메시지에만 적용됩니다. 수신 작업에는 크기 제한이 적용되지 않습니다. 지정된 큐(또는 토픽)에 대한 최대 메시지 크기를 업데이트할 수 있습니다.
- 일괄 처리는 지원되지 않습니다.
2026년 9월 30일에 Azure Service Bus에 대한 SBMP 프로토콜 지원이 사용 중지되므로 2026년 9월 30일 이후에는 더 이상 이 프로토콜을 사용할 수 없습니다. 해당 날짜 이전에 중요한 보안 업데이트와 개선된 기능을 제공하는 AMQP 프로토콜을 사용하여 최신 Azure Service Bus SDK 라이브러리로 마이그레이션하세요.
자세한 내용은 사용 중지 공지 지원을 참조하세요.
새 큐(또는 토픽)에 대한 대용량 메시지 지원 사용
대용량 메시지 지원을 사용하도록 설정하려면 다음 이미지와 같이 새 큐(또는 토픽)를 만들 때 최대 메시지 크기를 설정합니다.
기존 큐(또는 토픽)에 대한 대용량 메시지 지원 사용
또한 다음 이미지와 같이 특정 큐(또는 토픽)의 개요에서 최대 메시지 크기를 업데이트하여 기존 큐(또는 토픽)에 대한 대용량 메시지 지원을 사용하도록 설정할 수 있습니다.
네트워크 보안
다음 네트워크 보안 기능은 프리미엄 계층에서만 사용할 수 있습니다. 자세한 내용은 네트워크 보안을 참조하세요.
Azure Portal을 사용하여 IP 방화벽을 구성하는 것은 프리미엄 계층 네임스페이스에서만 사용할 수 있습니다. 그러나 Azure Resource Manager 템플릿, CLI, PowerShell 또는 REST API를 사용하여 다른 계층에 대한 IP 방화벽 규칙을 구성할 수 있습니다. 자세한 내용은 IP 방화벽 구성을 참조하세요.
미사용 데이터의 암호화
저장소 하위 시스템에 저장된 모든 데이터는 Microsoft에서 관리하는 키를 사용하여 암호화됩니다. 사용자 고유의 키(고객 관리형 키라고도 함)를 사용하는 경우 데이터는 여전히 Microsoft 관리형 키를 사용하여 암호화되지만, 추가로 Microsoft 관리형 키는 고객 관리형 키를 사용하여 암호화됩니다. 이 기능을 사용하면 Microsoft 관리형 키를 암호화하는 데 사용되는 고객 관리형 키의 액세스를 만들고, 회전시키고, 사용하지 않도록 설정하며, 철회할 수 있습니다. 고객 관리형 키 기능을 사용하도록 설정하는 것은 네임스페이스에서 일회성 설정 프로세스입니다. 자세한 내용은 Azure Service Bus 미사용 데이터 암호화를 참조하세요.
분할
분할과 관련하여 표준 계층과 프리미엄 계층 간에는 몇 가지 차이점이 있습니다.
- 분할은 기본 또는 표준 SKU의 모든 큐 및 토픽에 대해 엔터티를 만들 때 사용할 수 있습니다. 네임스페이스는 분할된 엔터티와 분할되지 않은 엔터티를 모두 가질 수 있습니다. 분할은 프리미엄 계층에 대한 네임스페이스를 만들 때 사용할 수 있으며, 해당 네임스페이스의 모든 큐 및 항목이 분할됩니다. 프리미엄 네임스페이스에서 이전에 마이그레이션된 분할된 엔터티는 예상대로 계속 작동합니다.
- 기본 또는 표준 SKU에서 분할을 사용하도록 설정하면 Service Bus는 16개의 파티션을 만듭니다. 프리미엄 계층에서 분할을 사용하도록 설정하면 네임스페이스를 만드는 동안 파티션의 수가 지정됩니다.
자세한 내용은 Service Bus에서 분할을 참조하세요.
지역 재해 및 복구
Azure Service Bus는 개별 머신의 치명적인 오류에 대한 위험을 분산하거나 데이터 센터 내의 여러 오류 도메인에 걸쳐 있는 클러스터 간에 전체 랙을 분산하고, 그러한 오류가 발생하는 경우 서비스가 보장되는 서비스 수준 내에서 일반적으로 눈에 띄게 중단되지 않고 계속 작동하도록 투명한 오류 감지 및 장애 조치(failover) 메커니즘을 구현합니다. 프리미엄 네임스페이스에는 둘 이상의 메시징 단위가 있을 수 있으며 이러한 메시징 단위는 데이터 센터 내의 여러 오류 도메인에 분산되어 모든 활성 Service Bus 클러스터 모델을 지원합니다.
프리미엄 계층 네임스페이스의 경우 중단 위험은 물리적으로 분리된 세 개의 시설 가용성 영역에 추가로 분산되며 데이터 센터의 전체적이고 치명적인 손실에 즉각적으로 대처하기에 충분한 용량이 서비스에 예약되어 있습니다. 가용성 영역 지원과 함께 오류 도메인 내의 모든 활성 Azure Service Bus 클러스터 모델은 심각한 하드웨어 오류와 전체 데이터 센터 시설의 치명적인 손실에 대한 복원력 측면에서 모든 온-프레미스 메시지 broker 제품보다 우수합니다. 그러나 이러한 측정값이 충분히 방어될 수 없는 광범위한 물리적 소멸이 있는 경우에도 매우 많은 상황이 발생할 수 있습니다.
Service Bus Geo-DR(지리적 재해 복구) 기능은 애플리케이션 구성을 변경하지 않고도 이러한 규모의 재해로부터 더 쉽게 복구하고 실패한 Azure 지역을 영원히 포기하도록 설계되었습니다. Azure 지역 중단에 일반적으로 여러 서비스가 포함되며, 이 기능은 주로 복합 애플리케이션 구성의 무결성 유지 지원을 목표로 합니다. 이 기능은 Service Bus 프리미엄 계층에 대해 전역적으로 사용할 수 있습니다.
지리적 재해 복구 기능을 사용하면 네임스페이스(엔티티, 구성, 속성)의 전체 구성이 기본 네임스페이스에서 쌍을 이루는 보조 네임스페이스로 지속적으로 복제되고, 언제든지 기본 네임스페이스에서 보조 네임스페이스로 한 번만 장애 조치(failover) 이동을 시작할 수 있습니다. 장애 조치(failover) 이동은 네임스페이스에 대해 선택한 별칭 이름을 보조 네임스페이스로 다시 지정한 다음, 쌍을 끊습니다. 장애 조치가 시작된 후에는 거의 즉시 이루어집니다.
자세한 내용은 Azure Service Bus 지역 재해 복구를 참조하세요.
지역에서 복제
지역 복제 기능은 Azure Service Bus 애플리케이션을 중단 및 재해로부터 보호하는 옵션 중 하나이며 메타데이터(엔터티, 구성, 속성)와 데이터(메시지 데이터 및 메시지 속성/상태 변경) 모두에 대한 복제를 제공하는 반면, 이전 섹션에서 설명한 Geo-DR 기능은 메타데이터만 복제합니다.
지역 복제 기능은 네임스페이스의 메타데이터 및 데이터가 주 지역에서 하나 이상의 보조 지역으로 지속적으로 복제되도록 보장합니다.
- 큐, 항목, 구독, 필터.
- 엔터티에 상주하는 데이터.
- 모든 상태 변경 사항 및 속성 변경 사항은 네임스페이스 내의 메시지에 대해 실행됩니다.
- 네임스페이스를 구성합니다.
이 기능을 사용하면 언제든지 보조 지역을 기본 지역으로 승격할 수 있습니다. 보조 지역을 승격하면 네임스페이스의 이름이 선택한 보조 지역으로 다시 지정되고 기본 지역과 보조 지역 간에 역할이 전환됩니다. 승격은 일단 시작되면 거의 즉시 진행됩니다.
JMS(Java 메시지 서비스) 지원
프리미엄 계층은 JMS 1.1 및 JMS 2.0을 지원합니다. 자세한 내용은 Azure Service Bus Premium에서 JMS 2.0을 사용하는 방법을 참조하세요.
표준 계층은 큐에 초점을 맞춘 JMS 1.1 하위 집합만 지원합니다. 자세한 내용은 Azure Service Bus 표준에서 Java Message Service 1.1 사용을 참조하세요.
다음 단계
다음 문서를 참조하세요. 메시징 단위를 자동으로 업데이트합니다.