先にまとめ
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 件のコメント:
コメントを投稿