5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS Backupの設定およびBackupジョブ失敗時の通知設定方法

Last updated at Posted at 2020-05-24

この記事は

今年の1月にAWS Backupの機能がアップデートされ、AMIも自動で取得できるようになりました。

この記事ではタイトルにも記載されている通り、AWS Backupの設定およびBackupジョブ失敗時の通知設定方法を紹介します。

また、手順にも記載されておりますがBackupジョブの通知先としてSNSを設定する際、現状CLIを使った操作が必ず必要になるので注意してください。

①. Backupジョブ失敗時の通知先となるSNSトピックを作成

①-1. SNSトピックを作成

fig1.png

①-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
fig3.png

②-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

③-3. 詳細箇所を入力する

  • トピック ARN:①で作成したSNSトピックを選択

プロトコル、エンドポイントは通知先に応じて適宜変更してください。
エンドポントにDatadogのWebhook URLを指定すると、Backupジョブの失敗通知をDatadogで受け取ることができます。

■参考記事:Datadog で AWS SNS を受け取る (RDS/ElastiCacheイベント)

今回はメールで失敗通知の受信を行います。

③-4. サブスクリプションフィルターポリシーに下記を貼り付ける

{
  "State": [
    {
      "anything-but": "COMPLETED"
    }
  ]
}

fig5.png

④. AWS Backupの構築

④-1. AWS Backupのコンソールへ移動

④-2. 「バックアッププランを作成」を押す

fig6.png

④-3. 「新しいプランを立てる」を押し、バックアッププラン名を入力

fig7.png

④-4. スケジュールを設定

下記設定で毎日、06:00 AM 〜 07:00 AM (JST) の間にAMI取得が開始される。

fig8.png

④-5. ライフサイクル設定

以下の設定でBackup世帯数が2になる。バックアップボールトには②で作成したものを選択すること。

fig9.png

④-6. 「リソースを割り当てる」を押す

fig10.png

④-7. リソースを割り当てる

今回はタグで管理してます。インスタンスIDを直接指定することも可能です。

fig11.png

④-8.Backupを取得したい対象リソースに対してタグを付ける

fig12.png

これで設定は完了です。

⑤. Backupジョブ失敗の通知テスト

※公式ドキュメントから引用

⑤-1. 保護されたリソースからオンデマンドバックアップの作成を押す

fig13.png

⑤-2. 設定を行いオンデマンドバックアップを作成を押す

ここの設定画面で大事な箇所は以下の2点

  • 今すぐバックアップを作成
  • バックアップボールトを②で作成したものにする
fig14.png

⑤-3. バックアップジョブが実行されるのを確認

⑤-4. もう一度オンデマンドバックアップを作成を押す(設定もさっきと同じでOK)

fig15.png

⑤-5. 今度はバックアップジョブ IDをクリック

fig16.png

⑤-6. 停止を押す

fig17.png

⑤-7. ステータスが「中止しました」になることを確認

⑤-8. 停止したジョブの方のみ通知がきていることを確認

ジョブを停止してから約8分後に通知が届きました。
fig18.png

おまけ

AWS Backupで作成したAMIを削除するには

バックアップボールトから②で作成したものを選択

fig19.png

作成したAMIを選択し削除を押す

fig20.png

実際にAMI Backupの取得に失敗した際に通知される内容

AMI Backupの取得が実際に失敗すると下記のように、 An AWS Backup job failed. というメッセージが通知されるようです。

An AWS Backup job failed. Resource ARN : arn:aws:ec2:*****:*****:instance/*****. BackupJob ID : *****
5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?