다음을 통해 공유


Event Grid 및 운영 우수성

Azure Event Grid 를 사용하면 이벤트 기반 아키텍처를 사용하여 애플리케이션을 쉽게 빌드할 수 있습니다. 이 솔루션은 스토리지 Blob 및 리소스 그룹과 같은 Azure 서비스에서 발생하는 이벤트에 대한 기본 제공 지원을 제공합니다. 또한 Event Grid는 사용자 지정 토픽을 사용하여 사용자 고유의 이벤트를 지원합니다.

Event Grid 사용에 대한 자세한 내용은 Azure Event Grid를 사용하여 사용자 지정 이벤트 만들기 및 라우팅을 참조하세요.

Event Grid를 사용하여 워크로드에 대한 운영 우수성을 높이는 방법을 이해하려면 Event Grid 토픽 및 Event Grid 도메인에 대한 진단 로그를 참조하세요.

다음 섹션은 Azure Event Grid 및 운영 우수성에 따라 다릅니다.

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

디자인 고려 사항

Azure Event Grid는 작동 시간 SLA를 제공합니다. 자세한 내용은 Event Grid에 대한 SLA를 참조하세요.

체크리스트

운영 우수성을 염두에 두고 Azure Event Grid를 구성했나요?

  • Event Grid의 이벤트 배달 실패를 모니터링합니다.
  • 일괄 처리된 이벤트를 사용합니다.
  • 이벤트 일괄 처리의 크기는 초과 1MB 할 수 없습니다.
  • 부하 테스트 중에 일괄 처리 크기 선택을 구성하고 최적화합니다.
  • 사용자 지정 코드를 포함하는 엔드포인트에 HTTP200-204 배달하는 경우에만 Event Grid 메시지가 응답으로 수락되는지 확인합니다.
  • Event Grid에서 실패한 이벤트 게시를 모니터링합니다.

구성 권장 사항

Azure Event Grid를 구성할 때 운영 우수성을 최적화하려면 다음 권장 사항을 고려하세요.

추천 설명
Event Grid의 이벤트 배달 실패를 모니터링합니다. Delivery Failed 이벤트 처리기(시간 제한 또는 비200-204 HTTP 상태 코드)에 메시지를 배달할 수 없을 때마다 메트릭이 증가합니다. 이벤트를 손실할 수 없는 경우 DLQ(Dead-Letter-Queue) 스토리지 계정을 설정합니다. DLQ 계정은 최대 재시도 횟수 이후에 배달할 수 없는 이벤트가 배치되는 위치입니다. 필요에 따라 Event Grid를 통해 새 파일 이벤트를 처리하여 DLQ 스토리지 계정에 알림 시스템을 구현합니다.
처리량이 높은 시나리오에서 일괄 처리된 이벤트를 사용합니다. 서비스는 하나의 이벤트가 있는 json 배열 대신 여러 이벤트가 있는 배열을 구독자에게 전달합니다. 소비하는 애플리케이션은 이러한 배열을 처리할 수 있어야 합니다.
이벤트 일괄 처리의 크기는 초과 1MB 할 수 없습니다. 메시지 페이로드가 큰 경우 하나 또는 몇 개의 메시지만 일괄 처리에 적합합니다. 소비 서비스는 더 많은 이벤트 일괄 처리를 처리해야 합니다. 이벤트에 큰 페이로드가 있는 경우 Blob Storage와 같은 다른 곳에 저장하고 이벤트에 참조를 전달하는 것이 좋습니다. CloudEvents 스키마를 통해 타사 서비스와 통합하는 경우 이벤트를 초과 64KB 하지 않는 것이 좋습니다.
부하 테스트 중에 일괄 처리 크기 선택을 구성하고 최적화합니다. 일괄 처리 크기 선택은 페이로드 크기 및 메시지 볼륨에 따라 달라집니다.
Event Grid에서 실패한 이벤트 게시를 모니터링합니다. Unmatched 지표는 게시되었지만 구독에 일치하지 않는 메시지를 표시합니다. 애플리케이션 아키텍처에 따라 후자는 의도적일 수 있습니다.

원본 아티팩트

사용 가능한 모든 Event Grid 토픽에 대한 입력 스키마 유형을 확인하려면 다음 쿼리를 사용합니다.

Resources 
| where type == 'microsoft.eventgrid/topics'
| project name, resourceGroup, ___location, subscriptionId, properties['inputSchema']

Event Grid 도메인에 대한 기존 프라이빗 엔드포인트의 리소스 ID 를 검색하려면 다음 쿼리를 사용합니다.

Resources 
| where type == 'microsoft.eventgrid/domains' and notnull(properties['privateEndpointConnections']) 
| mvexpand properties['privateEndpointConnections'] 
| project-rename privateEndpointConnections = properties_privateEndpointConnections 
| project name, resourceGroup, ___location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']

사용 가능한 모든 Event Grid 도메인에 대한 공용 네트워크 액세스 상태를 식별하려면 다음 쿼리를 사용합니다.

Resources 
| where type == 'microsoft.eventgrid/domains' 
| project name, resourceGroup, ___location, subscriptionId, properties['publicNetworkAccess']

모든 공용 Event Grid 도메인에 대한 방화벽 규칙을 식별하려면 다음 쿼리를 사용합니다.

Resources 
| where type == 'microsoft.eventgrid/domains' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, ___location, subscriptionId, properties['inboundIpRules']

모든 공용 Event Grid 토픽에 대한 방화벽 규칙을 식별하려면 다음 쿼리를 사용합니다.

Resources 
| where type == 'microsoft.eventgrid/topics' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, ___location, subscriptionId, properties['inboundIpRules']

Event Grid 토픽에 대한 기존 프라이빗 엔드포인트의 리소스 ID 를 검색하려면 다음 쿼리를 사용합니다.

Resources 
| where type == 'microsoft.eventgrid/topics' and notnull(properties['privateEndpointConnections']) 
| mvexpand properties['privateEndpointConnections'] 
| project-rename privateEndpointConnections = properties_privateEndpointConnections 
| project name, resourceGroup, ___location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']

사용 가능한 모든 Event Grid 도메인에 대한 입력 스키마 유형을 확인하려면 다음 스키마를 사용합니다.

Resources 
| where type == 'microsoft.eventgrid/domains'
| project name, resourceGroup, ___location, subscriptionId, properties['inputSchema']

사용 가능한 모든 Event Grid 토픽에 대한 공용 네트워크 액세스 상태를 식별하려면 다음 쿼리를 사용합니다.

Resources 
| where type == 'microsoft.eventgrid/topics' 
| project name, resourceGroup, ___location, subscriptionId, properties['publicNetworkAccess']

다음 단계