導入
同じデータでも、アクセス頻度が下がるほど安いストレージクラスに移すことでコストは大きく下がります。「全部Standardに入れっぱなし」は、SAAでは不正解になりがちなパターンです。
説明
Amazon S3には、アクセス頻度とコストのバランスが異なる複数のストレージクラスがあります。
| ストレージクラス | 特徴 | 向いている用途 |
|---|---|---|
| S3 Standard | 高可用性・低レイテンシー | 頻繁にアクセスするデータ |
| S3 Intelligent-Tiering | アクセスパターンを監視し自動で最適な階層へ移動 | アクセス頻度が読めないデータ |
| S3 Standard-IA(低頻度アクセス) | 取り出し料金がかかる分、保管料が安い | 月1回程度アクセスするバックアップ等 |
| S3 One Zone-IA | 単一AZのみに保存し、さらに割安 | 再作成可能なデータ、二次バックアップ |
| S3 Glacier Instant Retrieval | アーカイブだが即時取り出し可能 | 年数回アクセスする長期保存データ |
| S3 Glacier Flexible Retrieval | 取り出しに分〜時間かかる | 稀にしかアクセスしないアーカイブ |
| S3 Glacier Deep Archive | 最安、取り出しに時間がかかる(最大12時間程度) | 法規制で長期保管が必要なデータ |
flowchart LR
S["S3 Standard<br/>(頻繁アクセス)"] -->|30日後| IA["Standard-IA<br/>(低頻度)"]
IA -->|90日後| GL["Glacier Flexible Retrieval<br/>(アーカイブ)"]
GL -->|180日後| DA["Glacier Deep Archive<br/>(長期保存・最安)"]
この自動移行を設定する仕組みが ライフサイクルポリシー です。「作成から30日経過したオブジェクトをStandard-IAへ、90日経過したらGlacierへ」のようなルールを定義すると、S3が自動でストレージクラスを移動し、運用負荷なくコストを最適化できます。アクセスパターンが読めない場合はIntelligent-Tieringに任せるのが定石です。
具体例
2つのデータで、アクセスパターンが「読めるか読めないか」によって最適解が分かれます。
- 監視カメラの録画(読める)→ ライフサイクルポリシー … 「直近30日は事件確認でよく見る、その後は保険で保管、7年で法定保存終了」と寿命が明確。→ 0〜30日はStandard、30日でStandard-IA、90日でGlacier、7年で削除、と自動移行を設定。人手ゼロでコストが階段状に下がる。
- ユーザーがアップした画像(読めない)→ Intelligent-Tiering … バズって突然アクセスが集中する画像もあれば、二度と見られない画像もあり、将来のアクセス頻度が予測できない。ここで手動のライフサイクルを組むと外す。→ Intelligent-Tieringに任せ、AWSがアクセスを監視して自動で最適な階層へ出し入れ。
「寿命が読めるならライフサイクルで階段状に落とす、読めないならIntelligent-Tieringに任せる」。全部Standardに入れっぱなしは、SAAでは不正解になりがちなパターンです。
読んでみよう
「アクセス頻度が下がるデータのコストを最適化したい」という問題文が出たら、まずライフサイクルポリシーを疑ってください。「アクセスパターンが不明・不規則」ならIntelligent-Tiering、「即座に取り出せなくてよい長期保管」ならGlacier系、という対応を覚えておきましょう。