かべぎわブログ

技術的なことについてかけたらいいな…

S3で一定期間が経過したファイルをGlacierに格納する

S3上にアクセスログを定期的に書き込むようなシステムがあったとして、古いアクセスログも残しておこなければならないんだけどそんなに頻繁に利用するわけではないから安価に保存したいといった場合があります。

これらを実現するために S3バケットにライフサイクルルールを設定し、古いログを削除するよう設定します。

ライフサイクルルールの設定手順

ライフサイクルルールの設定はバケット単位で設定します。

バケットの「管理」の「ライフサイクル」から「ライフサイクルルールの追加」を選択します。
f:id:kabegiwakun:20171123200009p:plain

ライフサイクルルールの「ルール名」に任意のルールを設定します。
フィルターの追加も任意で構いません。
これを設定するとtest/ディレクトリ以下のオブジェクトにのみライフサイクルを設定するといった設定ができます。
f:id:kabegiwakun:20171123200434p:plain

移行の設定で「現行バージョン」にチェックを入れ、オブジェクト作成から「AmazonGlacierへの移行の期限」を選択します。
オブジェクト作成からの日数にGlacierへ移行するまでの日数を入力します。
今回は確認のために1日としています。 f:id:kabegiwakun:20171123204855p:plain

設定の失効はとくに何も設定せずそのまま「次へ」でかまいません。
f:id:kabegiwakun:20171123204915p:plain

設定の内容が正しいことを確認して「保存」します。
f:id:kabegiwakun:20171123205219p:plain

S3の設定は以上で完了です。

実行結果

これが f:id:kabegiwakun:20171204162249p:plain
こうなります。
f:id:kabegiwakun:20171204162101p:plain

ストレージクラスがGlacierとなっているのがわかります。
Glacierに新たにボールドが作成されるわけでなく、S3から各オブジェクトを確認することになります。

Amazon Web Services実践入門 (WEB+DB PRESS plus)

Amazon Web Services実践入門 (WEB+DB PRESS plus)