Lifecycle ルールで S3 のストレージコストを最適化する
object を Standard-IA から Intelligent-Tiering、さらに Glacier Deep Archive へ自動的に移行する lifecycle rule を作成し、データの経過期間に応じて S3 のコストを下げます。

Lab Overview and Learning Objectives
開始前の注意
カバーの図が全体像を示しています。object は古くなるほど安価なストレージ層へ段階的に下げられ(Standard-IA → Intelligent-Tiering → Glacier Deep Archive)、最終的に削除できます。lifecycle rule は bucket 内の実際の object に作用し、1 日 1 回自動で実行されます。本番ではなくサンドボックスの bucket を使用してください。すでに Glacier Deep Archive にある object は restore しないと読み出せず、時間と費用がかかるため、日常的にアクセスするデータには適用しないでください。
- Amazon S3 を操作できる権限のある AWS アカウントを準備します。
- 確認用の object がいくつか入ったサンドボックス bucket を準備します。
- リージョンを統一し、使用した bucket 名を記録します。
1. Amazon S3 コンソールを開く
lifecycle rule は bucket 単位で設定するため、まず対象の bucket を開きます。Console 上部の検索バーに 'S3' と入力すると、Services グループに 'Scalable Storage in the Cloud' と説明された S3 が表示されます。すぐ下の S3 Glacier や AWS Snow Family と間違えないよう、この項目を選びます。続いて Buckets 一覧から対象の bucket を開きます。
- AWS Management Console にログインします。
- サービス検索で S3 と入力し、S3 - Scalable Storage in the Cloud を選択します。
- Buckets の一覧から lifecycle policy を適用する bucket を選択します。

2. Management タブを開く
bucket を開いたら、上部の横並びタブ(Objects、Metadata、Properties、Permissions、Metrics、Management...)から Management を選びます。Lifecycle rules のカードまでスクロールします。rule が未作成の場合、この領域には 'There are no lifecycle rules for this bucket' と表示されます。Create lifecycle rule ボタンはカード右上にあり、一覧が空のときは中央にも表示されます。
- Management タブを選択します。
- Lifecycle rules のセクションまでスクロールします。
- Create lifecycle rule を押します。

3. rule の名前と適用範囲を指定
Create lifecycle rule 画面は 2 つのブロックに分かれています。上のブロック(Lifecycle rule configuration)には 'Lifecycle rule name' 入力欄と 'Choose a rule scope' があり、'Limit the scope...'(Prefix/Tags で絞り込み)と 'Apply to all objects in the bucket' から選びます。下のブロック(Lifecycle rule actions)はアクションのチェックリストで、本ラボでは 'Transition current versions of objects between storage classes' だけをチェックします。2 つの黄色い警告ボックス(bucket 全体への適用、transition の request 課金)はどちらも確認チェックを入れないと先に進めません。
- Lifecycle rule name を入力します(例: LifecycleOptimizeStorage)。
- Apply to all objects in the bucket を選ぶか、Limit the scope of this rule using one or more filters で Prefix(source/ や images/ など)や Tags を指定します。
- bucket 全体に適用する場合は I acknowledge that this rule will apply to all objects in the bucket にチェックします。
- Lifecycle rule actions で Transition current versions of objects between storage classes にチェックします。
- transition ごとに request 課金が発生する旨の確認にチェックします。

4. storage class の transition を設定
この領域は 2 列で構成されます。左が 'Choose storage class transitions'(storage class を選ぶドロップダウン)、右が 'Days after object creation'(日数)です。'Add transition' を押すごとに行が追加され、余分な行は 'Remove' で削除できます。右側の 'Review transition and expiration actions' パネルには Day 0 → Day 30 → Day 60 → Day 90 のタイムラインが描かれ、入力したしきい値をその場で確認できます。
- Add transition を押し、Standard-IA を選び、Days after object creation に 30 を入力します。
- Add transition を押し、Intelligent-Tiering を選び、60 を入力します。
- Add transition を押し、Glacier Deep Archive を選び、90 を入力します。
- 下部の Review transition and expiration actions で Day 30、Day 60、Day 90 を確認します。

5. 内容を確認して rule を作成
作成すると次回の実行から実データに作用するため、事前にひととおり確認します。オレンジ色の Create rule ボタンはページ右下、Cancel の隣にあります。
- rule 名、適用範囲、アクション一覧を再確認します。
- rule が有効になる設定であることを確認します。
- Create rule を押します。
6. rule が有効か確認
作成後は Lifecycle configuration ページに戻り、'Lifecycle rules (1)' の表が表示されます。rule は Status 列が Enabled(緑のチェック)の間だけ機能します。Scope 列('Entire bucket')と Current version actions(transition の要約、例: 'Transition to Standard-IA, then...')を確認し、意図どおりか確かめます。後から編集や削除を行うのもこの画面です。
- Lifecycle rules で作成した rule を探します。
- Status 列が Enabled であることを確認します。
- Scope が Entire bucket、Current version actions が transition の流れを示していることを確認します。

7. クリーンアップ
学習用の bucket であれば、意図せず Glacier Deep Archive に移行されないよう rule を削除します。
- bucket の Management タブから Lifecycle rules を開きます。
- LifecycleOptimizeStorage を選択して Delete を押します。
- すでに Glacier Deep Archive へ移行した object がある場合は、必要になる前に restore します。時間と費用がかかります。
- 不要であれば object とサンドボックス bucket を削除します。