Amazon EventBridge에서 이벤트 전송을 모니터링하는 모범 사례
이벤트 기반 애플리케이션의 비즈니스 로직이 안정적으로 실행되도록 하려면 이벤트 전송 동작을 모니터링해야 합니다. EventBridge는 신뢰할 수 있는 이벤트 전송을 보장하기 위해, 문제를 조기에 모니터링, 감지 및 완화할 수 있는 지표를 제공합니다. 이러한 지표에는 다음이 포함됩니다.
InvocationAttempts
,SuccessfulInvocationAttempts
,RetryInvocationAttempts
,FailedInvocations
등 카운터 기반 지표가 대상 스로틀링을 관찰하고 오류율을 계산할 수 있도록 합니다.IngestionToInvocationSuccessLatency
와 같은 지연 시간 기반 지표가 이벤트 전송 및 지연에 대한 인사이트를 제공합니다.
이러한 지표를 사용하면 이벤트 기반 아키텍처의 상태를 모니터링할 수 있으며, 성능이 저조하거나 크기가 작거나 응답이 없는 대상으로 인한 이벤트 전송 문제를 이해하고 완화할 수 있습니다. 예를 들어, 영구적으로 규모가 축소되거나 스로틀링된 대상은 과도한 재시도, 이벤트 전송 지연 및 영구적인 전송 실패로 이어질 수 있습니다.
여러 지표를 결합하여 전체적인 개요를 파악하고 이를 면밀히 모니터링하는 것이 좋습니다. 적절한 경보 및 대시보드를 설정하면 지속적인 문제를 조기에 해결할 수 있습니다.
특정 지표에 대한 자세한 내용은 EventBridge 지표 섹션을 참조하세요.
이벤트 전송 실패 감지
EventBridge에는 규칙별로 대상 간접 호출, 즉 이벤트 전송 시도를 보고하도록 구성할 수 있는 지표가 포함되어 있습니다.
규칙 수준에서 다음 지표를 모니터링하는 것이 좋습니다.
InvocationAttempts
로 이벤트 전달 재시도를 포함하여 EventBridge가 대상을 간접적으로 호출하려고 시도하는 총 횟수를 관찰합니다.SuccessfulInvocationAttempts
는 EventBridge가 이벤트를 대상에 성공적으로 전달한 간접 호출 시도 횟수입니다.RetryInvocationAttempts
는 이벤트 전송 재시도 횟수를 나타냅니다.RetryInvocationAttempts
의 증가는 크기가 작은 대상의 초기 징후일 수 있습니다.
또한, 재시도 횟수가 증가하면 전송 문제의 첫 번째 징후가 될 수 있으므로, 모든 대상 간접 호출에 대한 성공적인 대상 간접 호출의 비율을 추적하는 단일 지표를 생성하는 것이 좋습니다. 예를 들어, CloudWatch에서는 다음 공식을 사용하여 SuccessfulInvocationRate
라는 지표를 생성하는 지표 수학을 사용할 수 있습니다.
SuccessfulInvocationRate
= SuccessfulInvocationAttempts
/ InvocationAttempts
그런 다음, 요구 사항에 따라 특정 임곗값에 도달하면 알림을 생성하도록 CloudWatch 경보를 구성할 수 있습니다.
일시적인 트래픽 급증 또는 간접 호출 오류로 인해 SuccessfulInvocationRate
가 가끔씩 감소하는 것은 정상으로 간주될 수 있지만, 지속적인 불일치는 잘못 구성된 대상을 나타내는 것이므로 공동 책임 모델의 일부로 해결해야 합니다.
지표 수학에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서에서 CloudWatch 지표에 수학 표현식 사용을 참조하세요.
기본적으로 EventBridge는 24시간 동안 최대 185회까지 이벤트 전송을 재시도합니다. EventBridge는 이러한 재시도 횟수를 소진한 후, 이벤트를 삭제하거나 Dead Letter Queue(DLQ)가 지정된 경우 해당 DLQ로 전송합니다. 자세한 내용은 이벤트 전송 재시도 단원을 참조하십시오. 이벤트가 전달되지 않아 손실되는 것을 방지하려면, 각 규칙 대상에 대해 Dead Letter Queue(DLQ)를 구성하는 것이 좋습니다. 자세한 내용은 DLQ(Dead Letter Queue) 사용 섹션을 참조하세요.
EventBridge가 지정된 대상에 전달하지 못하는 이벤트는 대상에 대한 Dead Letter Queue(DLQ)를 구성한 경우 FailedInvocations
지표와 InvocationsSentToDlq
지표에 보고됩니다. 애플리케이션에 FailedInvocations
또는 InvocationsSentToDlq
보고의 수가 많은 경우, 대상의 규모가 적절하게 조정되고 지정된 트래픽을 수신할 수 있는지 조사하는 것이 좋습니다.
이벤트 전송 지연 감지
또한 EventBridge는 이벤트 수집부터 대상에 성공적으로 전송하기까지 걸리는 시간, 즉 엔드 투 엔드 지연 시간을 관찰할 수 있는 지표를 제공합니다. 이는 IngestionToInvocationSuccessLatency
지표를 통해 달성할 수 있습니다. 이 지표는 예를 들어, 시간 초과 및 대상의 느린 응답으로 인해 재시도 및 전송 지연에서 기인하는 영향을 드러냅니다. IngestionToInvocationSuccessLatency
에는 대상이 이벤트 전송에 성공적으로 응답하는 데 걸리는 시간이 포함됩니다. 이를 통해 EventBridge와 대상 간의 엔드 투 엔드 지연 시간을 모니터링하고, 대상 스로틀링이나 오류가 없더라도 대상의 성능 변동 및 저하를 감지할 수 있습니다.