S3ストレージクラスを選ぶ前に確認する要件
最初に確認したいのは、データへどの程度の頻度でアクセスするかです。日常的に参照するデータ、月に数回程度しか使わないデータ、数か月から数年ほとんど参照しないデータでは、適したストレージクラスが異なります。
次に、取り出しまでの待ち時間を確認します。ミリ秒単位の即時アクセスが必要なのか、数分から数時間、あるいは数日待てるのかによって、候補を絞り込めます。あわせて、保存期間、データの再生成可否、複数アベイラビリティゾーンでの冗長性、取り出し料金も確認します。
flowchart TD
A[データのアクセス頻度と保存期間を確認] --> B{即時アクセスが必要か}
B -->|はい| C{アクセス頻度は高いか}
B -->|いいえ| D{長期アーカイブか}
C -->|高い| E[S3 Standard]
C -->|低い・変動| F[Intelligent-Tiering または IA]
D -->|はい| G[Glacier Flexible Retrieval または Deep Archive]
D -->|いいえ| H[IA系クラスを検討]図を表示できませんでした。Mermaidコードを確認してください。
判断の起点は「安いクラス」ではなく、「どの程度の頻度で、いつまでに、どの量を取り出すか」です。
S3の代表的なストレージクラスの違い
代表的なクラスは、頻繁なアクセス向けのS3 Standard、アクセス頻度が変化するデータ向けのS3 Intelligent-Tiering、低頻度アクセス向けのS3 Standard-IAとS3 One Zone-IA、アーカイブ向けのS3 Glacier系に大別できます。
| ストレージクラス | 向いているデータ | 取り出し時間の目安 | 最低保存期間 | 冗長性・注意点 |
|---|---|---|---|---|
| S3 Standard | 頻繁にアクセスするデータ | ミリ秒 | なし | 複数のAZに保存。保存料金以外の条件も確認する |
| S3 Intelligent-Tiering | アクセスパターンが不明・変動するデータ | アクセス階層に応じて即時またはアーカイブ相当 | なし | アクセス状況に応じて自動階層化。監視・自動化料金がある |
| S3 Standard-IA | 長期保存する低頻度アクセスデータ | ミリ秒 | 30日 | 複数のAZに保存。取り出し料金がかかる |
| S3 One Zone-IA | 再作成可能な低頻度アクセスデータ | ミリ秒 | 30日 | 単一AZに保存。AZ障害への耐性が低い |
| S3 Glacier Instant Retrieval | 四半期に一度程度参照するアーカイブ | ミリ秒 | 90日 | リアルタイムアクセス可能。取り出し料金がかかる |
| S3 Glacier Flexible Retrieval | 数分から数時間待てる長期アーカイブ | 数分〜12時間程度 | 90日 | 復元操作が必要。取り出し料金がかかる |
| S3 Glacier Deep Archive | ほとんど参照しない長期保管 | 9〜48時間程度 | 180日 | 長期アーカイブ向け。復元時間と料金を確認する |
S3 Standard-IAやS3 One Zone-IAは、128KB以上のオブジェクトを少なくとも30日保存する用途に適しています。小さなオブジェクトや短期間で削除するデータでは、最低保存期間や課金対象サイズの影響に注意が必要です。
アクセス頻度とコストから選定する考え方
アクセス頻度が高く、取り出しの遅延を許容できない場合は、S3 Standardを基本候補にします。Webサイトの画像やアプリケーションが日常的に読む静的ファイルなどが該当します。
アクセス頻度が読みにくい場合は、S3 Intelligent-Tieringを検討します。アクセス状況に応じてデータをアクセス階層間で自動的に移動できるため、手動移行の運用負荷を抑えられます。ただし、オブジェクト単位の監視・自動化料金や、小さなオブジェクトの扱いを確認してください。
月に一度程度しか参照しないデータはS3 Standard-IA、再生成可能で単一AZへの保存を許容できるデータはS3 One Zone-IAが候補です。数か月から数年以上ほとんど参照しないデータは、取り出し時間を確認したうえでGlacier系を選びます。
- 保存料金:容量を保持するための料金
- リクエスト料金:PUT、GET、ライフサイクル移行などの料金
- 取り出し料金:IA系やGlacier系からデータを取得する料金
- 最低保存期間:期間前の削除・上書き・移行で発生する料金
- 移行費用:ライフサイクルルールなどでクラスを変更する際の費用
ユースケース別に見るストレージクラスの選定例
- Webサイトの画像や静的ファイル:日常的に参照され、即時利用が必要なため、まずS3 Standardを候補にします。アクセス頻度が予測できない場合はIntelligent-Tieringも検討します。
- 季節変動のある配信データ:キャンペーン期間だけアクセスが増えるなど、利用状況が変わる場合はS3 Intelligent-Tieringが候補です。固定的な移行ルールを運用できる場合は、ライフサイクル設定でIA系へ移行する方法もあります。
- 過去の監査ログ:通常は参照せず、必要時にミリ秒アクセスが必要ならS3 Standard-IA、復元まで数分以上待てるならGlacier Flexible Retrievalを検討します。
- 長期バックアップ:復元頻度が低く、復元まで数時間から数日待てるならGlacier Deep Archiveが候補です。短期間で削除されるバックアップを移行すると、最低保存期間によるコストに注意が必要です。
- 一時的に生成できるデータ:再生成可能で単一AZ保存を許容できる場合はS3 One Zone-IAを検討できます。唯一の原本や復元不能なデータには、冗長性の要件を満たすクラスを選びます。
ライフサイクル設定で運用中のデータを最適化する
データの利用頻度が時間とともに下がる場合は、作成直後をS3 Standard、一定期間後をS3 Standard-IAやGlacier系に移行し、保存期限を迎えたら削除するライフサイクルルールを検討できます。S3 Lifecycleでは、オブジェクトを別のストレージクラスへ移行するルールや、期限切れオブジェクトを削除するルールを設定できます。
設定前には、移行後のアクセス頻度、取り出し時間、最低保存期間、削除予定日を確認します。導入後も、実際のアクセス状況と請求額を監視し、想定より頻繁に取り出されている場合は、移行時期や移行先を見直してください。
作成直後 : S3 Standard
一定期間経過後 : S3 Standard-IA または S3 Glacier系
保存期限到達後 : ライフサイクルルールで削除特に重要なデータでは、料金だけでなく、障害時に必要な復元時間と冗長性を満たすかを先に確認することがポイントです。