다음 단계에 따라 Azure Portal을 사용하여 애플리케이션 그룹을 만들 수 있습니다.
Event Hubs 네임스페이스로 이동합니다.
왼쪽 메뉴의 설정에서 애플리케이션 그룹을 선택합니다.
애플리케이션 그룹 페이지의 명령 모음에서 + 애플리케이션 그룹을 선택합니다.
애플리케이션 그룹 추가 페이지에서 다음 단계를 수행합니다.
애플리케이션 그룹의 이름을 지정합니다.
사용이 선택되어 있는지 확인합니다. 애플리케이션 그룹을 먼저 사용 안 함 상태로 설정하려면 사용 옵션을 선택 취소합니다. 이 플래그는 애플리케이션 그룹의 클라이언트가 Event Hubs에 액세스할 수 있는지 여부를 결정합니다.
보안 컨텍스트 유형의 경우 네임스페이스 공유 액세스 정책, 이벤트 허브 공유 액세스 정책 또는 Microsoft Entra 애플리케이션을 선택합니다. 애플리케이션 그룹은 네임스페이스 또는 엔터티(이벤트 허브) 수준에서 SAS 키 선택을 지원합니다. 애플리케이션 그룹을 만들 때 클라이언트 애플리케이션에서 사용되는 SAS(공유 액세스 서명) 또는 Microsoft Entra 애플리케이션 ID와 연결해야 합니다.
네임스페이스 공유 액세스 정책을 선택한 경우:
SAS 키 이름의 경우 이 애플리케이션 그룹의 보안 컨텍스트로 사용할 수 있는 SAS 정책을 선택합니다. SAS 정책 추가를 선택하여 새 정책을 추가한 다음, 애플리케이션 그룹과 연결할 수 있습니다.
Event Hubs 공유 액세스 정책을 선택한 경우:
SAS 키 이름의 경우 Event Hubs "공유 액세스 정책" 페이지에서 SAS 정책 이름을 복사하여 텍스트 상자에 붙여넣습니다.
Microsoft Entra 애플리케이션을 선택한 경우:
Microsoft Entra 애플리케이션(클라이언트) ID에 Microsoft Entra 애플리케이션 또는 클라이언트 ID를 지정합니다.
자동 생성된 클라이언트 그룹 ID를 검토합니다. 이 ID는 애플리케이션 그룹과 연결된 고유 ID입니다. 애플리케이션 거버넌스의 범위(네임스페이스 또는 엔터티 수준)는 사용된 Microsoft Entra 애플리케이션 ID에 대한 액세스 수준에 따라 달라집니다. 다음 표에서는 다양한 보안 컨텍스트 유형에 대해 자동으로 생성된 클라이언트 그룹 ID를 보여 줍니다.
보안 컨텍스트 유형
자동 생성된 클라이언트 그룹 ID
네임스페이스 공유 액세스 키
NamespaceSASKeyName=<NamespaceLevelKeyName>
Microsoft Entra 애플리케이션
AADAppID=<AppID>
Event Hubs 공유 액세스 키
EntitySASKeyName=<EntityLevelKeyName>
참고 항목
네임스페이스 공유 액세스 키를 사용하여 만든 모든 기존 애플리케이션 그룹은 SASKeyName부터 클라이언트 그룹 ID로 계속 작동합니다. 그러나 모든 새 애플리케이션 그룹은 위와 같이 클라이언트 그룹 ID를 업데이트했습니다.
정책을 추가하려면 다음 단계를 수행합니다.
정책의 이름을 입력합니다.
형식은 제한 정책을 선택합니다.
메트릭 ID의 경우 들어오는 메시지, 보내는 메시지, 들어오는 바이트, 보내는 바이트 중에 하나를 선택합니다. 다음 예제에서는 들어오는 메시지를 선택합니다.
속도 제한 임계값에는 임계값을 입력합니다. 다음 예제에서는 들어오는 메시지 수의 임계값으로 10000을 지정합니다.
다음은 다른 정책이 추가된 페이지의 스크린샷입니다.
이제 애플리케이션 그룹 추가 페이지에서 추가를 선택합니다.
애플리케이션 그룹 목록에 애플리케이션 그룹이 표시되는지 확인합니다.
목록에서 애플리케이션 그룹 옆에 있는 휴지통 아이콘 단추를 선택하여 목록의 애플리케이션 그룹을 삭제할 수 있습니다.
CLI 명령 az eventhubs namespace application-group create를 사용하여 Event Hubs 네임스페이스 또는 이벤트 허브 수준에서 애플리케이션 그룹을 만듭니다. 선택하는 보안 컨텍스트 유형에 따라 --client-app-group-identifier를 설정해야 합니다. 지원되는 보안 컨텍스트 유형을 알아보려면 위의 표를 검토하세요.
다음은 Azure 리소스 그룹 MyResourceGroup의 네임스페이스 mynamespace에 myAppGroup이라는 애플리케이션 그룹을 만드는 예제입니다. 이 예제에서는 다음 구성을 사용합니다.
공유 액세스 정책은 보안 컨텍스트로 사용됩니다.
클라이언트 앱 그룹 ID는 NamespaceSASKeyName=<NameOfTheSASkey>로 설정됩니다.
첫 번째 제한 정책은 임계값이 10000인 Incoming messages 메트릭에 대한 것입니다.
두 번째 제한 정책은 임계값이 20000인 Incoming bytes 메트릭에 대한 것입니다.
PowerShell 명령 New-AzEventHubApplicationGroup를 사용하여 Event Hubs 네임스페이스 또는 이벤트 허브 수준에서 애플리케이션 그룹을 만듭니다. 선택하는 보안 컨텍스트 유형에 따라 -ClientAppGroupIdentifier를 설정해야 합니다. 지원되는 보안 컨텍스트 유형을 알아보려면 위의 표를 검토하세요.
다음 예제에서는 ARM 템플릿을 사용하여 애플리케이션 그룹을 만드는 방법을 보여 줍니다. 이 예제에서 애플리케이션 그룹은 AppGroupIdentifier 클라이언트를 NamespaceSASKeyName=contososaspolicy로 설정하여 기존 SAS 정책 이름 contososaspolicy와 연결됩니다. 애플리케이션 그룹 정책은 ARM 템플릿에도 정의됩니다. 선택하는 보안 컨텍스트 유형에 따라 ClientAppGroupIdentifier를 설정해야 합니다. 지원되는 보안 컨텍스트 유형을 알아보려면 위의 표를 검토하세요.
이러한 애플리케이션을 포함하는 애플리케이션 그룹을 비활성화하여 클라이언트 애플리케이션이 Event Hubs 네임스페이스에 액세스하지 못하도록 방지할 수 있습니다. 애플리케이션 그룹을 비활성화하면 클라이언트 애플리케이션에서 데이터를 게시하거나 사용할 수 없습니다. 해당 애플리케이션 그룹의 클라이언트 애플리케이션에서 설정된 연결도 종료됩니다.
이 섹션에서는 Azure Portal, PowerShell, CLI 및 ARM 템플릿을 사용하여 애플리케이션 그룹을 사용하거나 사용하지 않도록 설정하는 방법을 보여줍니다.
다음 ARM 템플릿은 isEnabled 속성을 false로 설정하여 애플리케이션 그룹을 사용하지 않도록 기존 네임스페이스(contosonamespace)를 업데이트하는 방법을 보여줍니다. 앱 그룹의 식별자는 SASKeyName=RootManageSharedAccessKey입니다.
애플리케이션 그룹을 만들 때 또는 기존 애플리케이션 그룹에 0개 이상의 정책을 추가할 수 있습니다. 예를 들어 IncomingMessages, IncomingBytes 또는 OutgoingBytes에 관련된 제한 정책을 contosoAppGroup에 추가할 수 있습니다. 이러한 정책은 SAS 정책 contososaspolicy를 사용하는 클라이언트 애플리케이션의 이벤트 스트리밍 워크로드에 적용됩니다.
애플리케이션 그룹을 만드는 동안 정책을 추가하는 방법을 알아보려면 애플리케이션 그룹 만들기 섹션을 참조하세요.
Azure Event Hubs는 애플리케이션 메트릭 로그 기능을 지원하여 시스템 내의 일반적인 처리량을 관찰하고 이에 따라 애플리케이션 그룹의 임계값을 결정합니다. 다음 단계에 따라 임계값을 결정할 수 있습니다.
Application Metric 로그를 선택한 범주로 사용하여 Event Hubs에서 진단 설정을 켜고 대상으로 Log Analytics를 선택합니다.
제한 정책 없이 빈 애플리케이션 그룹을 만듭니다.
일반적인 처리량으로 이벤트 허브에 메시지/이벤트를 계속 보냅니다.
Log Analytics 작업 영역으로 이동하여 AzureDiagnostics 테이블의 올바른 활동 이름((resource-governance-overview.md#throttling-policy---threshold-limits)을 기준으로 함)을 쿼리합니다. 다음 샘플 쿼리는 들어오는 메시지에 대한 임계값을 추적하도록 설정됩니다.
AzureDiagnostics
| where ActivityName_s =="IncomingMessages"
| where Outcome_s =="Success"
Log Analytics 작업 영역에서 차트 섹션을 선택하고 Y축에서 생성된 시간과 x축에서 보낸 메시지 수 사이의 차트를 표시합니다.
이 예제에서는 일반적인 처리량이 550개 이상의 메시지(예상 현재 처리량)를 초과하지 않는 것을 확인할 수 있습니다. 이 관찰은 실제 임계값을 정의하는 데 도움이 됩니다.
임계값을 결정하면 애플리케이션 그룹 내에 새 제한 정책을 추가합니다.
이벤트 게시 또는 사용
애플리케이션 그룹에 제한 정책을 성공적으로 추가한 후에는 contosoAppGroup 애플리케이션 그룹의 일부인 클라이언트 애플리케이션을 사용하여 이벤트를 게시하거나 사용하여 제한 동작을 테스트할 수 있습니다. 테스트하려면 AMQP 클라이언트 또는 Kafka 클라이언트 애플리케이션과 동일한 SAS 정책 이름 또는 애플리케이션 그룹을 만드는 데 사용된 Microsoft Entra 애플리케이션 ID를 사용할 수 있습니다.
참고 항목
클라이언트 애플리케이션이 제한되면 데이터 게시 또는 사용 속도가 느려집니다.
애플리케이션 그룹을 사용하여 제한 유효성 검사
제한 정책에 대한 임계값 제한 결정과 마찬가지로 애플리케이션 메트릭 로그를 사용하여 제한의 유효성을 검사하고 자세한 정보를 찾을 수 있습니다.
아래 예제 쿼리를 사용하여 특정 기간에 제한된 모든 요청을 확인할 수 있습니다. 제한될 것으로 예상되는 작업과 일치하도록 ActivityName을 업데이트해야 합니다.
AzureDiagnostics
| where Category =="ApplicationMetricsLogs"
| where ActivityName_s =="IncomingMessages"
| where Outcome_s =="Throttled"
프로토콜 수준의 제한으로 인해 이벤트 허브(OutgoingMessages 또는 OutgoingBytes) 내의 소비자 작업에 대해 제한된 요청 로그가 생성되지 않습니다. 소비자 쪽에서 요청이 제한되면 송신 처리량이 느려집니다.