はじめに
S3(Simple Storage Service)は、AWSが提供するオブジェクトストレージのサービスです。
オブジェクトストレージとは、データを「オブジェクト」という単位で管理するストレージです。
S3ではその特徴を活かして、高品質なスケーラビリティ、データ可用性、セキュリティ、パフォーマンスを提供しています。
S3には保存するデータに応じた様々なストレージクラスが用意されています。
ストレージクラスにご興味があれば、こちらの記事で解説しているのでご参照ください。
しかし、保存したデータは日数が経つと利用頻度や重要性が低下していきます。
そこで活躍するのが「ライフサイクルルール」です。
今回は、「ライフサイクルルール」の機能と設定方法を解説します。
ライフサイクルルールとは?
文書や画像、動画などのデータは、作成/取得した直後は頻繁に利用するため、ご自身のPCなど素早くアクセスできる場所に保存します。
しかし、1ヶ月、半年、1年と経過すると利用頻度はどんどん低下することが多いです。
そうなると、保存場所の整理として外部ストレージや媒体(DVDやCDなど)に移動することになります。
ライフサイクルルールは、この「保存場所の整理」と似た機能なります。
すなわち、保存日数に応じて格納コストが安いストレージへオブジェクトを自動的に移動してくれる機能です。
注意点として、ライフサイクルルールでのストレージクラスの移動は一方通行になります。
執筆時点で、設定可能なストレージクラスの移動ルートは以下となります。
設定方法
設定画面の表示
AWSマネジメントコンソールのログインし、S3でライフサイクルルールを設定したいバゲットを選択します。
バゲットのメニューから[管理]を選択し、[ライフサイクルルールを作成する]をクリックします。
設定項目の説明
ライフサイクルルールの設定
項目 | 設定内容 |
---|---|
ライフサイクルルール名 | 作成するルールの名称を設定 |
ルールスコープを選択 | ルールを適用する範囲(スコープ)を設定 |
[ルールスコープを選択]で、[1つ以上のフィルターを使用してこのルールのスコープを制限する]を選択した場合は以下が設定できます。
項目 | 設定内容 |
---|---|
プレフィックス | オブジェクトのプレフィックスでルールの適用有無を判断します。 ※プレフィックスとは、オブジェクトの完全なパスに対する前方の文字列です。 |
オブジェクトタグ | オブジェクトに付加されたタグでルールの適用有無を判断します。 |
オブジェクトサイズ | オブジェクトのサイズでルールの適用有無を判断します。 |
ライフサイクルルールのアクション
オブジェクトを「移動する」や「有効期限切れにする」などを設定します。
※詳細は、「アクションの解説」(後述)に記載しています。
移行と有効期限切れのアクションを確認
[ライフサイクルルールのアクション]で設定した内容が表示され、視覚的に確認できます。
アクションの解説
「ライフサイクルルールのアクション」で選択できる内容を1つずつ確認します。
オブジェクトの最新バーションをストレージクラス間で移動
指定した日数が経過したオブジェクトを別のストレージクラスへ移動させるルールです。
移動対象は、最新バージョンのみです。
※バージョン管理を設定している場合、過去バージョンのオブジェクトにこのルールは適用されません。
オブジェクトの非現行バーションをストレージクラス間で移動
指定した日数が経過したオブジェクトを別のストレージクラスへ移動させるルールです。
移動対象は、バージョン管理を設定している場合の過去バージョンのみです。
※最新バージョンのオブジェクトにこのルールは適用されません。
オブジェクトの現行バーションを有効期限切れにする
指定した日数が経過したオブジェクトに「削除」のような処理を行います。
「削除」のような処理は、バゲットのバージョニング設定に応じて動作が変化します。
バージョニング | |
---|---|
あり | オブジェクトに削除マーカーが設定される |
なし | オブジェクトは削除される |
オブジェクトの非現行バーションを完全に削除
指定した日数が経過したオブジェクトを削除します。
削除対象は、バージョン管理を設定している場合の過去バージョンのみです。
有効期限切れのオブジェクト削除マーカーまたは不完全なマルチパートアップロードを削除
このアクションは、ゴミ(と想定される)データの削除です。
「期限切れのオブジェクト削除マーカー」とは、バージョニングが有効なバゲットで削除マーカーが付いているが過去バージョンが存在しない状態です。
「削除した」という管理データはあるが過去バージョンがないため復元できないため、ゴミと想定できます。
「不完全なマルチパートアップロード」とは、大容量データの分割アップロード(マルチパートアップロード)で失敗した時、成功した一部の分割データが残留している状態です。
一部のデータだけでは利用できないため、ゴミと想定できます。
設定例
シンプルに、標準ストレージに格納したオブジェクトを「標準 → 標準 – IA(90日後) → 削除(180日後)」となるように設定します。
項目 | 設定値 | 説明 |
---|---|---|
ライフサイクルルール名 | life-cycle-test | 自由な名前を設定します。 |
ルールスコープの選択 | バケット内のすべての オブジェクトに適用 | すべてのオブジェクトを対象にすると 「ルール適用の了承」を求められます。 |
ライフサイクル アクション① | オブジェクトの最新バーションを ストレージクラス間で移動 ├移行先:標準 – IA └日数 :90日 | ストレージクラスを移動するルールを 設定します。 |
ライフサイクル アクション② | オブジェクトの現行バーションを 有効期限切れにする └有効期限切れ:180日 | オブジェクトを削除するルールを 設定します。 |
ルールが作成されるとバゲットの「ライフサイクル設定」の一覧に表示されます。
設定内容の詳細を表示すると、ライフサイクルルールの詳細を確認できます。
最後に
S3は、大容量データを無尽蔵に保管できる安全性の高いストレージサービスです。
しかし、無尽蔵にデータを保管できることで重要度が低いデータもとりえず保管してしまいます。
「とりあえず保管」データは整理が難しく、放置するとS3の利用コストが増加します。
ライフサイクルルールでは、このようなムダなコスト増を防ぐため、日数というルールに基づいてストレージクラスを移動させ、最終的には削除することができます。
S3の利用料は格納したデータ量に応じて加算されます。
この価格設定は安いと思いますが、ゴミデータを大量に保管してしまうと請求が高額になってしまいます。
ライフサイクルルールのように、AWSに備わっている機能を有効活用して、便利なサービスを納得価格で利用しましょう!
コメント