誰もが可能な限り高いキャッシュ率を追い求めています。コンテンツがCloudflareのキャッシュから送信されるようになると、Web訪問者はより速くコンテンツを読み込むことができ、Webサイト運営者はオリジンサーバーからのエグレス料金を削減することができます。さらに複数の耐障害性と保護層を提供することでコンテンツの可用性を高め、Webサイトの容易なスケーリングを可能にします。1年前、私たちはお客様がCloudflareのキャッシュから可能な限り多くのコンテンツを提供できるようにするため、Cache Reserveを導入しました。
本日、Cache Reserveのベータ版から一般公開(GA)への移行と、いくつかの魅力的な新機能の導入を発表できることを嬉しく思います。新機能の一例として、Cache ReserveをCloudflareダッシュボードのキャッシュ概要セクションに表示される分析内容に追加しました。これにより、お客様がCache Reserveをどのように使用しているかを時系列で確認できるようになります。また、エッジキャッシュ内のコンテンツはそのままに、Cache Reserve内のすべてのデータを削除する機能も追加しました。これは、Cache Reserveストレージを使用しなくなったお客様に便利です。
また、ベータ期間中に寄せられた貴重なフィードバックを基にした、どのファイルをCache Reserveに保存するかを組織でより詳細に制御できる新しいツールも導入しています。Cache Reserveのデフォルト設定は、キャッシュ可能ファイルをすべてキャッシュすることですが、一部のベータ版をご利用されたお客様から、「頻繁な更新が発生する特定のファイルをキャッシュしたくない」という意見もありました。これらのフィードバックを基に、Cache Reserveの適格性をCache Rules内で定義する機能を追加しました。この新しいルールは、どのトラフィックがCache Reserveに許可されるかを厳密に指定することを可能にします。
Cache Reserveは、CloudflareダッシュボードのCache Reserveセクションにアクセスし、ボタンを1つ押してCache Reserveを有効にするだけで実際に体験することができます。コスト効率とパフォーマンスに優れたコンテンツ配信をご体験ください。
キャッシングの背景
コンテンツ配信は、Webページ、動画、アプリケーション、はたまた猫の写真など、クライアントやブラウザがリクエストを行うことから始まります。このリクエストは、リクエストされたコンテンツのホストである配信元サーバーに送られます。発信元は必要なデータを組み立ててパッケージ化し、クライアントに送り返します。この時、多くの場合Webサイト運営者には、ホストからリクエストした訪問者にコンテンツを転送するための手数料が発生します。この「転送」されたデータ1GBあたりの料金は、Webサイト運営者への毎月のホスティング請求書に多く記載される項目です。私たちはこれを「エグレス料金」または「エグレス税」と呼んでおり、これが悪習であると考える理由を以前ブログに書きました。
Cloudflareには配信元からクライアントに戻されるレスポンスをキャッシュする機能があります。キャッシュを使用すると、同じコンテンツを要求する別の訪問者が、配信元サーバーではなく、当社のキャッシュサーバーの1つから受け取ることができます。ファイルはCloudflareのサーバーから提供されるため、Webサイト運営者はエグレス料金を節約することができます。また、Cloudflareのキャッシュサーバーは通常、お客様自身の配信元サーバーよりもエンドユーザに物理的に近い位置にあるため、パフォーマンスも向上します。
キャッシュからファイルを提供することは、インターネット上でコンテンツを効率的に配信するための基本であり、多くの運営者にとって欠かせない戦略です。キャッシュの有効性は、その「ヒット/ミス」比率を見ることで評価することができます。Webサイトのコンテンツがキャッシュサーバーから提供された場合、これをキャッシュ「ヒット」と呼びます。一方、コンテンツがキャッシュになく、コンテンツの新しいコピーを取得するために配信元サーバーに戻る必要がある場合、これをキャッシュ「ミス」と呼びます。
キャッシュミスが発生する理由
様々な理由により、適格なコンテンツがキャッシュから提供されないことがあります。1つのシナリオは、Cloudflareが新しいコピーが利用可能かどうかを配信元に再確認する必要がある場合に発生します。この状況は、お客様がキャッシュされたコンテンツを訪問者に提供する期間や、古くなった(stale)とみなすタイミングを指定するリソースの有効期限(TTL)が設定されている場合に発生します。しかし、_ユーザー_がどれくらいの期間キャッシュからコンテンツを提供しても安全であると指定するかは、一つの要素にすぎません。そのため、コンテンツ配信ネットワーク(CDN)でも、すべてのお客様のためにストレージを最適に利用する方法を検討し、適切なアセットが適切な場所にキャッシュされるようにネットワークの最適化を実行する必要があります。
CDNは、キャッシュ量が最大容量に近づいた際、他のアセット用にストレージを最適化するために、指定された有効期限(TTL)を迎える前にコンテンツを退去させるかどうかを決定する必要があります。Cloudflareでは、「Least Recently Used(最後に使われてからの経過時間が最も長いもの)」(LRU)として知られるアルゴリズムを採用し、使用頻度を基にコンテンツに立ち退かせる優先順位を決定しています。つまり、たとえコンテンツの有効期限(TTL)が長い間キャッシュされるように指定していたとしても、他のリソースよりも要求頻度が低い場合、より頻繁にアクセスされるコンテンツのために、場合によってはより早くキャッシュを削除する必要があります。
このアプローチは、キャッシュミスが予期せず発生することにユーザーが困惑することがありますが、退去が実行されない場合、リクエストする訪問者は離れたデータセンター内の保管されたコンテンツまで移動することになり、アセットのパフォーマンスが低下し、Cloudflareのネットワーク運用に非効率性をもたらすことになります。
しかし、お客様の中には、大量のコンテンツライブラリを所有しており、リクエストの頻度はそれほど高くないものの、配信元からの配信を避けたいと考える方もいます。従来のキャッシュ設定では、これらのアセットは使用頻度が低下すると退去させられますが、再度リクエストが来た場合、配信元から取得し、これによるエグレス料金料が発生します。Cache Reserveはこのようなシナリオのためのソリューションであり、お客様はアセットを自社の配信元サーバーではなくCloudflareのネットワークから配信することができ、関連するエグレス税を回避し、パフォーマンスを向上させることができます。
Cache Reserveの基本
Cache Reserveは、階層型キャッシュやR2ストレージなど、Cloudflareの複数のテクノロジーを組み合わせることで、アクセス頻度が低くてもCloudflareのネットワークから削除されない方法をシームレスに提供します。Cache Reserveに登録されると、コンテンツはLRUによって削除されることなく、かなりの長期間(デフォルトでは30日間)保存することができます。この期間中にコンテンツに対する別のリクエストが来た場合、さらに30日間(以降同様)、あるいは有効期限(TTL)の期間まで延長することができます。Cache Reserveは、すべてのキャッシュ可能なコンテンツをバックアップするセーフティネットとして機能するため、お客様は予期せぬキャッシュ退去による配信元からのエグレス料金を心配する必要はありません。
Cache Reserveの設定完了までの平均時間は数秒で、シンプルかつ効率的にヒット率を劇的に向上させることができます。CloudflareのダッシュボードのCache Reserveセクションにあるボタンを1つ押すだけで、キャッシュミス時にすべての適格なコンテンツがCache Reserveに書き込まれるようになり、Cloudflareが配信元にリソースを要求する前に取得されます。Cache Reserveを使用に関する詳細については、ドキュメントを参照してください。
また、Cache Reserveを使用することで、ホスティングプロバイダに対するエグレス料金を数分の一に抑えられることも多く、お客様は大幅なコスト削減を実現しています。このことに対してDockerは次のように表明しています。
「Cache Reserveを使用してキャッシュヒット率が2%向上したことで、S3のエグレスの約3分の2が削減されました。Cache Reserveに支払った金額に対し、エグレス料金の削減額はほぼ一桁上回るものでした。」Docker社 Brett Inman氏 | エンジニアリング・シニア・マネージャー
Cache Reserveの新機能
前回のCache Reserveについてのブログを書いて以来、私たちはユーザーの生活の質を向上させる3つの重要なアップデートを行いました。
新しい分析
これまでのCache Reserve分析では、特定のWebサイトで使用されたストレージの量や、特定の期間に使用された操作の推定回数を見ることができました。今回、従来のCache analyticsに近い分析が可能になり、Cache analyticsダッシュボードから、指定した時系列でストレージ容量と操作を表示することができる機能が追加されています。
さらに、改善後のCache Reserve分析では、Cache Reserveを使用することによるエグレス料金の推定節約金額も見ることができます。
また、今後数か月の間に、Cache Reserveから提供される最も多く、最もリクエストの多いアイテムについて、より詳細な情報を提供する予定です。
Cache Reserveのストレージ内容の消去
Cache Reserveの変更、削除、または完全な停止を希望するユーザーからは、Cloudflareの従来のエッジキャッシュの使用に影響を与えることなく簡単にストレージ内容を消去する機を求める声が寄せられています。従来、Cache Reserveのクリアはコンテンツのパージを実行していました。パージはエッジキャッシュにキャッシュされたコンテンツも消去するため、配信元から取得する機会が増加し、エグレス料金が発生する可能性があるため問題があります。
Cache Reserveのダッシュボードにあるボタンを押すだけで、ストレージ内容を完全に削除できるようになりました。この操作の実行後、Cache Reserveのクリアが完了するまで再有効化することはできません。この期間はCache Reserveに保存されている量によって異なりますが、通常24時間程度となります。
Cache Reserveの削除ボタンによる動作はパージとは異なります。パージは、1回の実行でCache Reserveとエッジキャッシュの両方を含むCloudflareの_すべて_のキャッシュ内リソースを無効にします。Cache Reserveの削除ボタンは、Reserve内のストレージ全体に限り削除します。現在、このアクションはゾーンに関連付けられたCache Reserveストレージ全体に対して実行できます。
キャッシュルールへの統合
アーリーアダプターから最も要望の多かったCache Reserveの機能の1つは、Webサイトのどの部分をCache Reserveへの保存の対象とするかを指定できる機能です。これまでは、Cache Reserveを有効にすると、Cache Reserveの対象となるWebサイトのすべてのアセットがReserveに保存されていました。エグレス料金を重視するお客様には、この方法をお勧めします。一方、Cache Reserveの対象とするアセットを自身で選択したいお客様のために、Cache Rulesを使用して通常のCache Rulesフィールド(ホスト名、パス、URLなど)に応じてCache Reserveに保存するアセットを指定したり、リソースの最小サイズなどの特定のルールを新たに設定して指定できるようになりました。例として、Cache Reserveに書き込むすべてのアセットの最小サイズを100kbに指定することができます。新しいルール機能を使用することで、Cache Reserveを利用するお客様は、エッジキャッシュ利用率はそのままに、Reserveの構築方法をカスタマイズし、さらにコストを削減することができます。
今すぐCache Reserveをお試しください!
Cloudflareのダッシュボードでのキャッシュセクションに移動し、[Cache Reserve] > [ストレージの同期の有効化]の順にクリックすることで、簡単にCache Reserveにサインアップできます。お試しいただき、是非ご意見をお聞かせください!