0.導入
「AWS Backup 通知」と調べると、失敗した AWS Backup ジョブの Amazon EventBridge 通知の設定方法
のドキュメントはヒットしたのですが、実行結果の通知(ジョブが成功したとしても通知)のドキュメントはなかったので、AWS User Notificationsによる通知設定方法とその際のポイントを記載します。なお、この記事ではAWS Backupの設定方法の説明は割愛します。
1.AWS Backupのコンソールから通知設定
AWS Backupのコンソールの左側メニューの「設定」をクリックすると一番下に「AWS 通知をカスタマイズ」とあります。
「AWSユーザー通知に移動」をクリックするとAWS User Notificationsのコンソールが開きます。
2.AWS User Notifications
AWS User Notificationsについて以下ドキュメント抜粋です。
AWS のサービスからの通知を一貫したわかりやすい形式で一元的にセットアップして表示できます。
通知設定というと、EventBridge + SNS(Simple Notification Service)の構成をよく使いますが、AWS User Notificationsを使うメリットとして
「AWS サービスからの通知を一元的に設定・表示できる」、「複数イベントを集約して受け取る通知の数を減らすことができる」との記載があります。
確かにEventBridge + SNSの構成だと、それらの機能はないですね。そもそもAWS User Notificationsが昨年GAされたサービスですので、やはりEventBridge + SNSでは実現できなかった事ができるようになっているようです。
今回の構成図としては以下となります。
3.通知設定
AWS User Notificationsのコンソールから「通知設定」→「通知設定を作成」をクリックし設定していきます。
今回はAWS Backupの実行結果を通知したいので以下を選択します。
今回は特定のEC2インスタンスのみのBackup結果を通知したいので、高度なフィルターで対象を絞ります。
どのように絞るかですが、AWS User Notificationsは裏でEventBridgeが動いているので、EventBridgeのサンドボックスで確認できます。サンプルイベントで「Backup Job State Change」を選択するとイベントのJSONが出力されます。
ここで一つポイントなのですが、detailの要素として isntance id はありません。そのためバックアップ実行結果の対象とするEC2インスタンスを絞りたい場合は、対象のEC2インスタンスのバックアップの保存先となるBackup Vaultを他のインスタンスと被らないようにします。そして、AWS User Notificationsの高度なフィルターで対象なBackup Vaultのみを対象とするように設定します。ポイントを以下の3-1にまとめています。
3-1.通知対象をインスタンスで絞る場合のポイント
ポイント1:バックアップボールトを対象のインスタンス用に作成
ポイント2:バックアッププランにて、バックアップの送信先として、先ほど作成したボールトを設定
ポイント3:detailで通知対象とするバックアップジョブを、バックアップボールトのみに絞る
{ "source": [ "aws.backup" ], "detail-type": [ "Backup Job State Change" ], "detail": { "backupVaultName": [ "oseto-backup-vault01" ] } }
ポイント4:設定した高度なフィルターが問題なく定義されているか、EventBridgeのサンドボックスで検証
サンプルイベントのbackupVaultNameの値を編集
イベントパターンに高度なフィルターに設定するJSONを入力し、テストパターンをクリックし成功すればOK。
3-2.通知の集約設定
AWS User Notificationsのメリットである「複数イベントを集約して受け取る通知の数を減らすことができる」を享受したい場合は、「5分以内に受領」を選択します。バックアップ取得が5分以内に終われば、バックアップの開始と完了が1通のメールとしてまとまります。
実際に通知テストをする時は一時的に「集約しない」を選択すれば、5分待たなくてもOKです。
3-3.通知の配信チャネル設定
EメールやSlackなどのチャットチャネル、登録したモバイルアプリに通知できます。
EventBridge + SNSでEメール通知したことある方は経験あるかと思いますが、JSONがそのままメールに記載されるので非常に読みにくいです。(Lambdaで成形する必要がありました)
AWS User NotificationsはEメール通知でもちゃんと読みやすく通知してくれます。
以上