SAP-C02-097 · セクション 11 / タスク 2.6
Storage Tiering Strategy
S3 Storage Class / S3 Intelligent-Tiering / S3 Lifecycle / Amazon EBS / S3 Glacier / Archive / Access Frequency
ストレージコストを下げるとき、
保存単価が最も安い階層を選べばよいわけではありません。
低コスト階層には、
取得料金
移行料金
最小ストレージ期間
復元待ち時間
オブジェクトサイズなどの条件があります。
そのため、
アクセス頻度
↓
取得時間の要件
↓
保持期間
↓
オブジェクトサイズ
↓
移行・取得・復元条件
↓
適切なストレージ階層の順で判断します。
ゴール
最終的に、
古いデータ
→ とにかくArchiveではなく、
どのくらいの頻度で読むか
+
読めるまで何時間待てるか
+
どれくらい保存するか
+
データサイズはどうなっているかから、
S3 Storage Class
S3 Intelligent-Tiering
S3 Lifecycle
S3 Glacier
EBS Snapshots Archiveを使い分けられることがゴールです。
1. ストレージ階層化では「保存単価」だけを見ない
ストレージの総コストには、保存料金以外も影響します。
例えば、
保存料金
+
リクエスト料金
+
ストレージクラス移行
+
データ取得
+
復元
+
モニタリング
+
最小保存期間による料金です。
そのため、
GB単価が低い
=
必ず総コストも低いとは限りません。
例えば、頻繁に取得するデータを取得料金のある低頻度アクセス向け階層へ移すと、
保存料金
↓
取得コスト
↑となる可能性があります。
2. 最初に見るのはAccess Frequencyだけではない
ストレージ階層化では、少なくとも次の項目を確認します。
| 観点 | 確認すること |
|---|---|
| Access Frequency | 毎日、月1回、年1回など |
| Predictability | アクセス時期を予測できるか |
| Retrieval Latency | ミリ秒、分、時間のどこまで許容できるか |
| Retention | 何日・何年保存するか |
| Object Size | 小さいオブジェクトが大量にあるか |
| Retrieval Volume | 取得時にどれだけ読み戻すか |
例えば、
年1回しか読まないという条件だけでは、
ミリ秒で取得必須なのか、
半日待てるのかが分かりません。
この2つでは適切なアーカイブ階層が異なります。
3. S3 Storage Classをアクセスパターンへ対応付ける
代表的なS3ストレージクラスを整理すると、概ね次のようになります。
| Storage Class | 主なアクセスパターン |
|---|---|
| S3 Standard | 頻繁にアクセスするデータ |
| S3 Intelligent-Tiering | アクセスパターンが不明・変化するデータ |
| S3 Standard-IA | 長期保存し、低頻度だがミリ秒アクセスが必要 |
| S3 One Zone-IA | 再作成可能など、単一AZ保存を許容できる低頻度データ |
| S3 Glacier Instant Retrieval | 長期アーカイブだがミリ秒取得が必要 |
| S3 Glacier Flexible Retrieval | 低頻度アーカイブで、分〜時間の取得を許容 |
| S3 Glacier Deep Archive | 非常に長期の保存で、取得まで時間を許容 |
ここで、
最も低頻度
→ 最も安い階層と機械的には決めません。
既に定めた可用性・耐障害性要件を満たしたうえで、
アクセス頻度
+
取得時間
+
保持期間を使って絞ります。
4. 既知のアクセスパターンはS3 Lifecycleへ落とし込む
アクセスパターンが明確なら、S3 Lifecycleで時間経過に応じて自動的にストレージクラスを変更できます。
例えば、
作成直後
毎日アクセス
30日後
ほとんどアクセスしない
1年後
監査時のみ利用というデータなら、
作成
↓
高頻度向け階層
↓
低頻度向け階層
↓
アーカイブ階層というライフサイクルを設計できます。
重要なのは、
古くなったから移すではなく、
作成から何日後に
アクセスパターンがどう変わるかを根拠にすることです。
5. 不明・変化するアクセスパターンではS3 Intelligent-Tieringを評価する
アクセス頻度が、
予測できない
変化する
不規則場合、固定した日数だけで階層を決めるのが難しくなります。
この場合、
S3 Intelligent-Tieringを評価します。
S3 Intelligent-Tieringでは、オブジェクトのアクセスパターンを監視し、アクセス状況に応じて低コストのアクセス階層へ自動的に移動します。
基本的な低レイテンシー階層では、
Frequent Access
↓
30日間アクセスなし
↓
Infrequent Access
さらに
90日間アクセスなし
↓
Archive Instant Accessのように階層化されます。
アクセスされると、対象データは高頻度アクセス階層へ戻ります。
つまり、
アクセス時期を正確に予測できないこと自体が、S3 Intelligent-Tieringを評価する重要な条件です。
6. Intelligent-Tieringにもコスト条件がある
S3 Intelligent-Tieringは、
完全無料で自動最適化という意味ではありません。
オブジェクトのモニタリングと自動化に料金があります。
また、128 KB未満のオブジェクトは、
自動階層化の対象外で、Frequent Access階層に残ります。
したがって、
数十KBの小さいファイルが
数億個存在するようなケースでは、
S3 Intelligent-Tieringだから
必ず大きく削減できるとは判断しません。
オブジェクトサイズと個数も確認します。
7. Intelligent-TieringのArchive階層を区別する
S3 Intelligent-Tieringには、通常の低レイテンシー階層に加えて、非同期アクセスを許容するデータ向けのアーカイブ階層もあります。
代表的には、
Archive Access
Deep Archive Accessです。
Archive Accessは、設定するとアクセスされていないオブジェクトをより低コストなアーカイブ階層へ移せます。
Deep Archive Accessは、さらに長期間アクセスされていないデータ向けです。
これらは、
即座にGETできる階層ではありません。
必要なオブジェクトを使用するときは復元が必要です。
したがって、
Intelligent-Tiering
=
すべての階層で即時アクセスとは考えません。
8. S3 GlacierはAccess FrequencyとRetrieval Latencyを組み合わせる
S3 Glacier系のストレージクラスでは、
どのくらいアクセスしないかだけでなく、
アクセスするとき
どれだけ待てるかが重要です。
S3 Glacier Instant Retrieval
低頻度
+
アーカイブ
+
ミリ秒アクセスが必要なデータ向けです。
例えば、
四半期に1回程度
ただし要求されたら即時表示というケースです。
S3 Glacier Flexible Retrieval
年に1〜2回程度
+
即時アクセス不要
+
分〜時間の復元を許容するデータに適します。
S3 Glacier Deep Archive
年1回未満
+
長期保存
+
取得まで数時間待てるようなデータを評価します。
つまり、
Archiveという1種類の選択肢ではありません。
9. Minimum Storage Durationを無視しない
低コストのストレージクラスには、最小ストレージ期間が設定されているものがあります。
代表例は、
S3 Standard-IA
30日
S3 One Zone-IA
30日
S3 Glacier Instant Retrieval
90日
S3 Glacier Flexible Retrieval
90日
S3 Glacier Deep Archive
180日です。
例えば、
45日後に必ず削除するデータを、
保存単価が低いという理由だけでS3 Glacier Instant Retrievalへ置くと、90日の最小ストレージ期間による料金を考慮する必要があります。
したがって、
実際のRetention
<
Minimum Storage Durationの場合は特に注意します。
10. 小さいオブジェクトでは移行コストが効きやすい
現在、新しく作成・更新するS3 Lifecycle設定では、デフォルトで、
128 KB未満のオブジェクトはストレージクラス移行の対象になりません。
理由の1つは、小さいオブジェクトでは、
保存料金の削減に対して、
オブジェクト単位の移行リクエストの影響が相対的に大きくなりやすいためです。
必要であればサイズフィルターを指定して128 KB未満を移行対象にすることはできます。
しかし、
設定できる
=
設定すべきではありません。
まず、
オブジェクト数
×
移行回数と、
削減できる保存料金を比較します。
11. Lifecycleでは「Transitionしない」選択もある
データに保存期限がある場合、
低コスト階層へ移すだけでなく、
期限が来たら削除することも重要です。
例えば、
法的・業務的に
365日だけ保存であれば、
何年もDeep Archiveへ残す必要はありません。
コスト最適化では、
Standard
↓
IA
↓
Glacier
↓
永久保存という階段を必ず最後まで使うのではなく、
Retention終了
↓
Expirationも含めて設計します。
最も安い保存データは、
保持要件が終わった後に
不要なのに保存しているデータを残さないことです。
12. Amazon EBSでは実行中VolumeとSnapshotを分ける
Amazon EBSのコストでは、
実行中EBS Volumeと、
EBS Snapshotを分けます。
実行中ボリュームでは、
容量
IOPS
スループットを需要に合わせる適正サイズ化が中心です。
一方、長期保存するバックアップについては、
EBS Snapshot Standard tier
vs
EBS Snapshots Archiveという階層化を評価できます。
ここでは、
ほとんど利用しない
長期保存スナップショットの階層化を扱います。
13. EBS Snapshots Archiveは長期・低頻度アクセス向け
通常、EBSスナップショットはStandard tierへ保存されます。
Standard tierではスナップショットは増分です。
一方、
EBS Snapshots Archiveへアーカイブすると、
増分Snapshot
↓
Full Snapshotへ変換されてArchive tierへ移動します。
Archive tierは、
90日以上保持
+
ほとんどアクセスしない
+
高速復元が不要なスナップショットを評価する階層です。
代表例は、
プロジェクト終了時Snapshot
月次・四半期・年次Snapshot
長期コンプライアンス保存です。
14. EBS Snapshot ArchiveではRestore Timeを確認する
Archive tierのEBSスナップショットは、そのままボリューム作成に使うのではなく、
Archive tier
↓
Restore
↓
Standard tier
↓
利用という流れになります。
スナップショットサイズなどによっては、Archive tierからStandard tierへの復元に、
最大72時間かかる場合があります。
そのため、
障害時に1時間以内で
このSnapshotから復旧したいという要件に対して、
Archive tierだけに置く設計は適しません。
ストレージ階層化では、
ストレージ料金だけでなく、
必要な復元時間もコストと交換条件になります。
15. EBS Snapshot Archiveでは「増分サイズのまま」と考えない
Standard tierのEBS Snapshotは増分です。
しかしArchive tierへ移すと、
Full Snapshotになります。
したがって、
Standard tierで
今回の増分は20 GiB
Archive tierでも
20 GiBだけ保存とは限りません。
アーカイブによるコスト効果を判断するときは、
Archive tierでのFull Snapshot sizeと、
Standard tier側で
実際に削減される保存量を比較します。
つまり、
ArchiveのGB単価が安いという理由だけではなく、
何GBがArchive側で課金されるかまで確認します。
16. ストレージ階層化の判断を統合する
例えば、次の3種類のデータがあるとします。
データA
アクセス頻度
予測不能
数か月後に
再び頻繁にアクセスする可能性あり
ミリ秒アクセス必須候補:
S3 Intelligent-TieringデータB
作成後30日は頻繁
その後はほぼアクセスなし
監査時は数時間待てる
7年間保存候補:
S3 Lifecycle
↓
適切なS3 Glacier階層データC
EBS Snapshot
1年以上保存
通常は使用しない
復元に最大72時間を許容候補:
EBS Snapshots Archive重要なのは、すべてを同じ「Cold Storage」として扱わないことです。
17. 代表的なアンチパターン
| アンチパターン | 問題 |
|---|---|
| 保存単価だけでStorage Classを選ぶ | 取得・移行・復元コストを無視 |
| 古いデータをすべてDeep Archiveへ送る | Retrieval Latencyを無視 |
| アクセスパターン不明でも固定Lifecycleだけで決める | 実際のアクセス変化へ追従しにくい |
| Intelligent-Tieringなら小さいオブジェクトもすべて自動階層化されると考える | 128 KB未満は自動階層化対象外 |
| Minimum Storage Durationを無視する | 短期データで期待ほど安くならない |
| Lifecycle移行回数を無視する | 小オブジェクト大量構成で移行料金が増える |
| 保持期限後もArchiveへ残し続ける | 不要データへ保存料金を払い続ける |
| EBS Archiveも増分サイズで課金されると考える | ArchiveではFull Snapshotになる |
| EBS Archiveから即時復旧できると考える | 復元に最大72時間かかる可能性 |
18. SAP-C02での判断フロー
データを何日・何年保持する?
↓
どのくらいの頻度でアクセスする?
↓
アクセス頻度は予測可能?
│
├─ 不明・変化する
│ ↓
│ S3 Intelligent-Tieringを評価
│
└─ 予測可能
↓
S3 Lifecycleを評価
↓
アクセスするとき
どのくらい待てる?
│
├─ ミリ秒
│ ↓
│ Standard / IA /
│ Glacier Instantなど
│
└─ 分〜時間
↓
Flexible / Deep Archiveなど
↓
Minimum Storage Durationを満たす?
↓
Object Sizeは?
128 KB未満が大量?
↓
Transition / Retrieval /
Monitoring コストを含めても安い?
↓
Retention終了後は
削除できる?
↓
EBS Snapshotなら
長期・低頻度か?
↓
Restore最大72時間を許容?
↓
Archive時のFull Snapshot sizeを含め
総コストを比較まとめ
ストレージ階層化では、
最も安いStorage Classを探すのではありません。
まず、
Access Frequency
Predictability
Retrieval Latency
Retention
Object Sizeを確認します。
アクセスパターンが明確なら、
S3 Lifecycleで時間経過に応じた移行を設計できます。
アクセスパターンが不明・変化する場合は、
S3 Intelligent-Tieringを評価します。
アーカイブでは、
Glacier Instant Retrieval
Glacier Flexible Retrieval
Glacier Deep Archiveを取得頻度と取得待ち時間から選択します。
さらに、
Minimum Storage Duration
Transition コスト
Retrieval コストも確認します。
Amazon EBSでは、長期保存しほとんど利用しないSnapshotについて、
EBS Snapshots Archiveを評価できます。
ただし、
ArchiveするとFull Snapshot
+
最小90日
+
Restore最大72時間という条件があります。
最終的に、
保存単価
+
アクセス方法
+
保持期間
+
移行・復元条件を合わせて、総コストが最も適切な階層を選びます。
主要AWS公式資料
- AWS Certified Solutions Architect - Professional SAP-C02 Exam Guide — Task 2.6
- Amazon S3 — Understanding and managing Amazon S3 storage classes
- Amazon S3 — How S3 Intelligent-Tiering works
- Amazon S3 — Transitioning objects using Amazon S3 Lifecycle
- Amazon S3 — Understanding S3 Glacier storage classes for long-term data storage
- Amazon EBS — Archive Amazon EBS snapshots
- Amazon EBS — Considerations and limitations for archiving Amazon EBS snapshots
- Amazon EBS — Pricing and billing for archiving Amazon EBS snapshots
- AWS Well-Architected Framework — Lifecycle policies and storage cost optimization