S3 ライフサイクル
S3 オブジェクトのストレージクラスを自動的に移行し、コストを最適化する機能
AWSインフラ
S3 ライフサイクルとは
S3 ライフサイクルは、オブジェクトの経過日数に応じてストレージクラスを自動的に移行し、不要になったオブジェクトを自動削除する機能である。アクセス頻度が下がるデータを安価なストレージクラスに移行することで、コストを大幅に削減できる。
ストレージクラスとコスト
| クラス | 用途 | 料金 (東京、GB/月) | 取り出し |
|---|---|---|---|
| Standard | 頻繁にアクセス | $0.025 | 無料 |
| Standard-IA | 月 1 回程度のアクセス | $0.019 | $0.01/GB |
| Glacier Instant | 四半期に 1 回程度 | $0.005 | $0.03/GB |
| Glacier Flexible | 年 1〜2 回 | $0.0045 | 数分〜数時間 |
| Glacier Deep Archive | ほぼアクセスしない | $0.002 | 12〜48 時間 |
この設定で:
- 30 日後: Standard → Standard-IA (コスト 24% 削減)
- 90 日後: Standard-IA → Glacier Instant (コスト 80% 削減)
- 365 日後: Glacier Instant → Deep Archive (コスト 92% 削減)
- 730 日後: 自動削除
実務での活用パターン
ログファイル
0〜30日: Standard (直近のログは頻繁に参照)
30〜90日: Standard-IA (たまに参照)
90〜365日: Glacier Instant (インシデント調査時のみ)
365日〜: 自動削除 (コンプライアンス要件に応じて延長)
バックアップ
0〜7日: Standard (直近のバックアップは即座にリストア)
7〜90日: Glacier Instant (数分でリストア)
90日〜: Deep Archive (12時間でリストア、最安)
不完全なマルチパートアップロードの削除
- Id: CleanupIncompleteUploads
Status: Enabled
AbortIncompleteMultipartUpload:
DaysAfterInitiation: 7
中断されたマルチパートアップロードの残骸を 7 日後に自動削除する。これを設定しないと、不完全なパーツがストレージ料金を消費し続ける。
S3 Intelligent-Tiering
アクセスパターンが予測できない場合、S3 Intelligent-Tiering が自動的に最適なストレージクラスに移行する。30 日間アクセスがないオブジェクトを IA に、90 日間アクセスがないオブジェクトを Archive に自動移行する。
全体像を把握するには関連書籍も有用。