Upgrade to Pro — share decks privately, control downloads, hide ads and more …

S3ライフサイクル入門

Avatar for 赤神青空 赤神青空
September 01, 2026

 S3ライフサイクル入門

Avatar for 赤神青空

赤神青空

September 01, 2026

More Decks by 赤神青空

Other Decks in Programming

Transcript

  1. ▪下段はアーカイブ。復元しないと読めない 移行先と、その最小保存期間 【上段】ミリ秒でアクセスできる Intelligent-Tiering Standard-IA One Zone-IA 頻度が読めないデータ 低頻度・複数AZ 再作成できるデータ

    期間なし 30日 【下段】復元しないと読めない 30日 Glacier Flexible Retrieval Glacier Deep Archive 数分〜数時間で取り出す 年1回未満・数時間 90日 Glacier Instant Retrieval 90日 四半期に1回 180日 最小保存期間より前に移すと、残りの期間分が課金される 今ココ しくみ 6/19
  2. ▪右へは飛び越せる。左へは戻れない 移行はウォーターフォール 右⽅向なら、途中を⾶ばして移⾏できる S Standard 既定のクラス IA 系 Standard-IA One

    Zone-IA Glacier IR ミリ秒で読める Glacier FR 数分〜数時間 Deep Archive 数時間 ライフサイクルでは戻せない(restore してコピーし直す) 最⼩保存期間 なし 30⽇ 90⽇ 90⽇ 180⽇ 公式ドキュメントの「ウォーターフォールモデル」を、最小保存期間つきで描き直したもの 今ココ しくみ 7/19
  3. ▪図で潰れる例外は、ここで押さえる どこからどこへ移せるか S3 Standard からは、6クラスすべてへ移せる S3 Standard-IA からは One Zone-IA・Glacier

    3種・Intelligent-Tiering へ One Zone-IA からは Glacier Flexible Retrieval と Deep Archive だけ Glacier Instant Retrieval へは移せない Glacier Flexible Retrieval からは Deep Archive のみ 今ココ しくみ 8/19
  4. ▪この3つで設計ミスの大半は防げる 覚えるべき3つの数字 30日 IA 系へ移せるまで 作成から30日は Standard に置く 今ココ 制約

    128KB 移行の下限 未満は既定でどこへも移行されない 40KB Glacier の追加分 オブジェクトごとに 32KB + 8KB 10/19
  5. ▪IA 系へは、すぐには移せない 制約① 30日ルール Standard-IA / One Zone-IA へ移す前に、最低30日は S3

    に置いておく必要がある。 API 側も、この2クラスのときだけ Days に 30 未満を受け付けない Intelligent-Tiering・Glacier 系は 0 または正の整数でよい 非現行バージョンも同じで、非現行になってから30日以上経ったものだけが対象 今ココ 制約 11/19
  6. ▪「あとで戻せる」前提で設計しない 制約③ 移行は取り消せない ✕ できないこと ライフサイクルで Glacier から Standard へ戻す

    Deep Archive から別クラスへ変換する Glacier FR / Deep Archive を直接読む ◯ 実際の戻しかた restore で一時コピーを作る copy でストレージクラスを指定して上書き 復元中はアーカイブ代と Standard 代の両方が要る 一時コピーは指定期間だけ。期間が過ぎると消え、オブジェクトはアーカイブされたまま残ります。 今ココ 制約 13/19
  7. ▪1つのルールで多段移行を書くときの落とし穴 制約④ 最小保存期間をまたげない 最小保存期間より前に移すと、残りの期間分が課金される。 「4日後に Glacier Instant Retrieval、20日後に Deep Archive」は1つのルールでは書けない

    Glacier IR の最小保存期間が90日なので、Deep Archive への移行は94日目以降になる ルールを2つに分ければ書けるが、その場合は早期削除料金が発生する 今ココ 制約 14/19
  8. ▪AWS CLI実際の設定はこれだけ から入れるときは JSON ログ用プレフィックスに、移行・削除・アップロード中止をまとめて指定した例。 json { "Rules": [{ "ID":

    "logs-tiering", "Status": "Enabled", "Filter": { "Prefix": "logs/" }, "Transitions": [ { "Days": 30, "StorageClass": "STANDARD_IA" }, { "Days": 90, "StorageClass": "GLACIER" } ], "Expiration": { "Days": 1095 }, "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 7 } }] } 今ココ 書きかた 16/19
  9. ▪「30日ちょうどの深夜に即座に」ではない いつ実行されるのか 日数は作成(最終更新)からの経過日数で数える 実行時刻は切り上げられる 1月15日 10:30 UTC 作成 + 3日

    → 1月19日 00:00 UTC 移行は非同期。物理的な移行前でも、ルール成立日から移行先の料金で課金が始まる 例外は Intelligent-Tiering で、こちらは物理移行の完了後に課金が変わる 今ココ 書きかた 17/19