SJ blog
backend
A

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

S3ストレージクラス完全比較 — コスト・取り出し時間・最小保存期間

S3の全ストレージクラス(Standard, IA, One Zone-IA, Glacier Instant/Flexible/Deep Archive, Intelligent-Tiering)のコスト構造、取り出し時間、最小保存期間を試験対策視点で比較。

一言結論

S3ストレージクラスは最小保存期間と取り出し料金の存在を無視すると逆に高くつく場合があり、アクセスパターンが不明なデータにはIntelligent-Tiering、確実に30日以内に削除するデータにはStandardを使うのが選択ミスを防ぐ判断基準だ。

ストレージクラスの選択基準

S3ストレージクラスの選択は「アクセス頻度」「取り出しまでの許容時間」「最小保存期間」の3軸で決まる。

全クラス比較表

クラス用途最小保存期間取り出し取り出し料金
Standard頻繁アクセスなし即時なし
Intelligent-Tieringアクセスパターン不明なし即時(高頻度)モニタリング料金あり
Standard-IA月1回未満のアクセス30日即時あり
One Zone-IA再作成可能な低頻度データ30日即時あり
Glacier Instant Retrieval四半期に1回程度90日即時あり
Glacier Flexible Retrieval年1〜2回程度90日1〜12時間あり
Glacier Deep Archive7〜10年保存180日12〜48時間あり

各クラスの詳細

Standard(標準)

デフォルトクラス。99.999999999%(11 9’s)の耐久性、99.99%の可用性。3つ以上のAZにレプリケートされる。アクセス頻度が高いデータ、低レイテンシが必要なデータに適する。

Intelligent-Tiering

アクセスパターンが不明または変化するデータ向け。自動的に適切なティアに移動する。

連続30日アクセスなし  → 低頻度アクセスティア(IA料金)
連続90日アクセスなし  → アーカイブ即時ティア(Glacier Instant料金)
連続180日アクセスなし → ディープアーカイブティア(Deep Archive料金)
アクセス発生時        → 高頻度アクセスティアに自動復帰

モニタリング料金が発生するため、128KB未満の小さなオブジェクトや確実に毎日アクセスされるデータには不向き。

Standard-IA と One Zone-IA

Standard-IA: 3つ以上のAZに保存(99.9%可用性)
One Zone-IA: 単一AZのみ(99.5%可用性)→ AZ障害でデータ消失リスクあり

One Zone-IAが適するケース:
- 他の場所からの複製データ(S3レプリケーション先等)
- オンプレから再同期可能なバックアップ
- サムネイル画像など元データから再生成可能なもの

注意: 最小保存期間30日は「30日未満で削除しても30日分の料金を請求」する。

Glacier Instant Retrieval

「四半期に1回程度アクセスするが、必要な時は即座に取り出したい」データに適する。医療画像や報道写真のアーカイブなど。

Glacier Flexible Retrieval(旧 Glacier)

取り出しタイプ:

  • Expedited(迅速): 1〜5分(別途料金高め)
  • Standard: 3〜5時間
  • Bulk(大量): 5〜12時間(最安値)

Glacier Deep Archive

最も低コストなクラス。最低保存期間が180日。

取り出しタイプ:

  • Standard: 12時間以内
  • Bulk: 48時間以内

S3 Glacierの復元フロー

Glacier内のオブジェクトを直接ダウンロードはできない。一時的にS3 Standardに復元してからダウンロードする。

# Glacier Flexible RetrievalからStandardへの復元
aws s3api restore-object \
  --bucket my-bucket \
  --key archive/data.csv \
  --restore-request '{
    "Days": 7,
    "GlacierJobParameters": {
      "Tier": "Standard"
    }
  }'

# 復元状態の確認
aws s3api head-object \
  --bucket my-bucket \
  --key archive/data.csv \
  --query 'Restore'
# → 'ongoing-request="false", expiry-date="..."' で完了確認

ライフサイクルルールとの組み合わせ

// ライフサイクルルール例: 段階的なストレージクラス移行
{
  "Rules": [{
    "ID": "archive-rule",
    "Status": "Enabled",
    "Transitions": [
      {
        "Days": 30,
        "StorageClass": "STANDARD_IA"
      },
      {
        "Days": 90,
        "StorageClass": "GLACIER_IR"
      },
      {
        "Days": 365,
        "StorageClass": "DEEP_ARCHIVE"
      }
    ],
    "Expiration": {
      "Days": 2555
    }
  }]
}

試験頻出ポイント

シナリオ推奨クラス
アクセスパターン不明Intelligent-Tiering
再生成可能な低頻度データOne Zone-IA
法規制で7年保管必須Glacier Deep Archive
医療画像(即時取り出し必要)Glacier Instant Retrieval
コスト最適化でAZ障害リスク許容One Zone-IA
30日以内に削除予定のデータStandard(IAは30日最小課金あり)

まとめ

ストレージクラスの選択ミスはコスト過大(高頻度データをGlacierに入れる)またはデータ消失(One Zone-IAでAZ障害)につながる。最小保存期間と取り出し料金の存在を忘れずに設計することが重要だ。