この記事は
今年の1月にAWS Backupの機能がアップデートされ、AMIも自動で取得できるようになりました。
この記事ではタイトルにも記載されている通り、AWS Backupの設定およびBackupジョブ失敗時の通知設定方法を紹介します。
また、手順にも記載されておりますがBackupジョブの通知先としてSNSを設定する際、現状CLIを使った操作が必ず必要になるので注意してください。
①. Backupジョブ失敗時の通知先となるSNSトピックを作成
①-1. SNSトピックを作成
![fig1.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F5c7317af-ec81-3d78-3bf5-4732581c42d3.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=f9ba1800d394a52155bc8021a7d33c56)
①-2. JSONエディタを編集
SNSのARN(2箇所あるので注意) と AWSアカウントID の箇所は適宜置き換えること。
SNSのARNは arn:aws:sns:リージョン名:AWSアカウントID:SNSトピック名
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:Publish",
"SNS:RemovePermission",
"SNS:SetTopicAttributes",
"SNS:DeleteTopic",
"SNS:ListSubscriptionsByTopic",
"SNS:GetTopicAttributes",
"SNS:Receive",
"SNS:AddPermission",
"SNS:Subscribe"
],
"Resource": "SNSのARN",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "AWSアカウントID"
}
}
},
{
"Sid": "__console_pub_0",
"Effect": "Allow",
"Principal": {
"Service": "backup.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "SNSのARN"
}
]
}
②. バックアップボールトの作成
②-1. AWS Backupのコンソールへ移動
②-2. バックアップボールトを作成
![fig2.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F19b543f5-2f78-95cc-d1e1-a1f0cd78ec79.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=07b194aa2668f00372413f838283988c)
![fig3.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2Ffd734e0c-f87b-6b8d-1f2b-6f199959c547.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=de9b7fd71d7fc78e18edca24955c78f9)
②-3. AWS CLI を使用して、-backup-vault-events を BACKUP_JOB_COMPLETED に設定して put-backup-vault-notifications コマンドを実行
現状、コンソール画面から設定する手段が無いため、CLIを使って操作する必要があります。
- endpoint-url: バックアップボールトがある AWS リージョンのエンドポイントを入力 ※東京リージョンなら
https://backup.ap-northeast-1.amazonaws.com
- backup-vault-name: バックアップボールトの名前を入力
- sns-topic-arn: 作成した SNS トピックの ARN を入力
aws backup put-backup-vault-notifications --endpoint-url https://backup.eu-west-1.amazonaws.com --backup-vault-name examplevault --sns-topic-arn arn:aws:sns:eu-west-1:111111111111:exampletopic --backup-vault-events BACKUP_JOB_COMPLETED
②-4. get-backup-vault-notifications コマンドを実行し、SNSの設定が反映されていることを確認
- backup-vault-name: バックアップボールトの名前を入力
aws backup get-backup-vault-notifications --backup-vault-name examplevault
以下のように出力されればOKです。
{
"BackupVaultName": "examplevault",
"BackupVaultArn": "arn:aws:backup:eu-west-1:111111111111:backup-vault:examplevault",
"SNSTopicArn": "arn:aws:sns:eu-west-1:111111111111:exampletopic",
"BackupVaultEvents": [
"BACKUP_JOB_COMPLETED"
]
}
③. サブスクリプションの作成
③-1. SNSのコンソールへ移動後、①で作成したSNSトピックをクリック
③-2. サブスクリプションの作成を押す
![fig4.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F6319ee21-a196-f478-8bd9-34c92698d90f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=a498c40370c50c295a3845fad79aae99)
③-3. 詳細箇所を入力する
- トピック ARN:①で作成したSNSトピックを選択
プロトコル、エンドポイントは通知先に応じて適宜変更してください。
エンドポントにDatadogのWebhook URLを指定すると、Backupジョブの失敗通知をDatadogで受け取ることができます。
■参考記事:Datadog で AWS SNS を受け取る (RDS/ElastiCacheイベント)
今回はメールで失敗通知の受信を行います。
③-4. サブスクリプションフィルターポリシーに下記を貼り付ける
{
"State": [
{
"anything-but": "COMPLETED"
}
]
}
![fig5.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2Fbdadc8a0-80aa-d34e-d017-d3809cdd9cd8.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=0ba5dbe488290f825c27daa72790b1bd)
④. AWS Backupの構築
④-1. AWS Backupのコンソールへ移動
④-2. 「バックアッププランを作成」を押す
![fig6.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2Fc5c77f31-9b56-f468-2eaf-a8a95862625a.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=90f48c9c517a8a4dd653db3b6326b962)
④-3. 「新しいプランを立てる」を押し、バックアッププラン名を入力
![fig7.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2Fab6d295e-ac74-75e6-3d00-75abc0043341.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=8eb443028eea3d823bdce350b5b074eb)
④-4. スケジュールを設定
下記設定で毎日、06:00 AM 〜 07:00 AM (JST) の間にAMI取得が開始される。
![fig8.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F1f312283-3c5a-ff1d-edc7-bf51051f853b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=2e7e04e43fb1455c788fb201f4c12ec8)
④-5. ライフサイクル設定
以下の設定でBackup世帯数が2になる。バックアップボールトには②で作成したものを選択すること。
![fig9.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2Fda05e55b-0fdd-8f4e-f0a4-cd60db1dd022.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c6267d1d8572f936cb53ead9906de1bd)
④-6. 「リソースを割り当てる」を押す
![fig10.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2Ff73d2aa6-c7be-9d93-5e09-d409a584b29d.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=b116f554bab9f2f5c1a95f18f847d68e)
④-7. リソースを割り当てる
今回はタグで管理してます。インスタンスIDを直接指定することも可能です。
![fig11.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F37fa4088-ab14-a74e-bd94-78208c612e14.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=950004901dbdf901571a3a540118c6f4)
④-8.Backupを取得したい対象リソースに対してタグを付ける
![fig12.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F7715a1e0-45f5-d909-1db0-c9b3c2b85ef4.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=a63185add24d2714ce0593f550ac70ab)
これで設定は完了です。
⑤. Backupジョブ失敗の通知テスト
⑤-1. 保護されたリソースからオンデマンドバックアップの作成を押す
![fig13.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F4792f32c-f926-e111-2930-b480b0ce156c.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5e83ac5a92a1245201499237bdb63a14)
⑤-2. 設定を行いオンデマンドバックアップを作成を押す
ここの設定画面で大事な箇所は以下の2点
- 今すぐバックアップを作成
- バックアップボールトを②で作成したものにする
![fig14.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2Fd24377f3-b983-2494-9d76-f97a2511ba14.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5a4f6dfbceb88f3b939a22abeadd4f65)
⑤-3. バックアップジョブが実行されるのを確認
⑤-4. もう一度オンデマンドバックアップを作成を押す(設定もさっきと同じでOK)
![fig15.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F33d9259d-0c75-dadf-838b-aabe7ba1e156.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ee09c3440208aaac9d582a80cb688661)
⑤-5. 今度はバックアップジョブ IDをクリック
![fig16.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F33a68416-7920-50c5-c229-7e5a44bc5ce6.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d00fc09d715266cc8f6af092963b4006)
⑤-6. 停止を押す
![fig17.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F0183109e-4d8c-552c-d8dc-31f36f335b92.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=500450d2cf62e70bd8b7aac395a984bd)
⑤-7. ステータスが「中止しました」になることを確認
⑤-8. 停止したジョブの方のみ通知がきていることを確認
おまけ
AWS Backupで作成したAMIを削除するには
バックアップボールトから②で作成したものを選択
![fig19.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F9aeb5cf7-2d77-7a6c-25a4-301fd51a7ee1.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=136f1d43fa674c9e8c9b020ddf4c4fbc)
作成したAMIを選択し削除を押す
![fig20.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F237468%2F313a415e-478a-c25e-8d7c-8ff438eb60a4.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ace91fd6f2f8013e5e4d8fe7649d11ba)
実際にAMI Backupの取得に失敗した際に通知される内容
AMI Backupの取得が実際に失敗すると下記のように、 An AWS Backup job failed.
というメッセージが通知されるようです。
An AWS Backup job failed. Resource ARN : arn:aws:ec2:*****:*****:instance/*****. BackupJob ID : *****