プライマリリージョンでの障害時に AWS Health イベントをバックアップリージョンで受け取る方法
困っていた内容
プライマリリージョンで障害が発生して EventBridge ルールがその影響を受けている場合に、バックアップリージョンで AWS Health イベントを受け取るための設定方法を教えてください。
バックアップリージョンに追加のルールを設定すると、プライマリルールが進行中のイベントの影響を受けた場合に備えて、ワークフローのレジリエンスがさらに強化されます。標準 AWS パーティションのすべてのリージョンについて、米国西部 (オレゴン) にバックアップとしてルールを設定して、プライマリリージョンが進行中の問題の影響を受けても引き続きイベントを受信できるようにすることができます。米国西部 (オレゴン) リージョンのバックアップリージョンは、米国東部 (バージニア北部) リージョンです。
対応方法
例えば東京とバージニア北部リージョンをプライマリリージョンとする場合は、EventBridge のイベントパターンで以下のような設定を行なってください。
東京(ap-northeast-1)
{ "source": ["aws.health"], "detail": { "eventRegion": ["ap-northeast-1"] } }
バージニア北部(us-east-1)
{ "source": ["aws.health"], "detail": { "eventRegion": ["us-east-1","global"] } }
オレゴン(us-west-2)
{ "source": ["aws.health"], "detail": { "eventRegion": ["ap-northeast-1","us-east-1","global"] } }
※ グローバルイベントはバージニア北部リージョンに送られるため、バージニア北部リージョンにて設定を行い、バックアップリージョンであるオレゴンリージョンでも設定を行っております。
注記
AWS Health はベストエフォートでイベントを配信するため、イベントの配信が確実に行われることを保証するものではないことにご注意ください。
AWS Health は、ベストエフォートベースでイベントを配信します。イベントが常に EventBridge に配信されるとは限りません。
そのため、AWS Health Dashboard や他の監視サービスなどを併せて使用して、障害発生の確認を行うことをご検討ください。
追記 (2023年11月2日)
上記の設定の導入を検討されている方は以下の 2 点についてもご注意ください。
① バックアップリージョンへの配信は eventScopeCode が PUBLIC のものが対象
バックアップリージョンに転送されるのはeventScopeCode
パラメータがPUBLIC
のものとなります。
Setting up an additional rule in a backup Region adds an extra layer of resilience to your workflows, should your primary rule be affected by an ongoing event. Public events for AWS Health are sent simultaneously to both the impacted Region and to a backup Region.
② プライマリリージョンのヘルス状態に関係なく、バックアップリージョンにイベント転送が常に行われる
上記の設定を行うとプライマリリージョンのヘルス状態に関わらず、バックアップリージョンにもイベント配信が常に行われるようになります。
検証を行ったところ、イベントの影響を受ける AWS リージョンが記載されるeventRegion
パラメータが us-east-1で、EventBridge を介して通知が配信された AWS リージョンが記載されるregion
パラメータが us-west-2となっている通知が、プライマリリージョンへの通知とは別に確認できました。
これについては英語ドキュメントに記載がありますように、eventARN
とcommunicationId
を使用して AWS Health イベントの重複排除の処理をすることをお勧めします。
If you're monitoring public events from an AWS Region, we recommend that you create a back up rule. Public events for AWS Health are sent simultaneously to both the impacted Region and to a backup Region. It's recommended that you de-duplicate AWS Health events using eventARN and communicationId because these remain consistent for AWS Health messages sent to the backup Region.