Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
S3ライフサイクル入門
Search
赤神青空
September 01, 2026
Programming
17
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
S3ライフサイクル入門
赤神青空
September 01, 2026
More Decks by 赤神青空
See All by 赤神青空
Vitest5.0は何が速くなったのか
akagami
0
10
1MBの壁にぶつかった話
akagami
0
20
Zod4.5を10分で
akagami
0
18
Viteはサーバーとクライアントを判定していない
akagami
0
24
【AWS RDS解説】待機系は読めるのか
akagami
0
24
OpenAI と Cursor、決裂までの3年
akagami
0
43
「まずはAI」の前に、分けて考える
akagami
0
28
【AWS Dogwood入門】使い分けと、採用するときの注意
akagami
0
17
【AWS Dogwood入門】認可はどこに置かれているか
akagami
0
31
Other Decks in Programming
See All in Programming
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
340
Go 1.27 における memory allocation の高速化
andpad
0
360
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
280
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
120
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
120
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
270
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
120
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.4k
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
570
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.1k
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
870
Featured
See All Featured
Test your architecture with Archunit
thirion
2
2.4k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
How GitHub (no longer) Works
holman
316
150k
WCS-LA-2024
lcolladotor
0
820
sira's awesome portfolio website redesign presentation
elsirapls
0
380
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
How to build a perfect <img>
jonoalderson
1
5.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Being A Developer After 40
akosma
91
590k
Transcript
2026年9月 S3 ライフサイクル入門 コスト削減で最初に手を付ける場所 赤神 青空
▪この10分で持ち帰ってほしいのはこれ1つ ライフサイクルは、コスト削減の第一手 ストレージ代を下げる方法はいくつもあるが、 設定を1つ入れるだけで以後ずっと効き続けるのはこれだけ。 手で運用すると 「古いログを消す」は誰かが忘れた時点で止まる。 ルールにすると バケットに置いた設定が毎日勝手に評価される。 まずライフサイクル。効果を測るのはその後でいい。 今ココ
はじめに 2/19
▪バケットに置く、オブジェクトの取り扱いルール S3 ライフサイクルとは何か 公式の定義は「低コストのストレージクラスへ移行するか、期限切れのオブジェクトを削除する」ことでコスト効率よく 保存する仕組み。 設定はバケット単位。1バケットにつきライフサイクル設定は1つ その中にルールを最大1,000個まで書ける ルールIDは255文字まで Status は
Enabled / Disabled 各ルールは「どれに」(フィルタ)と「何をする」(アクション)で構成される 今ココ はじめに 3/19
01 しくみ 4つのアクションと、移行の向き 今ココ しくみ 4/19
▪バージョニングの有無で効く相手が変わる 覚えるアクションは4つ アクションは「移す」か「消す」かの2系統しかない。それぞれに現行版用と非 現行版用がある。 これに加えて ExpiredObjectDeleteMarker(実体が消えて削除マーカーだけ残った状態の掃除)がある。 01 02 現行バージョンを別のスト レージクラスへ移す
現行バージョンを期限切れ にする Transition 今ココ しくみ Expiration 03 04 非現行バージョンだけを移 す・完全に削除する 完了しなかったアップロー ドを中止する NoncurrentVersion 系 AbortIncomplete MultipartUpload 5/19
▪下段はアーカイブ。復元しないと読めない 移行先と、その最小保存期間 【上段】ミリ秒でアクセスできる 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
▪右へは飛び越せる。左へは戻れない 移行はウォーターフォール 右⽅向なら、途中を⾶ばして移⾏できる S Standard 既定のクラス IA 系 Standard-IA One
Zone-IA Glacier IR ミリ秒で読める Glacier FR 数分〜数時間 Deep Archive 数時間 ライフサイクルでは戻せない(restore してコピーし直す) 最⼩保存期間 なし 30⽇ 90⽇ 90⽇ 180⽇ 公式ドキュメントの「ウォーターフォールモデル」を、最小保存期間つきで描き直したもの 今ココ しくみ 7/19
▪図で潰れる例外は、ここで押さえる どこからどこへ移せるか 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
02 制約 知らないとルールが作れない・課金が増える 今ココ 制約 9/19
▪この3つで設計ミスの大半は防げる 覚えるべき3つの数字 30日 IA 系へ移せるまで 作成から30日は Standard に置く 今ココ 制約
128KB 移行の下限 未満は既定でどこへも移行されない 40KB Glacier の追加分 オブジェクトごとに 32KB + 8KB 10/19
▪IA 系へは、すぐには移せない 制約① 30日ルール Standard-IA / One Zone-IA へ移す前に、最低30日は S3
に置いておく必要がある。 API 側も、この2クラスのときだけ Days に 30 未満を受け付けない Intelligent-Tiering・Glacier 系は 0 または正の整数でよい 非現行バージョンも同じで、非現行になってから30日以上経ったものだけが対象 今ココ 制約 11/19
▪2024年9月に既定の挙動が変わった 制約② 128KB 未満は動かない オブジェクトごとに移行リクエストが課金されるため、小さいものは移行代がストレージ節約を上回る。 現在の既定は「128KB 未満はどのストレージクラスへも移行しない」 2024年9月より前は「Glacier FR と
Deep Archive にだけは移行できる」だった 動かしたい場合はサイズフィルタを付ける ObjectSizeGreaterThan / ObjectSizeLessThan 指定した値そのものは範囲に含まれない 今ココ 制約 12/19
▪「あとで戻せる」前提で設計しない 制約③ 移行は取り消せない ✕ できないこと ライフサイクルで Glacier から Standard へ戻す
Deep Archive から別クラスへ変換する Glacier FR / Deep Archive を直接読む ◯ 実際の戻しかた restore で一時コピーを作る copy でストレージクラスを指定して上書き 復元中はアーカイブ代と Standard 代の両方が要る 一時コピーは指定期間だけ。期間が過ぎると消え、オブジェクトはアーカイブされたまま残ります。 今ココ 制約 13/19
▪1つのルールで多段移行を書くときの落とし穴 制約④ 最小保存期間をまたげない 最小保存期間より前に移すと、残りの期間分が課金される。 「4日後に Glacier Instant Retrieval、20日後に Deep Archive」は1つのルールでは書けない
Glacier IR の最小保存期間が90日なので、Deep Archive への移行は94日目以降になる ルールを2つに分ければ書けるが、その場合は早期削除料金が発生する 今ココ 制約 14/19
03 書きかた 設定例と、実行タイミング 今ココ 書きかた 15/19
▪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
▪「30日ちょうどの深夜に即座に」ではない いつ実行されるのか 日数は作成(最終更新)からの経過日数で数える 実行時刻は切り上げられる 1月15日 10:30 UTC 作成 + 3日
→ 1月19日 00:00 UTC 移行は非同期。物理的な移行前でも、ルール成立日から移行先の料金で課金が始まる 例外は Intelligent-Tiering で、こちらは物理移行の完了後に課金が変わる 今ココ 書きかた 17/19
▪明日バケットを見るときの順番 まとめ 01 ライフサイクルはコスト削減の第一手 1つ入れれば以後は自動。まずここから手を付ける。 02 移行は右へ一方通行 戻すには restore とコピーが要る。設計時に決め切る。
03 小さいオブジェクトは動かさない 128KB未満は移行代が節約額を上回る。 今ココ まとめ 18/19
▪すべて AWS出典公式ユーザーガイド オブジェクトのライフサイクルの管理(object-lifecycle-mgmt) Amazon S3 ライフサイクルを使用したオブジェクトの移行(lifecycle-transition-general-considerations) ライフサイクル設定の要素(intro-lifecycle-rules) Amazon S3 ストレージクラスの理解と管理(storage-class-intro)
今ココ まとめ 19/19