Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Workers Cache を知る
Search
syumai
September 24, 2026
Programming
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Workers Cache を知る
「Cloudflare Workers実践LT 〜移行から運用、コストの話まで〜」の発表資料です!
https://findy.connpass.com/event/405562/
syumai
September 24, 2026
More Decks by syumai
See All by syumai
自分的「カンファレンスの楽しみ方」
syumai
0
220
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.6k
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
2.1k
Oxlintのカスタムルールの現況
syumai
6
2.1k
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
2
1.6k
『[入門] Cloudflare Workers』本はなぜ誕生したのか
syumai
0
650
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
9
3.4k
知られているようで知られていない JavaScriptの仕様 4選
syumai
3
1.3k
CloudflareのSandbox SDKを試してみた
syumai
0
1.2k
Other Decks in Programming
See All in Programming
気持ちぃ〜角丸 Squircle
ryu1013
0
280
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
480
Kubernetes祭り #2 OP/ED
bells17
0
110
最近”作らせてる” ローカルAIアプリの話
akit37
0
450
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
380
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
330
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
160
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
360
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
490
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
400
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
240
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Git: the NoSQL Database
bkeepers
PRO
433
67k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Statistics for Hackers
jakevdp
799
230k
How to make the Groovebox
asonas
2
2.5k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
Leo the Paperboy
mayatellez
10
2.4k
Facilitating Awesome Meetings
lara
57
7.2k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Transcript
Workers Cache を知る 2026-9-24 TECH BATON in 東京 〜 Cloudflare
Workers実践LT 〜 @syumai
whoami syumai LayerX ソフトウェアエンジニア バクラクヘルプデスク エージェントを開発中 『[入門] Cloudflare Workers』著者 Asakusa.go
/ ECMAScript 仕様輪読会 主催 X: @__syumai Website: https://syum.ai © LayerX Inc.
今日話すこと Workers Cacheとは? 設定方法 従来のCache APIとの違い Workers Cacheの最大の特徴 zoneに縛られない その他の特徴
2段階Cache、async SWRなど 料金 © LayerX Inc. 3
Workers Cacheとは?
Workers Cacheとは? 2026年7月にリリースされた、Workerの裏側ではなく、表側にあるCache https://blog.cloudflare.com/workers-cache/ Workerごとに前段にCacheを立てられる Cache HITすると、Worker自体が呼ばれない レンダリングもDBアクセスも走らない CPU時間の課金も発生しない ©
LayerX Inc. 5
従来のCache API https://blog.cloudflare.com/workers-cache/ © LayerX Inc. 6
Workers Cache https://blog.cloudflare.com/workers-cache/ © LayerX Inc. 7
従来のCache APIの使い方
従来のCache APIの使い方 Cacheを引くのもWorkerの仕事なので、Workerは毎回実行される Cache HITでもCPU時間の課金が発生する zoneの設定が必要 では動作しない 独自ドメインの設定が必要 workers.dev ©
LayerX Inc. 9
従来のCache APIの使い方 Workerのコード内から caches.default を明示的に呼んでいた → これが不要に! © LayerX Inc.
10
Workers Cacheの設定方法
Workers Cacheの設定方法 wrangler.jsonc © LayerX Inc. に cache 設定を追加するだけ 12
Workers Cacheの使い方 Cacheの制御は Cache-Control などのレスポンスヘッダーで行う HTTP Cachingの仕様に沿った仕組み © LayerX Inc.
13
Workers Cacheの使い方 パージもWorkerのコードから呼ぶ Cache-Tag やパスのプレフィックスを指定できる ※ パージはWorker entrypointにスコープされる zoneの他のコンテンツを消し飛ばす心配がない ©
LayerX Inc. 14
Workers Cacheの最大の特徴
zoneに縛られない
zoneに縛られない 従来のCache APIはzoneごと Cache Rules、Page Rules、拡張子リスト etc. Workerはzoneの設定に合わせるか、Cache自体を回避するかのどちらかだった Workers CacheはWorkerごと
zoneの設定は一切適用されない Workerのレスポンスの Cache-Control ヘッダーで制御 なんならWorker entrypointごとでも制御可能 © LayerX Inc. 17
「Workerごとに前段にCacheが立つ」 とはどういうことか?
「Workerごとに前段にCacheが立つ」とはどういうことか? workers.dev ドメインでもCacheが効く プレビューURL、Workers for Platformsのテナントでも効く 複数zoneでCacheを共有できる Cacheはhostnameではなく、Workerに対してつく api.example.com と
api.example.net で1つのCacheを共有できる Service bindingsの前段でもCacheが効く © LayerX Inc. 19
service binding Client Cache Worker A のCache © LayerX Inc.
Worker A Cache Worker B Data source (DBなど) Worker B のCache 20
応用: Worker内でのCache分離
応用: Worker内でのCache分離 Workers CacheはすべてのWorker entrypointの手前に立つ default export、名前付き WorkerEntrypoint のどちらも対象 ctx.exports
経由の同一Worker内の呼び出しも対象 WorkerEntrypoint を分けることで、Worker内でも部分的にCacheを活用可能 認証する外側はCacheせず、重い内側だけCacheする、など © LayerX Inc. 22
Worker内でのCache分離の例
Worker内でのCache分離の例 どのentrypointをCacheするかは exports マップで指定する © LayerX Inc. 24
Worker内でのCache分離の例 外側: 認証処理だけ行って、リクエストを内側に流す 毎回実行される © LayerX Inc. 25
Worker内でのCache分離の例 内側: 重い処理。Cacheがこの手前に立つのでCache HIT時は実行されない © LayerX Inc. 26
その他の特徴
その他の特徴 2段階Cache 非公開コンテンツのキャッシュ ( ctx.props ) async stale-while-revalidate Vary ©
LayerX Inc. 28
2段階Cache 世界のどこかで1度Cacheがstoreされたら、全データセンターがそのCacheを配信でき る仕組み Workerの実行回数を最小化できる Cacheが2つのtierに分かれている lower tier: ユーザーに最も近いデータセンターのCache upper tier:
ネットワーク全体のfillを集約する層 設定不要で使える © LayerX Inc. 29
https://blog.cloudflare.com/workers-cache/ © LayerX Inc. 30
非公開コンテンツのキャッシュ ( ctx.props ) 呼び出し側のWorkerが渡す ctx.props がキャッシュキーの一部になる props の値ごとに別のCacheエントリが作られる ユーザーAのための応答がユーザーBに漏れることがない
従来、認証付きのコンテンツはキャッシュ不可だった → ユーザーごとに分離してキャッシュ可能に © LayerX Inc. 31
async stale-while-revalidate 期限切れ後も、ユーザーを待たせずに裏で更新できる Fresh期間 ( max-age ): Cacheが応答。Workerは未実行 Stale期間 (
stale-while-revalidate ) stale応答を即返す ( Cf-Cache-Status: UPDATING ) 裏でWorkerが更新するので、誰も待たない 両方の期間の外: Workerが実行され、ユーザーが待つ 2月にCloudflareのzone Cacheでサポートされたものと同じものが使える https://developers.cloudflare.com/changelog/post/2026-02-26-async-stale-while-revalidate/ © LayerX Inc. 32
https://blog.cloudflare.com/workers-cache/ © LayerX Inc. 33
Vary 1つのURLに複数の表現がある場合に、ヘッダ値ごとに別バリアントを保存できる Cloudflareのzone Cacheでは、9月22日にCache Rulesを使って指定できるようになっ たばかり © LayerX Inc. https://blog.cloudflare.com/vary-support/
34
実測値からの補足 Cache API利用時と、Workers Cache利用時でCacheの振る舞いは基本的に同じだった Varyの解釈は異なった Workers Cache はVaryを自動でRFC準拠、CDNはopt-in設定が必要 HTTP Status
200のレスポンスのheuristic Cacheにはいずれも2時間のデフォルトTTLを仕様 Statusごとには異なっている部分も多い Workers Cache側の記載: 200, 203, 204 レスポンス -> 2時間 Cache API側の記載: 200, 206, 301 レスポンス -> 2時間 その他詳細は下記URLのレポートに記載しています https://github.com/syumai/research-cf-workers-cache © LayerX Inc. 35
料金 結果 HIT (Worker未実行) MISS / BYPASS リクエスト 標準 標準
CPU 課金なし 課金あり ※注意: static assets・Worker間呼び出しも課金対象になる いずれもWorkerの手前のCacheを参照するようになるため © LayerX Inc. 36
まとめ Workers Cacheは、Workerの前段に立つCache Cache HIT時はWorker自体が実行されない への設定追加と Cache-Control ヘッダの指定だけで使える zoneではなくWorkerにつくので、 workers.dev
でもService bindingsの前段でも効く Worker entrypoint単位でCacheを分離できる wrangler.jsonc © LayerX Inc. 37