ストレージ

S3 ライフサイクルポリシー|自動クラス移行と削除の設計

S3 ライフサイクルは 「30 日後に IA、90 日後に Glacier、365 日後に削除」のような自動ルール。オブジェクトの経過日数に応じて、クラス移行(Transition)または削除(Expiration)を自動実行する。コスト最適化と運用自動化の両面で必須機能。...

オブジェクトを時間経過で自動的にクラス移行・削除するルール。コスト最適化の主役。


1. 概要(端的に)

S3 ライフサイクルは 「30 日後に IA、90 日後に Glacier、365 日後に削除」のような自動ルール。オブジェクトの経過日数に応じて、クラス移行(Transition)または削除(Expiration)を自動実行する。コスト最適化と運用自動化の両面で必須機能。


2. 何ができるか

  • クラス移行(Transition):時間経過で安いクラスへ自動移動
  • オブジェクト削除(Expiration):時間経過で自動削除
  • 未完了マルチパートのクリーンアップ:失敗したアップロードの破片を削除
  • 古いバージョンの削除:バージョニング有効時の旧バージョン処理
  • 削除マーカーのクリーンアップ:不要な削除マーカー除去
  • プレフィックス・タグでフィルタ:特定パスやタグ付きのみに適用

ルールの構成要素

  • フィルタ:プレフィックス(例:logs/)・タグ・サイズ範囲
  • アクション:Transition / Expiration
  • トリガー:作成からの日数 or 特定日時
  • 対象:現行バージョン / 旧バージョン / 削除マーカー / 未完了マルチパート

3. 特徴

観点特徴
追加料金ルール自体は無料(クラス移行リクエスト代金は発生)
適用範囲バケット単位、ルールはプレフィックス/タグでフィルタ
実行タイミング1 日 1 回バッチ実行(指定日数到達後)
ストレージクラスの順序一方向のみ(Standard → IA → Glacier。逆戻り不可)
最小保管期間移行先クラスごとに最低保管日数あり(IA:30 日、Glacier:90 日)

一般的な移行パターン

0 日:Standard
30 日:Standard-IA に移行
90 日:Glacier Flexible Retrieval に移行
180 日:Glacier Deep Archive に移行
2,555 日(7 年):削除

注意点

  • 128 KB 未満のオブジェクトは IA/Glacier 移行で逆にコスト増の可能性
  • 移行リクエストにも料金(特に Glacier は 1,000 リクエストあたり $0.05 程度)

4. 仕組み

S3 ライフサイクルは バケットに JSON 形式のルールを設定 し、S3 が 1 日 1 回バッチで評価・実行する。

構成要素

  • Rule:1 つのライフサイクルルール
  • Filter:プレフィックス / タグ / サイズ
  • Transition:クラス移行アクション(複数指定可)
  • Expiration:削除アクション
  • NoncurrentVersionTransition / NoncurrentVersionExpiration:旧バージョン用
  • AbortIncompleteMultipartUpload:未完了マルチパート対応

XML/JSON 設定例

{
  "Rules": [{
    "ID": "LogRetention",
    "Filter": {"Prefix": "logs/"},
    "Status": "Enabled",
    "Transitions": [
      {"Days": 30, "StorageClass": "STANDARD_IA"},
      {"Days": 90, "StorageClass": "GLACIER"},
      {"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
    ],
    "Expiration": {"Days": 2555}
  }]
}

動作の流れ

  1. ルール作成(マネコン or API)
  2. S3 が日次でオブジェクト評価
  3. 該当オブジェクトを移行 or 削除
  4. CloudWatch メトリクスに反映
  5. 課金は新クラスで計算

5. ユースケース

ユースケース 1:ログ保管のコスト最適化

ALB / CloudFront ログを 30 日 IA → 90 日 Glacier → 7 年で削除。

ユースケース 2:監査・規制要件

法定保管 10 年のデータを Deep Archive に置き、期限到達で削除。

ユースケース 3:バージョニング運用

旧バージョンを 30 日後に IA、180 日後に削除。

ユースケース 4:未完了マルチパートのクリーンアップ

失敗アップロードの破片を 7 日後に自動削除(請求書からも消える)。

ユースケース 5:ユーザーアップロードの世代管理

30 日経過した動画を Glacier 移行。


6. 関連用語


7. 関連サイト

AWS 公式

参考


🎓 試験での出題傾向

試験重要度主な出題パターン
CLFコスト最適化の自動化
SAAクラス移行設計問題(頻出
DVAライフサイクル API
SOA運用での適用、未完了マルチパート対応