はじめまして、技術3課の冨塚です。
サーバーワークスへ入社して早3ヶ月が立ちました。AWS初心者が研修やお客様との対応を通じて学んだことをまとめていけたらと思います。
今回はS3のライフサイクルポリシーについて記事にしました。
やりたいこと
各種ログの出力先としてS3を指定しているので、ずっと保存しておくと利用容量が増える一方。特定のS3バケットで一定期間を過ぎたオブジェクト(ファイル)を削除したい。
そんな利用シーンで有効な方法を記載します。
本ブログエントリーではライフサイクルポリシーを使ってS3バケットに対する有効期限アクションの設定手順を記載します。移行アクションについては記載していませんのでご了承ください。
S3とは
改めてS3とは何かをAWS公式ドキュメントから抜粋
Amazon Simple Storage Service (Amazon S3) はインターネット用のストレージです。Amazon S3 を使用すると、データの大きさにかかわらず、ウェブ上のどんな場所からでもいつでも保存、取得することができます。
引用:https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/gsg/GetStartedWithS3.html
ライフサイクルとは
ライフサイクルについてこちらもAWS公式ドキュメントから抜粋
オブジェクトがライフサイクルを通じてコスト効率の高い方法で保存されるように管理するには、ライフサイクルを設定します。ライフサイクル設定は、Amazon S3 がオブジェクトのグループに適用するアクションを定義するルールのセットです。
引用:https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/object-lifecycle-mgmt.html
ライフサイクル管理の中でも下記の2アクションが用意されていて、今回は有効期限アクションについて記載します。
- 移行アクション
- 有効期限アクション
GUIからの設定手順
以下にマネジメントコンソール からの設定方法を記載します。
1. S3マネージメントコンソールへ遷移
- AWS マネジメントコンソール にサインインし、AWS S3コンソールを開きます
- https://console.aws.amazon.com/s3/
2. ライフサイクルポリシーを設定したいバケットを選択
- 設定したい対象バケットをクリックします
3. ライフサイクルポリシールールを追加
- バケット設定画面からライフサイクルポリシールールの追加を行います
- 管理タブ > 「+ライフサイクルルールの追加」をクリック
4. ライフサイクルルールの設定
- ルール名を入力し、「次へ」をクリック
- 何も設定せず「次へ」をクリック
- 現行バージョンへチェックを入れ、失効期限日数を指定して「次へ」をクリック
- 設定内容の確認画面が表示されますので、内容に問題がなければ「保存」をクリック
以上でライフサイクルルールの作成が完了となります。
5. ライフサイクルポリシーの確認
- 作成したライフサイクルルールの左にレ点が表示されていることを確認してください
オブジェクトの削除タイミングについて
有効期限アクションを設定したバケットについては、下記の基準で削除されます。
- オブジェクトの作成日(アップロードされた日)からの経過日数で削除対象を判定します
- オブジェクトが削除対象になった翌日の午前 00:00 UTC (協定世界時)に削除されます
- 日本時間の午前9:00頃になります
まとめ
経過日数に応じて特定S3バケットでオブジェクト(ファイル)を削除する方法は以上になります。
ライフサイクルポリシーを設定した直後に対象オブジェクト(ファイル)が削除されるわけでない点に配慮が必要かなと思います。 CLIからの設定方法についても後日追記できたらと考えています。
swx-tomitsuka (執筆記事の一覧)