この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
こんにちは、福岡オフィス所属、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ファイルを作成します。
notification.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(迅速な取り出し)に設定しています。
restore-request.json
{
"Days": 1,
"GlacierJobParameters": {
"Tier": "Expedited"
}
}
上記を元に復元開始します。
aws s3api restore-object \
--key s3-glacier-notification.txt \
--restore-request file://restore-request.json
確認
まずコンソールで確認した所、復元ができました。
次に、メールを確認した所、開始と完了で通知が来ていました。
さいごに
個人的にあまり馴染みのなかったGlacierですが今回のアップデートにより、復元開始 - 完了を監視しやすくなりよりGlacierをアプリケーションに組み込みやすくなったのではないかと思いました。どなたかの参考になれば幸いです。