【AWS S3】ライフサイクルルールでオブジェクトを低価格ストレージへ自動移動させる

スキルアップ

はじめに

S3(Simple Storage Service)は、AWSが提供するオブジェクトストレージのサービスです。

オブジェクトストレージとは、データを「オブジェクト」という単位で管理するストレージです。
S3ではその特徴を活かして、高品質なスケーラビリティデータ可用性セキュリティパフォーマンスを提供しています。

S3には保存するデータに応じた様々なストレージクラスが用意されています。
ストレージクラスにご興味があれば、こちらの記事で解説しているのでご参照ください。

しかし、保存したデータは日数が経つと利用頻度や重要性が低下していきます。
そこで活躍するのが「ライフサイクルルール」です。

今回は、「ライフサイクルルール」の機能と設定方法を解説します。

本記事は、2022年11月時点でのAWS公式情報に基づいて作成しています。
最新情報は、AWSの公式サイトをご確認ください。

ライフサイクルルールとは?

文書や画像、動画などのデータは、作成/取得した直後は頻繁に利用するため、ご自身のPCなど素早くアクセスできる場所に保存します。
しかし、1ヶ月、半年、1年と経過すると利用頻度はどんどん低下することが多いです。
そうなると、保存場所の整理として外部ストレージや媒体(DVDやCDなど)に移動することになります。

ライフサイクルルールは、この「保存場所の整理」と似た機能なります。
すなわち、保存日数に応じて格納コストが安いストレージへオブジェクトを自動的に移動してくれる機能です

注意点として、ライフサイクルルールでのストレージクラスの移動は一方通行になります。
執筆時点で、設定可能なストレージクラスの移動ルートは以下となります。

引用:AWS公式サイト(ユーザガイド)

設定方法

設定画面の表示

AWSマネジメントコンソールのログインし、S3でライフサイクルルールを設定したいバゲットを選択します。
バゲットのメニューから[管理]を選択し、[ライフサイクルルールを作成する]をクリックします。

設定項目の説明

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

項目設定内容
ライフサイクルルール名作成するルールの名称を設定
ルールスコープを選択ルールを適用する範囲(スコープ)を設定

[ルールスコープを選択]で、[1つ以上のフィルターを使用してこのルールのスコープを制限する]を選択した場合は以下が設定できます。

項目設定内容
プレフィックスオブジェクトのプレフィックスでルールの適用有無を判断します。
※プレフィックスとは、オブジェクトの完全なパスに対する前方の文字列です。
オブジェクトタグオブジェクトに付加されたタグでルールの適用有無を判断します。
オブジェクトサイズオブジェクトのサイズでルールの適用有無を判断します。

ライフサイクルルールのアクション

オブジェクトを「移動する」や「有効期限切れにする」などを設定します。
※詳細は、「アクションの解説」(後述)に記載しています。

移行と有効期限切れのアクションを確認

[ライフサイクルルールのアクション]で設定した内容が表示され、視覚的に確認できます。

アクションの解説

「ライフサイクルルールのアクション」で選択できる内容を1つずつ確認します。

オブジェクトの最新バーションをストレージクラス間で移動

指定した日数が経過したオブジェクトを別のストレージクラスへ移動させるルールです。

移動対象は、最新バージョンのみです。
※バージョン管理を設定している場合、過去バージョンのオブジェクトにこのルールは適用されません。

オブジェクトの非現行バーションをストレージクラス間で移動

指定した日数が経過したオブジェクトを別のストレージクラスへ移動させるルールです。

移動対象は、バージョン管理を設定している場合の過去バージョンのみです。
最新バージョンのオブジェクトにこのルールは適用されません。

オブジェクトの現行バーションを有効期限切れにする

指定した日数が経過したオブジェクトに「削除」のような処理を行います。
「削除」のような処理は、バゲットのバージョニング設定に応じて動作が変化します。

バージョニング
ありオブジェクトに削除マーカーが設定される
なしオブジェクトは削除される

オブジェクトの非現行バーションを完全に削除

指定した日数が経過したオブジェクトを削除します
削除対象は、バージョン管理を設定している場合の過去バージョンのみです。

有効期限切れのオブジェクト削除マーカーまたは不完全なマルチパートアップロードを削除

このアクションは、ゴミ(と想定される)データの削除です。

期限切れのオブジェクト削除マーカー」とは、バージョニングが有効なバゲットで削除マーカーが付いているが過去バージョンが存在しない状態です。
「削除した」という管理データはあるが過去バージョンがないため復元できないため、ゴミと想定できます。

不完全なマルチパートアップロード」とは、大容量データの分割アップロード(マルチパートアップロード)で失敗した時、成功した一部の分割データが残留している状態です。
一部のデータだけでは利用できないため、ゴミと想定できます。

設定例

シンプルに、標準ストレージに格納したオブジェクトを「標準 → 標準 – IA(90日後) → 削除(180日後)」となるように設定します。

項目設定値説明
ライフサイクルルール名life-cycle-test自由な名前を設定します。
ルールスコープの選択バケット内のすべての
オブジェクトに適用
すべてのオブジェクトを対象にすると
「ルール適用の了承」を求められます。
ライフサイクル
アクション①
オブジェクトの最新バーションを
ストレージクラス間で移動
├移行先:標準 – IA
└日数 :90日
ストレージクラスを移動するルールを
設定します。
ライフサイクル
アクション
オブジェクトの現行バーションを
有効期限切れにする
└有効期限切れ:180日
オブジェクトを削除するルールを
設定します。

ルールが作成されるとバゲットの「ライフサイクル設定」の一覧に表示されます。

設定内容の詳細を表示すると、ライフサイクルルールの詳細を確認できます。

最後に

S3は、大容量データを無尽蔵に保管できる安全性の高いストレージサービスです。
しかし、無尽蔵にデータを保管できることで重要度が低いデータもとりえず保管してしまいます。

「とりあえず保管」データは整理が難しく、放置するとS3の利用コストが増加します
ライフサイクルルールでは、このようなムダなコスト増を防ぐため、日数というルールに基づいてストレージクラスを移動させ、最終的には削除することができます。

S3の利用料は格納したデータ量に応じて加算されます。
この価格設定は安いと思いますが、ゴミデータを大量に保管してしまうと請求が高額になってしまいます。

ライフサイクルルールのように、AWSに備わっている機能を有効活用して、便利なサービスを納得価格で利用しましょう!

コメント

タイトルとURLをコピーしました