애플리케이션 그룹을 사용하는 리소스 거버넌스
Azure Event Hubs를 사용하여 Event Hubs에 연결하는 클라이언트 애플리케이션의 이벤트 스트리밍 워크로드를 관리할 수 있습니다. 각 그룹이 클라이언트 애플리케이션의 컬렉션인 애플리케이션 그룹이라는 논리 그룹을 만든 다음, 애플리케이션 그룹(클라이언트 애플리케이션 그룹)에 대한 할당량 및 액세스 관리 정책을 적용할 수 있습니다.
참고 항목
애플리케이션 그룹은 프리미엄 및 전용 계층에서만 사용할 수 있습니다.
애플리케이션 그룹
애플리케이션 그룹은 Event Hubs 데이터 평면과 상호 작용하는 하나 이상 클라이언트 애플리케이션의 컬렉션입니다. 각 애플리케이션 그룹은 단일 Event Hubs 네임스페이스 또는 네임스페이스 내의 이벤트 허브(엔터티)로 범위를 지정할 수 있으며 클라이언트 애플리케이션의 보안 컨텍스트(SAS(공유 액세스 서명) 또는 Microsoft Entra 애플리케이션 ID)와 같은 고유하게 식별되는 조건을 사용해야 합니다.
Event Hubs는 현재 애플리케이션 그룹을 만들기 위한 보안 컨텍스트 사용을 지원합니다. 따라서 각 애플리케이션 그룹에는 고유한 SAS 정책 또는 연결된 Microsoft Entra 애플리케이션 ID가 있어야 합니다. 원하는 경우 이벤트 허브 수준에서 보안 컨텍스트를 사용하여 네임스페이스 내에서 특정 이벤트 허브가 있는 애플리케이션 그룹을 사용할 수 있습니다.
애플리케이션 그룹은 네임스페이스 수준에서 생성되는 논리적 엔터티입니다. 따라서 Event Hubs와 상호 작용하는 클라이언트 애플리케이션은 애플리케이션 그룹의 존재를 인식할 필요가 없습니다. Event Hubs는 식별 조건을 사용하여 모든 클라이언트 애플리케이션을 애플리케이션 그룹에 연결할 수 있습니다.
아래 그림과 같이 각 클라이언트 애플리케이션에서 사용하는 보안 컨텍스트에 따라 애플리케이션 그룹을 만들 수 있습니다. 따라서 애플리케이션 그룹은 동일한 보안 컨텍스트를 사용하여 여러 클라이언트 애플리케이션에 걸쳐 있을 수 있습니다.
애플리케이션 그룹은 소비자 그룹과 직접 연결되지 않습니다. 보안 컨텍스트 등의 애플리케이션 그룹 식별자에 따라 한 소비자 그룹에 하나 이상의 애플리케이션 그룹이 연결되어 있거나 하나의 애플리케이션 그룹이 여러 소비자 그룹에 걸쳐 있을 수 있습니다.
애플리케이션 그룹의 주요 특성은 다음과 같습니다.
매개 변수 | Description |
---|---|
name | 애플리케이션 그룹의 고유 이름입니다. |
clientAppGroupIdentifier | 애플리케이션 그룹을 고유하게 식별되는 조건(SAS 정책 또는 Microsoft Entra 애플리케이션 ID 등의 보안 컨텍스트)과 연결합니다. |
정책 | 클라이언트 애플리케이션과 Event Hubs 네임스페이스 간 이벤트 스트리밍을 제어하는 제한 정책과 같은 정책 목록 |
isEnabled | 애플리케이션 그룹의 클라이언트 애플리케이션이 Event Hubs 네임스페이스에 액세스할 수 있는지 여부를 결정합니다. |
애플리케이션 그룹 정책
각 애플리케이션 그룹에는 애플리케이션 그룹의 일부인 클라이언트 애플리케이션의 데이터 평면 액세스를 제어하는 정책이 0개 이상 포함될 수 있습니다. 현재 애플리케이션 그룹은 제한 정책을 지원합니다.
제한 정책
다양한 수신 및 송신 메트릭을 사용하여 제한 정책을 지정할 수 있습니다. 애플리케이션 그룹은 다음 메트릭을 사용하여 클라이언트 애플리케이션의 수신 또는 송신 워크로드를 제한하도록 지원합니다.
매개 변수 | 설명 |
---|---|
IncomingBytes | 초당 게시자 처리량(바이트)입니다. |
OutgoingBytes | 초당 소비자 처리량(바이트)입니다. |
IncomingMessages | 초당 게시된 이벤트 수입니다. |
OutgoingMessages | 초당 사용된 이벤트 수입니다. |
애플리케이션 그룹에 대한 정책이 적용되면 클라이언트 애플리케이션 워크로드는 느려지거나 서버 작업 중 예외가 발생할 수 있습니다.
제한 정책 - 임계값 제한
다음 표에는 제한 정책의 다양한 메트릭 ID에 대해 설정할 수 있는 최소 임계값 제한이 나와 있습니다.
메트릭 ID | 최소 제한 |
---|---|
IncomingByte | 1KB |
OutgoingByte | 1KB |
IncomingMessage | 1 |
Outgoing message | 1 |
참고 항목
제한 정책의 임계값에 설정된 제한은 Kafka 토픽 속성에 대해 설정된 값보다 우선합니다. 예를 들어, IncomingBytes
는 message.max.bytes
보다 우선순위가 더 높습니다.
애플리케이션 그룹 제한은 허용된 트래픽 시나리오(몇 분 간격)보다 지속적으로 더 높게 제한해야 합니다. 몇 초 동안 트래픽이 빠르게 급증하면 애플리케이션 그룹을 통해 제한되지 않을 수 있습니다. 제한의 유효성을 검사하려면 몇 분 동안 허용되는 처리량을 살펴보는 것이 좋습니다.
프로토콜 지원 및 오류 코드
애플리케이션 그룹은 AMQP, Kafka 및 HTTP 프로토콜을 통해 발생하는 제한 작업을 지원합니다. 다음 표는 애플리케이션 그룹에서 반환되는 예상 오류 코드를 제공합니다.
프로토콜 | 연산 | 오류 코드 | 오류 메시지 |
---|---|---|---|
AMQP | 보내기 | 50004 | SubCode:50013, 애플리케이션 그룹이 애플리케이션 그룹 ID 및 정책 이름으로 제한됨 |
HTTP | 보내기 | 503 | Subcode: 50013. 애플리케이션 그룹이 애플리케이션 그룹 ID 및 정책 이름으로 제한됨 |
Kafka | 보내기 | PolicyViolation | Broker: 정책 위반 |
프로토콜 수준의 제한으로 인해 수신 작업 중에는 오류 메시지가 지원되지 않습니다. 애플리케이션 그룹이 수신 작업을 제한하는 경우 소비자 쪽에서 메시지 소비가 느려집니다.
애플리케이션 그룹 사용 안 함
애플리케이션 그룹은 기본적으로 사용하도록 설정되며 이는 모든 클라이언트 애플리케이션이 애플리케이션 그룹 정책에 따라 이벤트를 게시하고 사용하기 위해 Event Hubs 네임스페이스에 액세스할 수 있음을 의미합니다.
애플리케이션 그룹을 사용하지 않도록 설정해도 클라이언트는 여전히 이벤트 허브에 연결할 수 있지만 권한 부여가 실패하고 클라이언트 연결이 닫힙니다. 따라서 연결 열기 및 닫기 성공이 다수 표시되며 동일한 수의 권한 부여 실패가 진단 로그에 표시됩니다.
다음 단계
애플리케이션 그룹을 만들고 관리하는 방법에 대한 지침은 Azure Portal을 사용한 클라이언트 애플리케이션에 대한 리소스 거버넌스를 참조하세요.