awss3cost-optimization

Lifecycle ルールで S3 のストレージコストを最適化する

TPThuanPD2026年9月3日30分新着
AWS

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

S3 object のライフサイクル図: 30 日後に Standard-IA、60 日後に Intelligent-Tiering、90 日後に Glacier Deep Archive、その後削除

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 しないと読み出せず、時間と費用がかかるため、日常的にアクセスするデータには適用しないでください。

  1. Amazon S3 を操作できる権限のある AWS アカウントを準備します。
  2. 確認用の object がいくつか入ったサンドボックス bucket を準備します。
  3. リージョンを統一し、使用した bucket 名を記録します。
目的:ラボ完了後、object の経過日数に応じて storage class を段階的に下げる lifecycle rule が有効になります。30 日後に Standard-IA、60 日後に Intelligent-Tiering、90 日後に Glacier Deep Archive です。
1

1. Amazon S3 コンソールを開く

lifecycle rule は bucket 単位で設定するため、まず対象の bucket を開きます。Console 上部の検索バーに 'S3' と入力すると、Services グループに 'Scalable Storage in the Cloud' と説明された S3 が表示されます。すぐ下の S3 Glacier や AWS Snow Family と間違えないよう、この項目を選びます。続いて Buckets 一覧から対象の bucket を開きます。

  1. AWS Management Console にログインします。
  2. サービス検索で S3 と入力し、S3 - Scalable Storage in the Cloud を選択します。
  3. Buckets の一覧から lifecycle policy を適用する bucket を選択します。
AWS Management Console で S3 サービスを検索
AWS Management Console で S3 サービスを検索
完了条件:設定対象の bucket の詳細ページが開きます。
2

2. Management タブを開く

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

  1. Management タブを選択します。
  2. Lifecycle rules のセクションまでスクロールします。
  3. Create lifecycle rule を押します。
Lifecycle rules と Create lifecycle rule ボタンがある S3 bucket の Management タブ
Lifecycle rules と Create lifecycle rule ボタンがある S3 bucket の Management タブ
完了条件:Create lifecycle rule のフォームが開きます。rule が未作成の場合は No lifecycle rules と表示されます。
3

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 課金)はどちらも確認チェックを入れないと先に進めません。

  1. Lifecycle rule name を入力します(例: LifecycleOptimizeStorage)。
  2. Apply to all objects in the bucket を選ぶか、Limit the scope of this rule using one or more filters で Prefix(source/ や images/ など)や Tags を指定します。
  3. bucket 全体に適用する場合は I acknowledge that this rule will apply to all objects in the bucket にチェックします。
  4. Lifecycle rule actions で Transition current versions of objects between storage classes にチェックします。
  5. transition ごとに request 課金が発生する旨の確認にチェックします。
rule 名 LifecycleOptimizeStorage と bucket 全体の範囲を設定した Create lifecycle rule 画面
rule 名 LifecycleOptimizeStorage と bucket 全体の範囲を設定した Create lifecycle rule 画面
注意:既定では 128 KB 未満の object は移行されません。transition のコストが節約額を上回る場合があるためです。
完了条件:rule に名前と適用範囲が設定され、現行バージョンの storage class 移行アクションが有効になります。
4

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 のタイムラインが描かれ、入力したしきい値をその場で確認できます。

  1. Add transition を押し、Standard-IA を選び、Days after object creation に 30 を入力します。
  2. Add transition を押し、Intelligent-Tiering を選び、60 を入力します。
  3. Add transition を押し、Glacier Deep Archive を選び、90 を入力します。
  4. 下部の Review transition and expiration actions で Day 30、Day 60、Day 90 を確認します。
Standard-IA 30 日、Intelligent-Tiering 60 日、Glacier Deep Archive 90 日の 3 つの transition とレビュー用タイムライン
Standard-IA 30 日、Intelligent-Tiering 60 日、Glacier Deep Archive 90 日の 3 つの transition とレビュー用タイムライン
完了条件:タイムラインは次のようになります。Day 0 で object をアップロード、Day 30 で Standard-IA、Day 60 で Intelligent-Tiering、Day 90 で Glacier Deep Archive へ移行。
5

5. 内容を確認して rule を作成

作成すると次回の実行から実データに作用するため、事前にひととおり確認します。オレンジ色の Create rule ボタンはページ右下、Cancel の隣にあります。

  1. rule 名、適用範囲、アクション一覧を再確認します。
  2. rule が有効になる設定であることを確認します。
  3. Create rule を押します。
完了条件:rule が作成され、bucket の Lifecycle configuration ページに戻ります。
6

6. rule が有効か確認

作成後は Lifecycle configuration ページに戻り、'Lifecycle rules (1)' の表が表示されます。rule は Status 列が Enabled(緑のチェック)の間だけ機能します。Scope 列('Entire bucket')と Current version actions(transition の要約、例: 'Transition to Standard-IA, then...')を確認し、意図どおりか確かめます。後から編集や削除を行うのもこの画面です。

  1. Lifecycle rules で作成した rule を探します。
  2. Status 列が Enabled であることを確認します。
  3. Scope が Entire bucket、Current version actions が transition の流れを示していることを確認します。
LifecycleOptimizeStorage が Enabled 状態で表示された Lifecycle rules 一覧
LifecycleOptimizeStorage が Enabled 状態で表示された Lifecycle rules 一覧
完了条件:LifecycleOptimizeStorage が Enabled として一覧に表示されます。lifecycle rule は 1 日 1 回実行されるため、設定したしきい値で object が順に移行します。
7

7. クリーンアップ

学習用の bucket であれば、意図せず Glacier Deep Archive に移行されないよう rule を削除します。

  1. bucket の Management タブから Lifecycle rules を開きます。
  2. LifecycleOptimizeStorage を選択して Delete を押します。
  3. すでに Glacier Deep Archive へ移行した object がある場合は、必要になる前に restore します。時間と費用がかかります。
  4. 不要であれば object とサンドボックス bucket を削除します。
完了条件:本ラボの lifecycle rule が bucket に残っていない状態です。

参考ドキュメント