S3設計 — ストレージクラス・ライフサイクル・レプリケーション
ストレージクラスの選定基準、クロスリージョンレプリケーション(CRR)とコスト、Intelligent-Tieringの活用を解説します。
ほぼすべてのAWSアーキテクチャの土台となるオブジェクトストレージがAmazon S3です。 本記事ではストレージクラスの選定からレプリケーション設計までを整理します。
SAA レベル:基礎概念
主要なストレージクラス
| ストレージクラス | 用途 | 特徴 |
|---|---|---|
| S3 Standard | 頻繁にアクセスされるデータ | 高耐久性・高可用性、複数AZ分散 |
| S3 Standard-IA | アクセス頻度が低いが即時アクセスが必要 | 保存コストは低いが取り出し料金が発生 |
| S3 One Zone-IA | 再作成可能なデータ | 単一AZのみ、Standard-IAより安価 |
| S3 Glacier Instant Retrieval | アーカイブだが即時アクセスが必要 | ミリ秒単位での取り出し |
| S3 Glacier Flexible Retrieval | 長期アーカイブ | 分〜時間単位での取り出し |
| S3 Glacier Deep Archive | 最長期保存 | 取り出しに12時間程度、最安価格帯 |
SAA 試験のポイント
アクセス頻度と取り出し速度要件のトレードオフで選定します。「年に数回しかアクセスしないが、アクセス時は即座に必要」というシナリオでは、Glacier Flexible RetrievalではなくGlacier Instant Retrievalが正解になる、といった細かい選択がSAAで問われます。
ライフサイクルポリシー
- オブジェクトの経過日数に応じて、自動的に安価なストレージクラスへ移行、または削除するルール
- 例: 「30日経過でStandard-IAへ、90日経過でGlacier Flexible Retrievalへ、365日経過で削除」
SAP レベル:高度な設計シナリオ
クロスリージョンレプリケーション(CRR)とコスト
SAP 試験のポイント
CRRは非同期でレプリケーションされるため、レプリケーション遅延(通常は数秒〜数分だが、保証はされない)が存在します。また、レプリケーション元・先それぞれでストレージコストが発生し、リージョン間のデータ転送料金も加算されます。SAPでは、DR要件・コンプライアンス要件(データ主権)とコストのバランスから、CRRを適用すべき対象データを絞り込む設計判断が問われます。
Intelligent-Tieringによる自動最適化
SAP 試験のポイント
アクセスパターンが予測しづらいデータセットでは、手動でライフサイクルルールを設計するよりもS3 Intelligent-Tieringを使う方が合理的です。Intelligent-Tieringは、オブジェクトへのアクセス頻度を自動的に監視し、追加の取り出し料金なしで、最も適切な階層(頻繁アクセス層、非頻繁アクセス層、アーカイブ層等)へ自動移行します。監視のための少額の追加料金はかかりますが、アクセスパターンが不明・変動するデータに対する運用負荷とコストの最適なバランスとして頻出します。
設計上の落とし穴
「すべてのデータをIntelligent-Tieringにすれば常に最適」という判断は必ずしも正しくありません。アクセスパターンが明確に予測できるデータ(例: ログは30日で必ずアーカイブ化)であれば、明示的なライフサイクルポリシーの方が監視コストがかからず、よりシンプルでコスト効率が良い場合があります。SAPでは、アクセスパターンの予測可能性に応じた選定が問われます。
S3 Object Lambdaとイベント駆動処理
- S3 Object Lambdaを使うと、GETリクエストに対してLambdaでオブジェクトの内容を動的に変換(個人情報のマスキング、フォーマット変換等)してから返却できる
- S3イベント通知(作成・削除等)をトリガーに、Lambdaで自動的にサムネイル生成やウイルススキャンを行う設計は、疎結合なイベント駆動アーキテクチャの典型例
バージョニングとMFA削除
- バージョニングを有効にすると、上書き・削除されたオブジェクトも過去バージョンとして保持される(誤削除・誤上書きからの保護)
- MFA削除を有効化すると、バージョンの完全削除やバージョニング自体の無効化にMFA認証が必須になり、誤操作や侵害されたクレデンシャルによる削除を防ぐ多層防御になる
まとめ
- SAA: ストレージクラスの選定基準、ライフサイクルポリシーの基本を理解する。
- SAP: CRRのコストとDR要件のバランス、Intelligent-Tieringが適する場面の判断、S3 Object Lambdaやバージョニング・MFA削除による高度な設計ができる。
次は RDS/Aurora/DynamoDBの選定基準を見ていきましょう。