Amazon S3 Glacierからの復元周りの通知受け取りを試してみた #reinvent
はじめに
こんにちは、福岡オフィス所属、IT推進室の井手です。
先日、Amazon GlacierがAmazon S3の一部となり、さらに機能追加がいくつが発表されました。
Amazon Glacier改めAmazon S3 Glacierがより利用しやすくなりました #reinvent
Glacierの取り出し中に復元速度を変更できるようになりました #reinvent
Glacierからの復元周りの通知受け取りを試してみたのでアップデート紹介も兼ねてご紹介いたします。
やってみた
概要
既存機能のs3 Bucketでのイベント通知(オブジェクト作成、削除等)機能にGlacierの以下のイベントが追加されています。
- Glacier からの復元の開始
- Glacier からの復元の完了
今回は、s3 -> SNSでメールを受信を試します。
SNSトピックの設定
SNSトピックの作成については割愛しますが、以下のように作成しています。
※s3からのイベント通知ができるようにトピックのポリシーの編集をして下さい。例えばここでは検証の為「次のユーザーにこのトピックへのメッセージの発行を許可」で全員としています。
バケットの作成
まずはバケットを作成します。
$ aws s3 mb s3://s3-glacier-notification-test-bucket make_bucket: s3-glacier-notification-test-bucket
ファイルのアップロード
次に適当なファイルをアップロードします。
$ aws s3api put-object \ --bucket s3-glacier-notification-test-bucket \ --key s3-glacier-notification.txt \ --body /Users/ide.daisuke/Desktop/s3-glacier-notification.txt \ --storage-class GLACIER
コンソールで作成が確認できました。
イベント通知の設定
notification-configuration用のjsonファイルを作成します。
{ "TopicConfigurations": [ { "TopicArn": "arn:aws:sns:ap-northeast-1:xxxxxxxxxxxx:test_s3_notification", "Events": [ "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed" ] } ] }
上記を元にイベント通知を設定します。
$ aws s3api put-bucket-notification-configuration \ --bucket s3-glacier-notification-test-bucket \ --notification-configuration file://notification.json
こちらもコンソールで設定が確認できました。
復元する
restore-request用のjsonファイルを作成します。通常だと検証には時間がかかりすぎるのでExpedited(迅速な取り出し)に設定しています。
{ "Days": 1, "GlacierJobParameters": { "Tier": "Expedited" } }
上記を元に復元開始します。
aws s3api restore-object \ --key s3-glacier-notification.txt \ --restore-request file://restore-request.json
確認
まずコンソールで確認した所、復元ができました。
次に、メールを確認した所、開始と完了で通知が来ていました。
さいごに
個人的にあまり馴染みのなかったGlacierですが今回のアップデートにより、復元開始 - 完了を監視しやすくなりよりGlacierをアプリケーションに組み込みやすくなったのではないかと思いました。どなたかの参考になれば幸いです。