このメモは
AWS Backupのバックアップ失敗通知をSlackで受け取るための設定を導入したため、その際の設定手順をまとめたものです。
本記事内の設定はあくまで検証用の簡易的な設定のため、細かい設定をする場合は、適宜要件に沿った内容に修正する必要があります。
1.SNSトピック作成
1-1. Backupジョブ失敗時の通知先となるSNSトピックを作成する
トピックのタイプはスタンダード、アクセスポリシーに関してはアドバンストを選択します。
1-2. アクセスポリシーを設定する
今回の設定ではAWS Backupからのバックアップに関する通知がAmazon EventBridgeを介してSNSトピックへ送られるため、Amazon EventBridgeからのアクセスを許可するポリシーを設定します。
SNSのARN の箇所は適宜置き換えること。
SNSのARNは arn:aws:sns:リージョン名:AWSアカウントID:SNSトピック名
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:ap-northeast-1:[アカウント番号]:[トピック名]" } ] }
2.AWS Chatbot設定
2-1.AWS ChatbotにてSlackに通知を行うチャネルを作成する
クライアントにSlackを設定して、アクセス権限リクエスト画面にてリクエストの許可を行う
AWS ChatbotがSlackワークスペースにアクセスできるようになります。
2-2.チャネルを設定する
設定済みクライアントの中にSlackワークスペースが追加されます。
次に、「新しいチャネルを設定」から設定をしていきます。
最初にチャネルの設定名を決めていきます。後から変更ができない点にご注意ください。
連携したいSlackチャンネルのURLもしくはURL末尾のIDをコピーし、ID欄にペーストします。
※今回は通知用に作成したSlackのパブリックチャンネルを使っています。
アクセス許可設定では、ロール設定を「チャネルロール」、「テンプレートを使用してIAMロールを作成する」を選択します。
※AWS Chatbotを使用したことがない人はIAMロールの作成が必要になります。
ポリシーテンプレートとはアクセス許可に関するポリシーをIAMロールに適用するもので、複数設定できます。今回は複雑な設定はせずデフォルトの「通知のアクセス許可」のみ設定します。
チャネルガードレールポリシーに関しても、今回はデフォルトで設定します。
通知オプション設定では、手順1で作成したSNSトピックとトピックを作成したリージョンを選択します。
また、ここまでの設定を確認し問題がなければ設定を選択してチャネルを作成します。
3.AWS Backup vault作成
3-1.AWS Backupのコンソールへ移動する
3-2.バックアップボールトを作成する
4.Amazon EventBridgeルールの設定
※ AWS Chatbotは2024/3/19時点ではAWS Backupのイベントはサポートされていないため、EventBrige経由で通知するように設定する。
4-1.Amazon EventBridgeのコンソールへ移動する
4-2.Amazon EventBridgeルールを作成する
イベントソースではその他を選択し、サンプルイベントタイプではAWSイベントを選択する。
メソッドではカスタムパターン(JSONエディタ)を選択し、
イベントパターンには下記を貼り付ける。
※以下のイベントパターンを設定するとAWS Backupからのバックアップ失敗、中止、期限切れを検知します。
参考:EventBridgeを使用したAWS Backupイベントのモニタリング
{ "detail": { "state": ["FAILED","ABORTED","EXPIRED"] }, "detail-type": ["Backup Job State Change"], "source": ["aws.backup"] }
ターゲットタイプではAWSのサービスを選択し、手順1で設定したSNSトピックをターゲットとして設定する。
タグの設定では任意のタグを設定する。
レビューと作成にて、内容を確認し問題なければルールの作成を選択する。
5.AWS Backupの構築
5-1.AWS Backupのコンソールへ移動する
5-2.バックアッププランを作成する
バックアッププランのオプションでは、新しいプランを立てるを選択する。
バックアップボールトでは、手順3で作成したバックアップボールトを選択する。
その他の項目は都度、要件に沿った内容で設定してください。
5-3.リソースの割り当てを設定する
リソースの選択では全てのリソースタイプを含めるを選択し、以下のタグを設定する。
※このリソース割り当てを行うことで、以下のタグが付与されているリソースがこのバックアッププランで保護されます。
キー | 値 |
---|---|
cloudpack_backup | enabled |
6.タグ設定
6-1.対象のリソースにタグを設定する
対象のリソースに手順5-3で設定した以下のタグを設定する
※今回はEC2インスタンスで設定
キー | 値 |
---|---|
cloudpack_backup | enabled |
7. Backupジョブ失敗の通知テスト
参考:失敗した AWS Backup ジョブの通知を受け取るにはどうすればよいですか?
7-1.保護されたリソースからBackup取得対象のインスタンスを選択する
※保護されたリソース欄に対象のリソースが表示されるが、これは1回以上backup取得済みのリソースが表示されるため初回backupの場合は表示されない
7-2.オンデマンドバックアップの作成を選択する
7-3.設定を行いオンデマンドバックアップを作成する
- 対象のリソースを選択(今回はEC2インスタンス)
- 今すぐバックアップを選択
- バックアップボールドは手順3で作成したものを選択
7-4.バックアップジョブが実行されることを確認する
7-5. 再度オンデマンドバックアップを作成を選択する
※設定も先ほどと同じで実行する
7-6.今度はバックアップジョブ IDをクリックし、バックアップジョブの停止を選択する
7-7.ステータスが「中止しました」になることを確認する
7-8.停止したジョブの方のみSlackに通知されたことを確認する
ジョブを停止してから約2分後に通知が届きました。
※今回の通知テストはバックアップ中止での通知でしたが、手順4のAmazon EventBridgeルールにてAWS Backupからの失敗、中止、期限切れイベントを検知する設定をしているため、失敗でも同様に通知される形となります。
終わりに
AWS Backupのバックアップ失敗時の通知をSlackで受け取る設定について、AWS Chatbotは2024/3/19時点ではAWS Backupのイベントはサポートされていないため、EventBrige経由で通知する方法をご紹介しました。
今回ご紹介した手法を参考にしていただければ幸いです。
最後まで閲覧いただきありがとうございました。