バックアップリージョンを意識しながら、バージニア北部、東京、グローバルのみの AWS Health イベントを User Notifications で設定してみる

バックアップリージョンを意識しながら、バージニア北部、東京、グローバルのみの AWS Health イベントを User Notifications で設定してみる

Clock Icon2025.02.06

こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。

最近、バージニア北部リージョン、東京リージョン、グローバルの AWS Health イベントのみ取得したい機会がありました。

User Notifications を利用すると、一元的に AWS Health のイベントを管理できるため非常に便利です。

Quick Setup を利用すれば、素早く Health イベントを通知できるのですが、バックアップリージョンを意識できていないと、意図しない通知や通知のロスにつながることを知ったのでご紹介したいと思います。

2025-02-05 at 23.28.42-AWS User Notifications  Global.png

バックアップリージョン

バックアップリージョンは、プライマリリージョン(東京やバージニア北部)で障害が発生し、EventBridge が影響を受けている場合に冗長先となるリージョンです。

イベントは AWS Health のパブリックイベントは、影響を受けるリージョンとバックアップリージョンの両方に同時に送信されます。いざという時に、バックアップリージョンのイベントを利用することで、耐障害性が高まります。

なお、バックアップリージョンの関係性は以下になります。

  • 東京やバージニア北部がプライマリリージョンのリージョナルイベント場合、バックアップリージョンはオレゴンリージョン
  • オレゴンリージョンがプライマリリージョンのリージョナルイベント場合、バックアップリージョンはバージニア北部リージョン
  • GovCloud を除くグローバルイベントの場合、プライマリリージョンはバージニア北部リージョン、バックアップリージョンはオレゴンリージョン

https://docs.aws.amazon.com/health/latest/ug/choosing-a-region.html

イベントが重複するのではないか?

先ほど、「イベントは AWS Health のパブリックイベントは、影響を受けるリージョンとバックアップリージョンの両方に同時に送信されます。」と記載しました。

バックアップリージョンを利用すると、イベントが重複して通知されるのではないかと疑問に思う方もいるのではないかと思います。

はい、イベントは重複して User Notifications へ送信します。ただ、この問題に関しては User Notifications の集約設定 が利用できます。

集約設定を利用することで。 User Notification 側で重複排除を行い通知します。大変便利ですよね。

Aggregation settings reduce the number of notifications that you receive by combining multiple events into fewer notifications based on the option you choose. Aggregation settings are turned on by default. We recommend you use aggregation settings.

https://docs.aws.amazon.com/notifications/latest/userguide/getting-started.html#getting-started-step1

User Notifications の作り

それでは早速作ってみましょうと言いたいところですが、 User Notifications の作りについておさらいします。

ざっくり図にすると以下の通りで、各リージョンに共通のイベントパターンで EventBridge Rule が作られ、ターゲットに User Notifications が設定されるイメージです。

Untitled(128).png

AWS Health イベントパターンの場合、次のルールが各リージョンのイベントパターンに利用されます。

{
	"source": ["aws.health"],
	"detail-type": ["AWS Health Event"]
}

また、共通のイベントパターン自体は EventBridge コンソールから、編集することができない仕様となっています。

2025-02-06 at 00.21.03-Rule details  Amazon EventBridge  ap-northeast-1.png

このままだと、オレゴンリージョンがプライマリリージョンの Health イベントまで通知が飛んできてしまいます。どうしたらいいのでしょうか。

Untitled(128) (1).png

Advanced Filter の活用

User Notifications では Advanced filter という機能が用意されています。

https://docs.aws.amazon.com/ja_jp/notifications/latest/userguide/common-usecases.html

Advanced filter は User Notifications に送られたイベントをフィルタリングする機能です。

こちらを利用することで、特定リージョンやグローバルイベントのみ通知を飛ばすように設定できます。たとえば、以下のルールを設定することで東京、バージニア、グローバルの Helth イベントのみ通知するようなフィルタリングが可能になります。

{
	"detail": {
		"eventRegion": ["ap-northeast-1", "us-east-1", "global"]
	}
}

最終的には次のように、ターゲットリージョンに東京、バージニア、オレゴンを設定し、東京、バージニア、グローバルの Helth イベントのみ通知するようなフィルタリングになります。

2025-02-06 at 00.30.30-Edit Health-quick-setup  AWS User Notifications  Global.png

まとめ

以上、「バックアップリージョンを意識しながら、バージニア北部、東京、グローバルのみの AWS Health イベントを User Notifications で設定してみる」でした。

本エントリを通じて、通知集約できる部分が、個人的にはすごく嬉しいポイントだなと思いました。このブログがどなたかの参考になれば幸いです。

クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.