AWS Backup のジョブが失敗した場合にAmazon SNSでEメール通知を受け取る設定を実装してみる
はじめに
こんにちは。クラウドリードチームのmrnkです。
今回は AWS Backup のジョブが失敗した場合に、E メールで通知を受け取る方法についてご紹介します。
AWS Backup のジョブが失敗した場合にE メールで通知を受け取る方法
AWSのドキュメントにも記載がある通り、今回は Amazon Simple Notification Service (Amazon SNS) を用いて、以下の手順で実装を行います。
設定手順
1. AWS Backup 通知の送信先となる SNS トピックを作成します。
2. SNS トピックに通知を送信するようにバックアップボールトを設定します。
3. 失敗したバックアップジョブの通知をフィルタリングする SNS サブスクリプションを作成します。
4. 通知の E メールをモニタリングします。
出典:失敗した AWS Backup ジョブの通知を受け取る
やってみた
まずは AWS Backup 通知の送信先となる、SNSトピックの作成を行います。
SNSトピックの作成とアクセスポリシーの追加
まずは、Amazon SNS のコンソール画面を開き、トピックを選択。トピックの作成を選択します。
トピック作成画面に移動しますので、タイプ、名前、表示名を入力します。
入力が完了したら、以降はデフォルトのままで、トピックの作成を選択し、トピックを作成します。
トピックの作成後、作成されたトピックのARNをメモしておき、編集、アクセスポリシーの順に選択します。
アクセスポリシーのJSON エディタを使用し、AWS Backup から SNS を利用できる権限を追加します。
追加するJSONの内容は AWSの公式ドキュメントに記載のある通りです。
Resourceの内容は、先ほどメモをしたトピックのARNに置き換えてください。
{ "Sid": "My-statement-id", "Effect": "Allow", "Principal": { "Service": "backup.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:ap-northeast-1:xxxxxxxxxxxx:aws-backup-test" }
入力が完了したら、変更の保存を選択して内容を保存します。
AWS Backupバックアップボールトを設定する
SNSトピックに通知を送信するために、AWS Backupのバックアップボールトを設定します。
AWS CLIを使用し設定するため、AWS CLIが使用できる環境で実施してください。
CLIは aws backup の put-backup-vault-notifications を使用します。
- -endpoint-url:バックアップボールトがあるAWSリージョンのエンドポイント
- -backup-vault-name: バックアップボールトの名前
- -sns-topic-arn:作成したSNSトピックのARN
- -backup-vault-events:イベントの種類
-backup-vault-eventsについて、今回はジョブが失敗した場合に通知を受け取りたいため
BACKUP_JOB_COMPLETEDを使用します。
aws backup put-backup-vault-notifications --endpoint-url https://backup.ap-northeast-1.amazonaws.com --backup-vault-name backup-vault-test --sns-topic-arn arn:aws:sns:ap-northeast-1:xxxxxxxxxxxx:aws-backup-test --backup-vault-events BACKUP_JOB_COMPLETED
正常にコマンドが実行された場合は、何も出力されません。
次は、バックアップボールトの設定が問題ないかを確認します。
get-backup-vault-notifications コマンドで、設定内容が確認できます。
aws backup get-backup-vault-notifications --backup-vault-name backup-vault-test
出力内容は以下の通りです。
{ "BackupVaultName": "backup-vault-test", "BackupVaultArn": "arn:aws:backup:ap-northeast-1:xxxxxxxxxxxx:backup-vault:backup-vault-test", "SNSTopicArn": "arn:aws:sns:ap-northeast-1:xxxxxxxxxxxx:aws-backup-test", "BackupVaultEvents": [ "BACKUP_JOB_COMPLETED" ] }
SNSサブスクリプションを作成
SNSのサブスクリプションを作成します。
Amazon SNS のコンソール画面を開き、サブスクリプションを選択。サブスクリプションの作成を選択します。
サブスクリプション作成の画面に移動しますので、トピック ARNで先ほど作成したトピックのARNを、
プロトコルでEメールを選択し、エンドポイントに通知先のアドレスを入力します。
次に、サブスクリプションフィルターポリシーを展開し、JSON エディタで以下を入力します。
{ "State": [ { "anything-but": "COMPLETED" } ] }
入力が完了したら、以降はデフォルトのままで、サブスクリプションの作成を選択し、サブスクリプションを作成します。
これで設定は完了です。
動作確認
実際に通知が来るか確認するため、オンデマンドバックアップを作成後、
ジョブ実行中に手動で停止してみます。
すると、「An AWS Backup job was stopped.」と記載されたメールが届きました。
まとめ
今回は AWS Backup のジョブが失敗した場合に、E メールで通知を受け取る方法についてご紹介しました。
バックアップが取得できていないと、有事の際の復旧が困難になるため、
ぜひ本機能を活用してみてください。
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitterサーバサイドエンジニア。IaCやCI/CDに対し日々奮闘中。健康のためにジムに通いたいと思い続け3年が経過しました。
Recommends
こちらもおすすめ
-
AWSサービスをTerraformでコード化する:AWS Chatbot編
2024.3.11
-
AWS Chatbotを使って、Slack通知をカスタマイズする
2024.2.15
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28
AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16