本文へスキップ
BecomeCoder

AWSコース · 第4章 ストレージ · レッスン19

S3のストレージクラスとライフサイクル

導入

同じS3でも、「よくアクセスするデータ」と「ほとんど開かない古いログ」を同じ料金で保存するのはもったいない話です。S3には、アクセス頻度に応じて料金を最適化できるストレージクラスが用意されています。

説明

S3には主に次のストレージクラスがあります。アクセス頻度が低い(=取り出す機会が少ない)ものほど、保存コストは安くなります。

ストレージクラス特徴向いている用途
S3 Standard標準。高い可用性・耐久性、取り出しも高速頻繁にアクセスするデータ
S3 Standard-IA低頻度アクセス用。保存コストは安いが取り出し時に料金たまにしか見ないが、すぐ取り出したいデータ
S3 One Zone-IAStandard-IAと似るが単一AZにのみ保存し、さらに割安再作成可能な低頻度データ
S3 Intelligent-TieringアクセスパターンをAWS監視し、自動で最適な階層へ移動アクセス頻度が読めないデータ
S3 Glacier Instant Retrievalアーカイブ用。ミリ秒単位で取り出し可能ほぼ使わないが、たまに即座に見たいデータ
S3 Glacier Flexible Retrievalアーカイブ用。取り出しに数分〜数時間年に数回程度しか使わないデータ
S3 Glacier Deep Archive最安のアーカイブ。取り出しに約12時間法令保存など、長期間ほぼ開かないデータ

これらを手動で移動させるのは大変なので、ライフサイクルルールを設定して自動化します。「作成から30日経過したオブジェクトはStandard-IAへ」「180日経過したらGlacierへ」「1年経過したら削除」といったルールを決めておけば、S3が自動的にオブジェクトを安いクラスへ移動・削除してくれます。

graph LR
  a["S3 Standard\n(作成直後)"] -- 30日後 --> b["S3 Standard-IA"]
  b -- 180日後 --> c["S3 Glacier\nFlexible Retrieval"]
  c -- 365日後 --> d["削除"]
{
  "Rules": [
    {
      "Status": "Enabled",
      "Transitions": [
        { "Days": 30, "StorageClass": "STANDARD_IA" },
        { "Days": 180, "StorageClass": "GLACIER" }
      ],
      "Expiration": { "Days": 365 }
    }
  ]
}

読んでみよう

「アクセス頻度が低いクラスほど保存料金は安いが、取り出しには時間や料金がかかる」というトレードオフと、それを自動化するライフサイクルルールの役割をセットで覚えましょう。