はじめに
GMOコネクトの永田です。
先日、EventBridgeでAWS Healthの通知が飛んでこないよ!と、相談を受けたので、その時調べたことをまとめます。
まとめ
- AWS Healthはイベント発生するRegion毎に、EventBridge Ruleの作成が必要
- 公式ドキュメントはちゃんと読もう(できる限り)
発生していた事象
「はじめに」に書いた通り、AWS Healthのイベントが通知されていませんでした。
AWS Healthはグローバルサービスだから、いつも通りバージニアかな〜と思っていましたが、ちょっと違いました。バージニアにはEventBridgeが設定されていたのです。
グローバルサービスとは
こちらの記事が分かりやすいです。
Region固有のサービスではなく、AWS Management Console上も「グローバル」と表示され、個別Regionを選択できないサービスが概ね該当します。
よく使うサービスだと、IAM・CloudFront・Route53などが該当します。
今回問題になったAWS Health Dashboardも、AWS Management Console上は「グローバル」と表示されていました。
グローバルサービスのEventBridge設定
こちらのAWSトラブルシューティングに記載がある通り、グローバルサービスはバージニアで通知がされます。
AWS IAM や Amazon Route 53 などの グローバルサービスは、米国東部 (バージニア北部) リージョンでのみ使用できるため、グローバルサービスからの AWS API コールからのイベントは、そのリージョンでのみ使用できます。詳細については、「AWS サービスからのイベント」を参照してください。
発生した事象の原因
実は、上記のグローバルサービス一覧を見てもAWS Health Dashboardが無く、AWS Health Dashboardはリージョナルサービスというのが、原因でした。
改めてドキュメントを読むと、確かにリージョン毎に設定してね!となっています。
AWS Health イベントを受信するリージョンごとに EventBridge ルールを作成する必要があります。ルールを作成しなければ、イベントは受信されません。例えば、米国西部 (オレゴン) リージョンからイベントを受信するには、このリージョンのルールを作成する必要があります。
AWS Health Dashboardも、グローバルサービスであり、同じ枠(バージニアで通知される)と思っていました😇
AWS Management Consoleの表示を見て、グローバルサービスだと思い込んでいたのが、原因ですね。
(再掲)まとめ
- AWS Healthはイベント発生するRegion毎に、EventBridge Ruleの作成が必要
- 公式ドキュメントはちゃんと読もう(できる限り)
弊社では、AWSを使ったサービスの開発や技術支援をはじめ、幅広い支援を行っておりますので、何かありましたらお気軽にお問合せください。