AWS User Notifications で EC2 の AWS Health イベントを通知してみた!

先日初めて、AWS User Notificationsというサービスを利用しました。
AWSからの通知を設定、管理していく際に便利だと感じましたので、
EC2に関するAWS Healthイベントの通知をAWS User Notificationsを利用して実装した検証内容をまとめてみました。

概要

AWS Health イベントとAWS User Notificationsについて簡単に説明します。
詳細についてはリンクをご参照ください。

AWS Health イベント

AWS Health イベントとはAWS Healthが送信する通知のことで、AWSの障害情報やアカウントに影響を与える可能性がある変更などについて通知を行います。

AWS User Notifications

AWS User Notificationsは、AWSサービスからの通知を一元的に設定および確認できるサービスです。

検証内容

今回は、EC2に関するAWS Health イベントの通知をAWS User Notificationsで実装し、Eメールで通知を受け取ってみました。

事前確認

AWS Health APIを利用して、EC2のAWS Health イベントに関する情報を確認します。
今回はAWS CloudShellで実行します。AWS Health APIの詳細は以下リンクをご確認ください。

以下を実行することで、どのような内容のEC2のAWS Health イベントが通知されるのかを確認できます。
出力結果は2025/1/8時点の情報であり、出力結果が長いため省略しています。

[cloudshell-user@ip-xx-xx-xx-xx ~]$ aws health describe-event-types --region us-east-1 --filter "services=EC2" --output table
-------------------------------------------------------------------------------------------------------
|                                         DescribeEventTypes                                          |
+-----------------------------------------------------------------------------------------------------+
||                                            eventTypes                                             ||
|+---------------------+-----------------------------------------------------------------+-----------+|
||      category       |                              code                               |  service  ||
|+---------------------+-----------------------------------------------------------------+-----------+|
||  issue              |  AWS_EC2_API_ISSUE                                              |  EC2      ||
||  accountNotification|  AWS_EC2_BILLING_NOTIFICATION                                   |  EC2      ||
||  accountNotification|  AWS_EC2_BYOIP_ROAS_EXPIRING                                    |  EC2      ||
||  accountNotification|  AWS_EC2_BYOIP_RPKI_INVALID                                     |  EC2      ||
||  accountNotification|  AWS_EC2_BYOIP_RPKI_UNKNOWN                                     |  EC2      ||
||  issue              |  AWS_EC2_CAPACITY_BLOCKS_API_ISSUE                              |  EC2      ||
||  issue              |  AWS_EC2_CAPACITY_BLOCKS_API_LATENCY_ISSUE                      |  EC2      ||

・・・(中略)・・・

||  accountNotification|  AWS_EC2_SIMPLIFIED_AUTO_RECOVERY_SUCCESS                       |  EC2      ||
||  issue              |  AWS_EC2_SPOT_API_UNAVAILABILITY                                |  EC2      ||
||  scheduledChange    |  AWS_EC2_ULTRASERVER_CAPACITY_REDUCED                           |  EC2      ||
||  scheduledChange    |  AWS_EC2_ULTRASERVER_MAINTENANCE_INITIATED                      |  EC2      ||
||  accountNotification|  AWS_EC2_ULTRASERVER_RECOVERY_COMPLETED                         |  EC2      ||
||  issue              |  AWS_EC2_VPC_API_ISSUE                                          |  EC2      ||
||  issue              |  AWS_EC2_VPC_NETWORK_HEALTH_INTERNET_ISSUE                      |  EC2      ||
||  issue              |  AWS_EC2_VPC_NETWORK_HEALTH_INTER_AZ_ISSUE                      |  EC2      ||
||  issue              |  AWS_EC2_VPC_NETWORK_HEALTH_INTRA_AZ_ISSUE                      |  EC2      ||
|+---------------------+-----------------------------------------------------------------+-----------+|
(END)

AWS User Notificationsの設定

AWS User Notificationsを設定していきます。

今回は、以下の流れで設定を実施します。

  1. 通知設定
  2. 通知ハブの設定
  3. 配信チャネルの設定

AWS User Notificationsのマネジメントコンソールには、画面上部の以下マークをクリックすることで遷移できます。

1.通知設定

通知を受け取りたいサービスとイベントルールの設定を行います。

「通知設定を作成」をクリックします。

「クイックセットアップ」と「名前と説明」を設定します。
クイックセットアップを利用することで、迅速に通知設定を作成することができます。

「イベントルール」を設定します。

今回は、EC2に関するAWS Health イベントの通知のみを受け取りたいので、高度なフィルターで以下のjsonを記述しました。

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

「集約設定」と「配信チャネル」を設定します。
集約設定では通知の受信頻度、配信チャネルでは通知の送信先を定義します。
配信チャネルでは、「Eメール」、「AWSコンソールモバイルアプリ」、「チャットチャネル」を選択可能です。
配信チャネルは後述で設定するため、詳細は 3.配信チャネルの設定 をご確認ください。
設定が完了したら、「通知設定を作成」をクリックします。

イベントルールの「リージョン別のステータス」が「アクティブ」になっています。

2.配信ハブの設定

通信ハブでは、通知データの保存や処理、またはレプリケートをする特定のリージョンを選択します。
今回は、東京リージョン(ap-northeast-1)を選択し、「保存して続行」をクリックします。

Asia Pacific (Tokyo)が「アクティブ」になっていることがわかります。

3.配信チャネルの設定

配信チャネルでは通知先を設定します。
今回は通知先にはEメールを選択します。

「Eメールを追加」をクリックします。

受信者にメールアドレス、名前にメールアドレスの所有者がわかるような名前を設定し、「Eメールの追加」をクリックします。

設定したメールアドレス宛にAWSから以下のようなメールが送信されます。
内容を確認の上、「Verify email」をクリックします。

「Eメールが検証されました」と表示されます。

配信チャネルを確認すると、先ほど登録したメールアドレスの検証ステータスが「アクティブ」になっています。

登録した配信チャネルを通知設定に設定します。
通知設定の設定画面にて、「配信チャネル」をクリックします。

追加した配信チャネルを選択し、「通知設定を更新」をクリックします。

配信チャネルが通知設定に追加されています。

 

AWS User Notificationsの設定は以上です。

まとめ

今回は、AWS Health イベントをEメールで通知できるように設定まで行いました。
テストの方法についても今後まとめられたらと思っております。

EC2のAWS Health イベントをEメールで通知できるように設定しましたが、
UserNotificationsは他にもCloudWatchなどにも対応しているので、運用機能実装時に大変役立つサービスだと思います。

皆様のお役に立ちましたら、嬉しいです。

タイトルとURLをコピーしました