Cloudflare Workersは、リクエストのたびにユーザーが書いたコードを実行してレスポンスを組み立てる仕組みだ。同じ結果を返すだけのリクエストでも、これまでは基本的に毎回Workerが実行されていた。7月6日に発表された「Workers Cache」は、この「同じ結果になるはずのリクエスト」をWorkerの手前で検知し、実行せずにキャッシュから直接返せるようにする機能だ。
2階層のキャッシュ構造
仕組みはリクエストを受けたデータセンターごとの「下位層」キャッシュと、ネットワーク全体をまとめる少数の「上位層」キャッシュの2段構えになっている。両方でミスした場合にのみ、実際にWorkerが実行される。ポイントは、世界のどこかで最初にリクエストが来た時点で上位層にキャッシュが作られるため、その後は別のデータセンターからの初回アクセスであってもWorkerを実行せずに応答できる場合がある点だ。
導入のハードルの低さ
追加契約や上位プランへのアップグレードは不要で、すべてのプランのWorkerで今日から使え、Wranglerから有効化するだけでよい。既存のCache APIやTiered Cacheとは別の仕組みとして、Workerの実行回数そのものを減らすことに主眼を置いている。
コストへの効き方
たとえば、日本からのアクセスで一度キャッシュが作られていれば、その後アメリカやヨーロッパのユーザーが同じコンテンツに初めてアクセスしたときも、上位層キャッシュがヒットしてWorkerの実行をスキップできる可能性がある。グローバルに分散したユーザーを持つサービスほど、Workerの実行回数、ひいては従量課金のコストが目に見えて下がりやすい。既にWorkersを本番運用しているチームは、キャッシュキーの設計次第で恩恵の大きさが変わるため、導入時に既存のキャッシュ戦略と重複や矛盾がないか確認しておくとよいだろう。詳細はCloudflare Blogの記事(https://blog.cloudflare.com/workers-cache/)にある。