+ 作るログイン
図を読み込んでいます…
1 / 15
Cloudflare のすべて ― 1機能ずつ、仕組みと存在理由から / 全35本

Cloudflare 02:CDN とキャッシュ ― 近くで返す

発行
アニメモ公式
版
第1版
改訂
コマ
全15

Cloudflare の CDN が何をしているのかを、拠点に写しを置くキャッシュから説明します。MISS と HIT、既定でキャッシュされるファイル、キャッシュキー、Edge TTL と Browser TTL、Cache-Control、Cache Rules、cf-cache-status の読み方、パージ、料金と落とし穴まで。

なぜ、遠くのサーバーまで毎回取りに行くのか

Web ページを1枚表示するとき、ブラウザは HTML のほかに、画像・CSS・JavaScript・フォントなど、何十ものファイルを取りに行きます。そのほとんどは、誰が見ても同じ中身です。サイトのロゴは、東京の人が見てもブラジルの人が見ても同じ画像です。

それなのに、オリジン(あなたのサーバー)が東京に1台しかなければ、ブラジルの利用者は地球の反対側まで、ファイルごとに往復します。1回の往復に数百ミリ秒かかれば、ファイルが多いほどページの表示は遅くなります。

困るのは利用者だけではありません。

困りごと中身
遅い遠いほど往復に時間がかかる。ファイルの数だけ効いてくる
オリジンが忙しい同じファイルを何万回も送り続ける。アクセスが集中すると落ちる
通信費がかさむクラウドでは、サーバーから外に出る通信量に課金されることが多い

中身がみんな同じなら、利用者の近くに写しを置いて、そこから返せばよい。これが CDN の発想です。この号では、Cloudflare の CDN とキャッシュの仕組みを、「何が・どこに・どれだけの時間」覚えられるのかという視点で見ていきます。

※この号は 2026年9月時点の情報をもとにしています。料金・上限・画面の名前は変わることがあるので、公式のドキュメントで確かめてください。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 1 / 15
  • なぜ、遠くのサーバーまで毎回取りに行くのか
  • Cloudflare のエッジ(世界中の拠点)
  • logo.png を
  • 利用者
  • オリジン
  • ブラウザ・アプリ
  • あなたのサーバー
  • 東京のオリジンに、ブラジルから毎回取りに来る → 遠い・オリジンが忙しい・通信費がかさむ
  • 中身はみんな同じ。だったら近くに写しを置けばよい
  • 画像も CSS も、同じものを世界中の人が何度も取りに来る。

一言でいうと:近くの拠点が「写し」を覚えておく

CDN(Content Delivery Network)は、世界中に置いた拠点にファイルの写しを持たせ、利用者のいちばん近くの拠点から返す網です。写しを覚えておくことをキャッシュと呼びます。

Cloudflare の場合、特別な申し込みは要りません。01号で見たオレンジの雲(プロキシ)にした名前なら、最初からキャッシュが効いています。利用者のリクエストはエニーキャストで近くの拠点に届き、その拠点に写しがあれば、そこで返事が完結します。

観点キャッシュが無いキャッシュがある
返事をする場所遠くのオリジン近くの拠点
オリジンに届く数リクエストの数だけ写しが切れたときだけ
アクセスの集中オリジンが受け止める拠点が受け止める

もともと Cloudflare は、この CDN と、攻撃からの守り(04号)を無料で提供する会社として広まりました。今も、多くの人が Cloudflare から得ているいちばん大きな恩恵は、このキャッシュです。

ただし、何でも覚えればよいわけではありません。人によって中身が違うものを覚えて、別の人に返してしまうと大事故になります。この号の後半では、その線引きを見ていきます。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 2 / 15
  • 一言でいうと:近くの拠点が「写し」を覚えておく
  • Cloudflare のエッジ(世界中の拠点)
  • ← 返事
  • キャッシュ:拠点が写しを覚えておく
  • 利用者
  • logo.png の写し
  • オリジン
  • 新しい(TTL の内)
  • ブラウザ・アプリ
  • あなたのサーバー
  • CDN(Content Delivery Network):世界中の拠点に写しを置いて、近くから返す網
  • 追加の設定なしで、画像・CSS・JS などの静的なファイルが対象になる
  • これが CDN。Cloudflare では、オレンジの雲の名前で最初から効いている。

最初の1回は MISS:オリジンに取りに行く

キャッシュの動きを1つずつ追います。

利用者が logo.png を求めたとき、近くの拠点にまだ写しが無い場合、拠点はオリジンに取りに行きます。オリジンから受け取ったファイルを利用者に返しながら、同時に写しとして保存します。この状態を MISS と呼びます。

大事なのは、写しは拠点ごとに持つという点です。東京の拠点に写しがあっても、大阪の拠点には無いかもしれません。Cloudflare の拠点は世界中に数百あるので、人気のないファイルは、拠点ごとに毎回 MISS になりがちです。

起きること中身
1回目(東京の拠点)MISS。オリジンから取り、写しを覚える
2回目(東京の拠点)HIT。写しから返す
1回目(大阪の拠点)MISS。大阪の拠点は、東京の写しを知らない

この「拠点ごとに MISS する」問題を和らげるのが、拠点を階層に分けて、下の拠点が上の拠点に聞くようにする Tiered Cache です。これは11号で詳しく扱います。

また、写しはずっと残るとは限りません。拠点の容量には限りがあり、あまり求められないファイルは、期限の前でも追い出されることがあります。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 3 / 15
  • 最初の1回は MISS:オリジンに取りに行く
  • Cloudflare のエッジ(世界中の拠点)
  • キャッシュ:拠点が写しを覚えておく
  • 取りに行く
  • 利用者
  • オリジン
  • ブラウザ・アプリ
  • あなたのサーバー
  • MISS
  • 拠点ごとに写しを持つ。東京の拠点に写しがあっても、大阪の拠点では最初は MISS
  • (拠点どうしで写しを分け合う仕組みが11号の Tiered Cache)
  • 拠点に写しが無ければ、オリジンから取ってきて、返しながら覚える。

2回目からは HIT:オリジンに行かずに返す

同じ拠点に同じファイルが求められると、今度は写しから返します。これが HIT です。オリジンには何も届きません。

HIT のときの返事は、利用者の近くで完結するので速く、オリジンは何もしなくて済みます。人気のファイルほど、1回の MISS のあとに何万回もの HIT が続きます。

キャッシュがどれだけ効いているかは、HIT の割合(キャッシュ率)で測ります。管理画面の Caching の分析で、期間ごとの割合や、よく MISS しているファイルを確かめられます。

割合が低いときの原因見直す場所
そもそも対象になっていない既定の対象(次のページ)と Cache Rules
写しがすぐ切れるCache-Control の max-age、Edge TTL
同じファイルの写しが何通りもできるキャッシュキー(URL の ? の後ろ)
オリジンが覚えるなと言っているCache-Control の private・no-store、Set-Cookie

キャッシュの調整は、この表のどれが原因かを見極めて、1つずつ直していく作業です。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 4 / 15
  • 2回目からは HIT:オリジンに行かずに返す
  • Cloudflare のエッジ(世界中の拠点)
  • ← 返事
  • キャッシュ:拠点が写しを覚えておく
  • 利用者
  • logo.png の写し
  • オリジン
  • 新しい(TTL の内)
  • ブラウザ・アプリ
  • あなたのサーバー
  • HIT
  • キャッシュの効き目は「HIT の割合」で測る。管理画面の Caching の分析で見られる
  • HIT が増えるほど、速く・オリジンが楽・通信費も減る
  • 近いので速い。オリジンには1回しか届かない。

既定で覚えるのは「拡張子」で決まる静的ファイル

何も設定しないとき、Cloudflare は何を覚えるのでしょうか。答えは、URL の拡張子が決められた一覧に入っているファイルです。

一覧には、CSS・JavaScript・画像(png・jpg・webp・svg など)・フォント(woff2 など)・PDF・動画・圧縮ファイルなど、誰が見ても同じになりやすい種類が並んでいます。一覧の全体は公式のドキュメントにあります。

逆に、HTML は既定では覚えません。拡張子の無い URL(/about のような)や、API の JSON の応答も同じです。こうした応答は cf-cache-status: DYNAMIC になります。

なぜ HTML を覚えないのでしょうか。HTML は、ログインしている人の名前が入っていたり、カートの中身が入っていたりと、人ごとに違う可能性があるからです。人ごとに違うページを覚えてほかの人に返すと、情報漏えいになります。安全側に倒して、既定では覚えないのです。

一覧に入っていても、覚えないことがあります。

覚えない場合理由
オリジンが Cache-Control: private や no-store と言った覚えてはいけないと指示されている
応答に Set-Cookie が付いている人ごとの情報を含むかもしれない
状態コードが対象外エラーの一部などは覚えない

この既定を広げる(HTML も覚える)、狭める(この画像は覚えない)のが Cache Rules です。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 5 / 15
  • 既定で覚えるのは「拡張子」で決まる静的ファイル
  • 既定でキャッシュする(例)
  • 既定ではキャッシュしない
  • .css
  • .js
  • .png
  • .html(ページ)
  • .jpg
  • .webp
  • .svg
  • JSON(API)
  • .woff2
  • .pdf
  • .mp4
  • 拡張子なし /about
  • ほかに「オリジンが private や no-store と言った」「Set-Cookie 付き」も覚えない
  • この既定を広げたり狭めたりするのが Cache Rules(この号の後半)
  • HTML と API の応答は既定では覚えない。人ごとに違うかもしれないから。

キャッシュキー:何を「同じもの」とみなすか

拠点は、写しに名札を付けて覚えています。この名札がキャッシュキーです。リクエストが来ると、拠点は名札を作り、同じ名札の写しがあれば HIT になります。

既定のキャッシュキーは、ほぼ URL 全体(ホスト名・パス・? の後ろのクエリ文字列)です。つまり、次の3つは別々の写しになります。

URL写し
/img/logo.png?v=2写し A
/img/logo.png?v=3写し B(版が違うので別物。これは正しい)
/img/logo.png?utm_source=x写し C(中身は同じなのに別物)

2行目は、わざと別物にするよい使い方です。ファイルを更新したら ?v=3 にすれば、古い写しを消さなくても、新しい中身が配られます。ファイル名に版やハッシュを入れる(app.3f9a2c.js)のも同じ考え方で、ビルドの道具がよくやってくれます。

問題は3行目です。広告やメールのリンクに付く utm_... のような、中身に関係ないクエリで写しが増えると、同じ画像なのに MISS が繰り返されます。

Cache Rules では、キャッシュキーに含める・外すクエリを決められます。「utm_ で始まるものは無視する」「v だけを使う」といった形です。逆に、言語や端末の種類でページが変わるなら、その違いをキーに含めないと、英語のページが日本人に返る、といった事故が起きます。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 6 / 15
  • キャッシュキー:何を「同じもの」とみなすか
  • https://
  • example.com
  • /img/logo.png
  • ?v=2
  • = キャッシュキー(写しの名札)
  • /img/logo.png?v=2
  • 写し A
  • /img/logo.png?v=3
  • 写し B(別物。オリジンに取りに行く)
  • /img/logo.png?utm=x
  • 写し C(中身は同じなのに別物)
  • 既定のキーは URL 全体。?の後ろが違えば、別の写しになる。

2つの時計:Edge TTL と Browser TTL

写しには期限があります。期限までの時間を TTL(Time To Live)と呼びます。キャッシュには、2つの別々の時計がある点が大事です。

時計誰が覚えるか長くすると
Edge TTLCloudflare の拠点HIT が増え、オリジンが楽になる
Browser TTL利用者のブラウザ同じ人は Cloudflare にすら来なくなり、もっと速い

どちらも長いほうが速く見えますが、違いがあります。拠点の写しは、パージ(後のページ)で消せます。ブラウザの中の写しは、消せません。Browser TTL を1年にしてしまうと、ファイルを直しても、一度見た人のブラウザには1年間古いファイルが残ります。

そこで、よく使われる組み合わせは次のとおりです。

種類Edge TTLBrowser TTL
ファイル名に版が入った JS・CSS・画像長く長く(名前が変われば別物なので安全)
版の入らない画像やロゴ長く短く(直したらパージで消せるように)
HTML を覚える場合数分〜0 か、ごく短く

Edge TTL と Browser TTL は、オリジンの Cache-Control から決まるのが基本で、Cache Rules で上書きできます。

期限が切れたら「まだ同じ?」と聞く

Edge TTL が過ぎた写しは、すぐ捨てられるわけではありません。拠点はオリジンに、写しに付いていた ETag(中身の指紋)や Last-Modified を送って「まだ同じですか?」と確かめます。変わっていなければ、オリジンは 304 Not Modified という短い返事だけを返し、拠点は写しの期限を延ばして返します(REVALIDATED)。変わっていれば新しい中身を受け取ります(EXPIRED)。これが効くには、オリジンが ETag か Last-Modified を返している必要があります。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 7 / 15
  • 2つの時計:Edge TTL と Browser TTL
  • Cloudflare のエッジ(世界中の拠点)
  • Browser TTL
  • Edge TTL:拠点が写しを使い回す時間
  • 利用者
  • logo.png の写し
  • オリジン
  • 新しい(TTL の内)
  • ブラウザ・アプリ
  • あなたのサーバー
  • Edge TTL が長いほど HIT が増える。Browser TTL が長いと、ブラウザは Cloudflare にも来ない
  • パージで消せるのは拠点の写しだけ。ブラウザの中の写しは消せない → Browser TTL は控えめに
  • 拠点が覚えておく時間と、ブラウザが覚えておく時間は別に決められる。

基本は、オリジンの Cache-Control で決める

キャッシュの設定は、Cloudflare の管理画面だけで決めるものではありません。基本は、オリジンが応答ごとに `Cache-Control` ヘッダーで伝えるものです。どの応答が人ごとに違うかを一番よく知っているのは、アプリ自身だからです。

# ファイル名に版が入った静的ファイル:1年覚えてよい
Cache-Control: public, max-age=31536000, immutable

# HTML:ブラウザは毎回確かめる、CDN は60秒覚えてよい
Cache-Control: public, max-age=0, s-maxage=60

# ログイン後の画面や個人情報:誰も覚えてはいけない
Cache-Control: private, no-store
指定意味
max-age=秒覚えてよい時間。ブラウザにも CDN にも効く
s-maxage=秒CDN などの共有キャッシュだけに効く時間
privateブラウザだけ覚えてよい。CDN は覚えない
no-store誰も覚えてはいけない

CDN だけに別の指示を出したいときは、CDN-Cache-Control や、Cloudflare だけが読む Cloudflare-CDN-Cache-Control というヘッダーも使えます。ブラウザ向けの Cache-Control はそのままにして、拠点の時間だけ長くできます。

オリジン側で正しく書いておけば、Cloudflare 以外の CDN に替えたときもそのまま通用します。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 8 / 15
  • 基本は、オリジンの Cache-Control で決める
  • # 画像:長く覚えてよい(ファイル名に版を入れる前提)
  • max-age
  • ブラウザ(と CDN)
  • Cache-Control: public, max-age=31536000, immutable
  • # HTML:CDN だけ短く覚える
  • s-maxage
  • CDN だけ
  • Cache-Control: public, max-age=0, s-maxage=60
  • # ログイン後の画面:覚えてはいけない
  • private
  • CDN は覚えない
  • Cache-Control: private, no-store
  • no-store
  • 誰も覚えない
  • CDN だけに伝える CDN-Cache-Control、Cloudflare だけに伝える Cloudflare-CDN-Cache-Control もある
  • 「誰が・どれだけ覚えてよいか」をオリジンが応答ごとに伝える。

Cache Rules:既定を上書きする

オリジンを直せない、あるいはまとめて指定したい場合は、Cache Rules で既定を上書きします。管理画面の Caching → Cache Rules で作ります。

1つのルールは「もし(条件)なら、こうする(設定)」の形です。条件の書き方は、09号のルール全般と共通のルール式です。

# ルール1:ブログの HTML も覚える
条件: starts_with(http.request.uri.path, "/blog/")
設定: Eligible for cache / Edge TTL = 1時間

# ルール2:管理画面と API は絶対に覚えない
条件: starts_with(http.request.uri.path, "/admin")
   or starts_with(http.request.uri.path, "/api")
設定: Bypass cache

設定できることの例です。

設定中身
覚える/覚えない既定の対象外(HTML など)を覚えさせる、または対象を外す
Edge TTLオリジンの指定に従う・上書きする・状態コードごとに決める
Browser TTLブラウザに伝える時間を上書きする
キャッシュキークエリ文字列・ヘッダー・Cookie・国などを含める/外す

ルールは上から順に評価され、あとのルールが前のルールの設定を上書きします。「全体に効く広いルール」を上に、「例外」を下に置くのが基本です。HTML を覚えさせるときは、ログインしている人のリクエスト(セッションの Cookie がある)を除く条件を必ず入れてください。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 9 / 15
  • Cache Rules:既定を上書きする
  • # ルール1:ブログの HTML も覚える
  • もし starts_with(path, "/blog/")
  • 条件(式)
  • なら Eligible for cache・Edge TTL 1時間
  • 09号と同じ書き方
  • # ルール2:管理画面と API は絶対に覚えない
  • もし starts_with(path, "/admin") or
  • やること
  • starts_with(path, "/api")
  • なら Bypass cache
  • 覚える・TTL・キー
  • 「この条件なら覚える/覚えない、何秒」を管理画面やコードで決める。

答え合わせ:cf-cache-status ヘッダー

設定したら、本当に思いどおりに動いているか確かめます。Cloudflare を通った応答には、`cf-cache-status` というヘッダーが付いています。

curl -sI https://example.com/img/logo.png | grep -i -E "cf-cache-status|age|cache-control"
値意味次にすること
HIT写しから返した何もしなくてよい
MISS写しが無く、オリジンから取ったもう一度叩いて HIT になるか見る
EXPIRED期限が切れていて、取り直したTTL が短すぎないか
REVALIDATED期限切れだが、変わっていないと確かめた正常
BYPASS対象だが、ヘッダーやルールで見送ったCache-Control・Set-Cookie・Bypass のルール
DYNAMICそもそも対象ではない覚えたいなら Cache Rules で対象にする

Age ヘッダーは、写しが作られてから何秒たったかを表します。HIT なのに Age が小さいままなら、写しがすぐ追い出されているのかもしれません。

注意点として、MISS を1回見ただけで「効いていない」と判断しないことです。写しは拠点ごとなので、別の拠点を通れば MISS になり得ます。同じ場所から2〜3回叩いて確かめてください。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 10 / 15
  • 答え合わせ:cf-cache-status ヘッダー
  • HIT
  • 写しから返した
  • MISS
  • 写しが無く、オリジンから取った(次から HIT)
  • EXPIRED
  • 期限切れで、取り直した
  • REVALIDATED
  • 期限切れだが、変わっていないと確かめて返した
  • BYPASS
  • 覚える対象だが、ヘッダーやルールで見送った
  • DYNAMIC
  • そもそも覚える対象ではない(既定の HTML など)
  • 確かめ方:curl -sI https://example.com/logo.png | grep -i cf-cache-status
  • 応答のヘッダーを見れば、拠点で何が起きたかが分かる。

パージ:古い写しを消す

ファイルを直したのに、拠点に古い写しが残っている。そんなときはパージ(キャッシュの消去)をします。管理画面の Caching → Configuration から、または API で行います。

消し方使いどころ
URL を指定直したファイルが分かっているとき
タグ(Cache-Tag)応答に付けたタグで、関係するものをまとめて消す
前方一致(prefix)/blog/ の下を全部、など
ホスト名img.example.com の分だけ、など
すべて最後の手段

以前は URL の指定以外は企業向けプランだけの機能でしたが、2025年から、すべての消し方が全プランで使えるようになりました。ただし、プランごとに API を呼べる回数に上限があります。

curl -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/purge_cache" \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -d '{"files":["https://example.com/img/logo.png"]}'

「すべて消す」は気軽に使わないでください。消した直後は世界中の拠点で一斉に MISS になり、オリジンに負荷が集中します。パージに頼るより、ファイル名に版を入れて「新しい名前の別物」として配るほうが、安全で確実です。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 11 / 15
  • パージ:古い写しを消す
  • Cloudflare のエッジ(世界中の拠点)
  • キャッシュ:拠点が写しを覚えておく
  • 利用者
  • logo.png の写し
  • オリジン
  • パージで消した
  • ブラウザ・アプリ
  • あなたのサーバー
  • 消すと次のリクエストは MISS になり、オリジンから新しい中身を取る
  • 「全部消す」は最後の手段。一斉に MISS になり、オリジンに負荷が集中する
  • URL・タグ・前方一致・ホスト名・全部。2025年から全プランで使える。

料金と制限

CDN とキャッシュの基本は、無料プランから使えます。

項目内容
キャッシュ・Cache Rules無料プランから使える。ルールの本数はプランで違う
配信量キャッシュから配信した量に応じた課金は無い
パージ全プランで全部の消し方が使える。API の回数に上限あり
1ファイルの大きさプランごとに、覚えられる大きさの上限がある
Tiered Cache拠点を階層化して MISS を減らす。無料で使える(11号)
Cache ReserveR2 の上に写しを長く置く有料の仕組み。使った量に応じて課金

Cache Reserve は、写しが拠点の容量から追い出されてしまう問題への答えです。写しを R2(22号)の上に長く保存しておき、拠点に無いときはそこから返します。オリジンまで戻る回数を減らせますが、保存量と読み書きの回数に応じて料金がかかります。

1ファイルの上限や、ルールの本数、パージの回数は、プランや時期で変わります。公式の Limits のページで確かめてください。

注意点として、Cloudflare の利用規約では、動画や大量の大きなファイルを CDN で配ることには制限があります。動画を配るなら31号の Stream、大きなファイルは R2 を使うのが想定された道です。

※2026年9月時点の情報です。料金・上限は変わるので、公式で確かめてください。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 12 / 15
  • 料金と制限
  • 無料プラン
  • キャッシュ・Cache Rules・パージ(回数に上限)
  • 転送量
  • キャッシュの配信量に応じた課金は無い
  • 1ファイルの上限
  • プランごとに上限あり(公式の Limits)
  • Cache Reserve
  • R2 に写しを長く置く有料の仕組み
  • Tiered Cache
  • 拠点の階層化。無料で使える(11号)
  • 2026年9月時点。料金・上限は変わるので公式で確かめること
  • CDN とキャッシュは無料プランから。容量の上限や永続化は有料の範囲。

よくある落とし穴

キャッシュは、効かないと遅いだけですが、効きすぎると事故になります。

失敗なぜ起きるか対策
他人のマイページが見えるログイン後の HTML まで覚えるルールを作ったセッションの Cookie があるときは Bypass。アプリ側で private を返す
いつまでも BYPASSオリジンが全部の応答に Set-Cookie を付けている静的ファイルには Cookie を付けない
HIT の割合が伸びない広告の utm_ などで写しが何通りもできるキャッシュキーから外す
直したのに古いままBrowser TTL が長く、ブラウザが持っている版をファイル名に入れる。Browser TTL は控えめに
全部パージして落ちる一斉に MISS になり、オリジンに押し寄せる狭い範囲だけ消す

1つ目は特に注意してください。「全部覚える」設定は速さの面では魅力的ですが、人ごとに違うページを別の人に返すと、個人情報の漏えいになります。覚えてよいかどうかは、アプリ側の `Cache-Control` で明示するのが一番の防ぎ方です。

もう1つ、開発中に「キャッシュのせいで変更が見えない」と感じたら、管理画面の Development Mode で一時的にキャッシュを止められます(一定時間で自動で戻ります)。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 13 / 15
  • よくある落とし穴
  • ログイン後の HTML まで「全部覚える」にして、他人の画面が見える
  • Set-Cookie 付きの応答で、いつまでも BYPASS のまま
  • utm などの付いた URL で写しが増え、HIT が伸びない
  • Browser TTL を長くして、パージしても利用者の画面が古いまま
  • 静的ファイルはファイル名に版を入れて長く、HTML は短く
  • いちばん怖いのは、人ごとに違うページを覚えて別の人に返すこと。

他の号とのつながり

キャッシュは、「オリジンに行かずに済ませる」ための仕組みの中心で、多くの号と関わります。

号つながり
01 DNSキャッシュはオレンジの雲の名前にだけ効く
09 ルールCache Rules の条件は、ルール式と同じ書き方
11 Argo と Tiered Cache拠点を階層化して、オリジンに届く MISS を減らす
18 WorkersCache API で、自分のコードから写しを読み書きできる
22 R2Cache Reserve の置き場。オリジンそのものにもなる
31 Images と Stream画像の変換・動画の配信は専用の道具で

Workers(18号)からは、fetch() にキャッシュの指定を付けたり、caches.default で写しを直接読み書きしたりできます。API の応答のように、ふつうは覚えないものを「条件付きで少しだけ覚える」といった細かい制御が必要になったら、Workers の出番です。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 14 / 15
  • 他の号とのつながり
  • 01 DNS
  • 09 ルール
  • 11 Tiered Cache
  • オレンジの雲でだけ効く
  • 同じ式でキーや TTL を
  • 拠点の階層で MISS を減らす
  • 18 Workers
  • 22 R2
  • 31 Images
  • Cache API で自分で覚える
  • Cache Reserve の置き場
  • 画像を変換して配る
  • キャッシュは「オリジンに行かない」ための仕組みの中心。

まとめ:近くで返し、オリジンには1回だけ

この号で見たことをまとめます。

項目内容
なぜ要るか同じファイルを遠くのオリジンから何度も送るのは、遅く・重く・高い
仕組み拠点が写しを覚え、1回目は MISS、2回目から HIT
既定の対象拡張子で決まる静的ファイル。HTML と API は覚えない
キャッシュキー既定は URL 全体。不要なクエリは外す
2つの時計Edge TTL(パージで消せる)と Browser TTL(消せない)
決め方基本はオリジンの Cache-Control。上書きは Cache Rules
確かめ方cf-cache-status と Age
消し方パージ。全プランで URL・タグ・前方一致・ホスト名・全部

次の03号では、オレンジの雲の名前にもう1つ自動で付いてくるもの、SSL/TLS の証明書を見ていきます。

  • Cloudflare のすべて 02 ― CDN とキャッシュ
  • 15 / 15
  • まとめ:近くで返し、オリジンには1回だけ
  • Cloudflare のエッジ(世界中の拠点)
  • ← 返事
  • キャッシュ:拠点が写しを覚えておく
  • 利用者
  • logo.png の写し
  • オリジン
  • 新しい(TTL の内)
  • ブラウザ・アプリ
  • あなたのサーバー
  • MISS → HIT。キーは URL、時計は Edge TTL と Browser TTL の2つ
  • 人ごとに違うものは覚えない。確かめるのは cf-cache-status
  • 既定は拡張子で決まる。Cache-Control と Cache Rules で広げ、ヘッダーで確かめる。

0 件のコメント

読み込み中…

権利侵害・不適切な内容の連絡: [email protected]