AWS Backup 結果を SNS で通知できるようになりました!

こんにちは 園部です。

AWS Backup 利用されていますか? AWS Backup でステータスを SNS 通知が可能となったようなので、やってみたいと思います!

ただし現時点(2019/10/07 時点)では、CLI からのみ設定が可能なようです。

AWS Backup とは

AWS Backup に関しては、弊社メンバーがいくつかのブログを書いてくれていますので、是非ご参照ください。

AWS再入門ブログリレー AWS Backup編

やってみる

今回は、すぐに結果が確認したいため、「オンデマンドバックアップ」を作成して、検証していきます。

SNS トピック作成と権限追加

アクセスポリシー高度な を選択します

JSON エディタで、AWS Backup から SNS を利用できる権限を追加します。

※ 以下は、公式ドキュメントより抜粋した部分をなります。 Resource 部分は作成しているリソースに修正します。

{
      "Sid": "__console_pub_0",
      "Effect": "Allow",
      "Principal": {
        "Service": "backup.amazonaws.com"
      },
      "Action": "SNS:Publish",
      "Resource": "arn:aws:sns:region:account-id:myTopic"
    }

トピックの作成 を選択します

サブスリプションの作成 は今回は割愛します。

バックアップボールト 作成

今回の SNS 通知は設定時に、バックアップボールト単位で指定する必要があります。

通知設定( CLI )

AWS CLI にて作業を進めていきます。

イベント種類

  • バックアップジョブ
    • BACKUP_JOB_STARTED
    • BACKUP_JOB_COMPLETED
  • ジョブを復元する
    • RESTORE_JOB_STARTED
    • RESTORE_JOB_COMPLETED
  • 復旧ポイント
    • RECOVERY_POINT_MODIFIED

設定用コマンド

  • PutBackupVaultNotifications ( 指定されたトピックおよびイベントの通知をオンにします。)
  • GetBackupVaultNotifications ( 指定したバックアップボルトのすべてのイベント通知を一覧表示します。)
  • DeleteBackupVaultNotifications ( 指定されたバックアップボルトのイベント通知を削除します。)

通知をオン

以下を指定したコマンドを実行します。

  • endpoint のリージョン
  • 作成した バックアップボールト名
  • 作成した SNS トピック
  • 通知するイベント
$ aws backup --endpoint-url https://backup.ap-northeast-1.amazonaws.com put-backup-vault-notifications --backup-vault-name sonobe-blog-vault --sns-topic-arn arn:aws:sns:ap-northeast-1:**アカウントID**:sonobe-aws-backup-blog --backup-vault-events BACKUP_JOB_STARTED BACKUP_JOB_COMPLETED RESTORE_JOB_STARTED RESTORE_JOB_COMPLETED RECOVERY_POINT_MODIFIED
$ 

コマンド実行後は正常終了すると何も戻りはありません。

通知設定を確認

以下のコマンドを実行することで、設定されている内容が確認出来ます。

$ aws backup --endpoint-url https://backup.ap-northeast-1.amazonaws.com get-backup-vault-notifications --backup-vault-name sonobe-blog-vault
{
    "BackupVaultName": "sonobe-blog-vault",
    "BackupVaultArn": "arn:aws:backup:ap-northeast-1:**アカウントID**:backup-vault:sonobe-blog-vault",
    "SNSTopicArn": "arn:aws:sns:ap-northeast-1:**アカウントID**:sonobe-aws-backup-blog",
    "BackupVaultEvents": [
        "BACKUP_JOB_STARTED",
        "BACKUP_JOB_COMPLETED",
        "RESTORE_JOB_STARTED",
        "RESTORE_JOB_COMPLETED",
        "RECOVERY_POINT_MODIFIED"
    ]
}

オンデマンドバックアップ作成と実行

EBS を対象としたバックアップを作成します。

実行中になりました。

SNS から通知が着ています! 本文内に 「 An AWS Backup job was started. 」 と記載されています。

完了すると再度通知が着ました! 「 An AWS Backup job was completed successfully. 」 と記載されています。

ジョブを停止

他の状態も検証したいため、ジョブが実行中に、手動で停止してみます。

中止の場合は、「 An AWS Backup job was stopped. 」と記載されたメールが届きました。

お片づけ

通知を削除

以下のコマンドを実行することで、設定されている内容が確認出来ます。

$ aws backup --endpoint-url https://backup.ap-northeast-1.amazonaws.com delete-backup-vault-notifications --backup-vault-name sonobe-blog-vault

通知設定を確認

以下のコマンドを実行することで、設定されている内容が確認出来ます。

$ aws backup --endpoint-url https://backup.ap-northeast-1.amazonaws.com get-backup-vault-notifications --backup-vault-name sonobe-blog-vault
An error occurred (ResourceNotFoundException) when calling the GetBackupVaultNotifications operation: Failed reading notifications from database for Backup vault sonobe-blog-vault

AWS Backup 削除

バックアップを削除した上で、バックアップボールトを削除します。

最後に

これで、バックアップは設定していたけど、実は取得出来ていなかった! という血の気の引くような事態は防げそうですね!あとは、マネジメントコンソールから設定出来るようになることを期待したいと思います!