2021年7月18日日曜日

AWS Backupの状況をSNSで通知する■

 先にまとめ

AWS Backupの完了などをSNSで通知するにはAWS BackupにSNSを紐付けるのが良い。

手順は、

  • SNSを作る
  • Backupを作る
  • CLIからSNSを紐付ける

となる。

こちらの公式blogに詳しく書かれています。

https://aws.amazon.com/jp/blogs/storage/configuring-notifications-to-monitor-aws-backup-jobs/

---

動機

DynamoDBはRestoreに時間がかかるし読めない(サイズによらない)ということで、通知できないものかと思って調べていました。

Restore can take several hours to complete. (完了するのに数時間かかることがあります)の表示

答えにはたどり着いたのですが、つい最近公式ブログが書かれたので一見落着してしまいました。



調べたこと

EventBridgeを使う案

これも可能です。以下はMusicという名前のチュートリアルのテーブルを復元したときの通知の文面ですが、JSONでの長い文が届いてウッとなってしまいます。

これは変えられないんでしょうか。やたらと情報が多すぎて危険な感じ。これはSNSで共通ですが・・・(TODO)

{"version":"0","id":"48fe1557-f3ca-c8ee-8206-fc1b290a5b5b","detail-type":"AWS API Call via CloudTrail","source":"aws.dynamodb","account":"111122223333","time":"2021-07-16T02:02:54Z","region":"ap-northeast-1","resources":[],"detail":{"eventVersion":"1.08","userIdentity":{"type":"IAMUser","principalId":"AAAAAAAAAAAAAAAAAA","arn":"arn:aws:iam::111122223333:user/username","accountId":"111122223333","accessKeyId":"AAAAAAAAAAAAAAAAAA","userName":"username","sessionContext":{"attributes":{"creationDate":"2021-07-15T20:32:29Z","mfaAuthenticated":"false"}}},"eventTime":"2021-07-16T02:02:54Z","eventSource":"dynamodb.amazonaws.com","eventName":"ListContributorInsights","awsRegion":"ap-northeast-1","sourceIPAddress":"xxx.xxx.xxx.xxx","userAgent":"console.amazonaws.com","requestParameters":{"tableName":"Music-restore-from-console","maxResults":0.0},"responseElements":null,"requestID":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","eventID":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","readOnly":false,"resources":[{"accountId":"111122223333","type":"AWS::DynamoDB::Table","ARN":"arn:aws:dynamodb:ap-northeast-1:111122223333:table/Music-restore-from-console"}],"eventType":"AwsApiCall","apiVersion":"2012-08-10","managementEvent":true,"recipientAccountId":"111122223333","eventCategory":"Management"}}

AWS BackupでSNSを登録する案

BackupからSNSを設定して届く文面の例です。こちらの方がスッキリします。

An AWS Backup Restore job was started. Restored Recovery point ARN : arn:aws:dynamodb:ap-northeast-1:111122223333:table/Music/backup/AAAAAAAAAAAAAA-AAAAAAAA. Restore Job Id : AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA


注意点: 上記どちらも、5分間隔の確認なので遅れがあります。

Monitor events using EventBridge

You can use EventBridge to monitor AWS Backup events. A common use case is to receive an alarm when a backup job fails. AWS Backup emits events to EventBridge in a best-effort manner every 5 minutes.

https://docs.aws.amazon.com/aws-backup/latest/devguide/eventbridge.html

boto3で逐次確認する

かなりマニュアル操作がありますが、確認時間を例えば10秒間隔でも設定できます。単にpythonのsleepで待ち時間を作ってStateを確認するだけです。すぐに結果を知りたいときには使えそうです。

コードは省略。どこか別に書くかもしれません。



 

0 件のコメント:

コメントを投稿