毎日、インターネットのユーザーは、コンテンツ配信ネットワーク ↗(CDN)がもたらすパフォーマンスと信頼性の恩恵を受けています。CDN はレイテンシ対策に不可欠になり、インターネット上でコンテンツを届ける主要な企業にとって必須です。お客様向けのパフォーマンスと信頼性を提供する一方で、CDN はアプリケーションのさらなる保護とコスト削減も可能にします。このドキュメントでは、Web アプリケーションにおける従来の課題、Cloudflare CDN がそれらの課題をどう解決するか、および CDN のアーキテクチャと設計を説明します。
このリファレンスアーキテクチャは、自社の既存インフラに関する責任や知見がある IT/ネットワーク担当者向けです。キャッシュ、DNS、ファイアウォールなど、コンテンツ配信に重要な技術と概念の経験があると読みやすくなります。
Cloudflare の基礎を固めるには、次の資料を推奨します。
- CDN とは? | Web サイト ↗(5 分で読めます)
- アナリストレポート: Cloudflare named Leader in 2024 GigaOm Radar for Content Delivery Networks ↗(20 分で読めます)
このリファレンスアーキテクチャでは、次の内容を学べます。
- Cloudflare CDN が、お客様へのコンテンツ配信をどう大きく改善するか
- anycast IP ルーティングが、信頼性の高い CDN 性能の確保になぜ重要か
- 階層化キャッシュの選択肢の幅と、ニーズに合う構成の選び方
ここ数年、とくに COVID-19 のパンデミックとリモートワークへの注目により、インターネットトラフィックは大きく増えました。ネットワークトラフィックの効率的な管理、レイテンシの削減、パフォーマンスの向上の必要性がさらに高まっています。
クラウドまたはオンプレミスでアプリケーションを運用する企業は、次の課題に直面します。
- パフォーマンスを高めるソリューションの実装
- 需要の増加に合わせて、可用性と冗長性を満たすアーキテクチャのスケールアウト
- 増大するインターネット上の脅威からの環境とアプリケーションの保護
- 上記すべてに伴うコスト増加の抑制
世界中のお客様にサービスを提供する場合、上記の課題への対応は大きな取り組みになります。従来、Web サイト/アプリケーションは中央にデプロイして可用性のために別リージョンへ複製するか、耐障害性のために少数のサーバー、ときには複数データセンターにまたがってデプロイします。
Web サイトをホストするサーバーをオリジンサーバーと呼びます。クライアントが Web サイトにアクセスすると、サーバーへリソースを要求します。1 つの Web サイトを開くだけで、ブラウザから HTML、CSS、画像、動画など数百件のリクエストが発生することがあります。HTTP/2 より前の HTTP では、これらの HTTP リクエストのそれぞれに新しい TCP 接続も必要でした。
HTTP/2 と HTTP/3 の拡張により、同一サーバーへの複数リクエストを 1 本の TCP 接続で多重化でき、サーバーリソースを節約できます。ただし、サーバーがこれらのリクエストに応答するあいだ、コンピューティングとネットワークのリソースは消費されます。より多くのクライアントが Web サイトにアクセスすると、次の結果になり得ます。
- オリジンサーバーがリクエストで過負荷になり、可用性に影響します。企業は追加負荷に対応するためのスケールアウトを検討し始めます
- 各リクエストがオリジンサーバーまで到達する必要があるため、レイテンシによりパフォーマンスとユーザー体験が悪化します
- エンドユーザーのレイテンシは、クライアントとオリジンサーバーの距離に比例し、クライアントの所在地によって体験がばらつきます。中国のように、その国との間のトラフィックでレイテンシが生じやすい特定の国では、とくに顕著です
- オリジンサーバーが増加するリクエストに応答するにつれ、帯域、egress、コンピューティングのコストが急増します
- トラフィック需要の増加に合わせてスケールアウトしても、インフラ層とアプリケーション層の分散型サービス拒否(DDoS)攻撃にさらされたままです
下の図 1 では、CDN がなく、オリジンサーバーが米国にあります。クライアントが Web サイトにアクセスするときの最初のステップは DNS 解決で、通常はユーザーの ISP が行います。次のステップは、オリジンサーバーへ直接送られる HTTP リクエストです。ユーザー体験は所在地によって変わります。たとえば、オリジンサーバーがある米国のユーザーはレイテンシがかなり低くなります。米国外のユーザーはレイテンシが増え、ラウンドトリップ時間(RTT)が高くなります。
より多くのクライアントがオリジンサーバーへリクエストを送ると、ネットワークとサーバーの負荷が増え、レイテンシと、リソースおよび帯域の利用コストが上がります。
セキュリティの観点では、オリジンサーバーはインフラ層とアプリケーション層の両方で DDoS 攻撃に対しても脆弱です。ボットネットからオリジンサーバーへ数百万件のリクエストを送り、リソースを消費して正当なクライアントへのサービスを妨げる DDoS 攻撃が起き得ます。
さらに耐障害性の面では、オリジンサーバーが一時的にオフラインになると、すべてのコンテンツがユーザーから到達不能になります。
CDN は、レイテンシ、パフォーマンス、可用性、冗長性、セキュリティ、コストに関するお客様の課題への対処に役立ちます。CDN の中核的な目標は、コンテンツをエンドユーザー、またはコンテンツにアクセスする人になるべく近い場所でキャッシュし、Web サイトとアプリケーションのレイテンシを下げ、パフォーマンスを高めることです。
CDN は、世界各地に多数のデータセンターを持ち、オリジンからのコンテンツをキャッシュすることで、レイテンシを下げ、パフォーマンスを高めます。目標は、ユーザーになるべく近い場所でコンテンツをキャッシュすることです。そのため、コンテンツは CDN プロバイダーネットワークのエッジでキャッシュされます。
-
Web サイトの読み込み時間の改善: すべてのクライアントが、かなり離れた場所にあるかもしれないオリジンサーバーへリクエストする代わりに、リクエストはローカルサーバーへルーティングされ、キャッシュ済みコンテンツで応答します。これによりレイテンシが下がり、全体のパフォーマンスが上がります。オリジンサーバーとクライアントの所在地に関係なく、CDN は可能なときはローカルのキャッシュコンテンツを返すため、すべてのユーザーでパフォーマンスがより一貫します。
-
コンテンツの可用性と冗長性の向上: すべてのクライアントリクエストをオリジンサーバーへ送る必要がなくなるため、CDN はパフォーマンスだけでなく、可用性と冗長性も提供します。リクエストはキャッシュ済みコンテンツを持つローカルサーバーへ負荷分散され、それらのサーバーがローカルリクエストに応答するため、オリジンサーバーの全体負荷が大きく下がります。オリジンサーバーへ連絡するのは必要なときだけです(コンテンツがキャッシュされていないとき、または動的でキャッシュできないコンテンツのとき)。
-
Web サイトセキュリティの向上: CDN はリバースプロキシとして動作し、オリジンサーバーの前に置かれます。そのため、DDoS 緩和、セキュリティ証明書の改善、その他の最適化など、強化されたセキュリティを提供できます。
-
帯域コストの削減: CDN はキャッシュ済みコンテンツでリクエストに応答するため、オリジンサーバーへ送られるリクエスト数が減り、関連する帯域コストも下がります。
一部の CDN 実装で重要な違いは、それぞれのローカル CDN ノードへトラフィックをどうルーティングするかです。CDN ノードへのリクエストのルーティングは、次の 2 つの方法で行えます。
DNS ユニキャストルーティング
この方法では、再帰 DNS クエリがリクエストを CDN ノードへリダイレクトします。クライアントの DNS リゾルバーが、リクエストを CDN の権威ネームサーバーへ転送します。DNS ユニキャストルーティングに基づく CDN は理想的ではありません。クライアントが DNS リゾルバーから地理的に離れていることがあるためです。最も近い CDN ノードの判断は、クライアントの IP アドレスではなく、クライアントの DNS サーバーに基づきます。また、DNS 応答に変更が必要な場合、DNS の time to live(TTL)の期限切れに依存します。
さらに、DNS ルーティングはユニキャストアドレスを使うため、トラフィックは特定のノードへ直接ルーティングされます。DDoS 攻撃のようなトラフィックスパイク時に問題になり得ます。
DNS ベースの CDN のもう 1 つの課題は、フェイルオーバー時の DNS の扱いが滑らかではないことです。通常は、別の IP アドレスを持つ DNS リゾルバーが引き継ぐために、新しいセッションまたはアプリケーションを開始する必要があります。
Anycast ルーティング
次のセクションで詳しく説明する Cloudflare CDN は、anycast ルーティングを使います。Anycast により、ネットワーク上のノードが同じ IP アドレスを持てます。同じ IP アドレスが異なる場所の複数ノードから広告され、クライアントの振り分けはインターネットのルーティングプロトコルである BGP で処理されます。
anycast ベースの CDN には、いくつかの利点があります。
- 着信トラフィックは、リクエストを効率よく処理できる容量を持つ、最も近いデータセンターへルーティングされます。
- 可用性と冗長性が本質的に備わります。複数ノードが同じ IP アドレスを持つため、1 つのノードが故障しても、リクエストは近くの別ノードへルーティングされるだけです。
- anycast はトラフィックを複数データセンターへ分散するため、全体の攻撃対象面が広がり、1 か所がリクエストで圧倒されにくくなります。このため、anycast ネットワークは DDoS 攻撃に対して非常に耐性があります。
Cloudflare は、CDN 向けに Software as a Service(SaaS)モデルを提供します。Cloudflare の SaaS モデルでは、インフラやソフトウェアを管理・維持しなくても、お客様は Cloudflare CDN の恩恵を受けられます。
Cloudflare CDN の利点は、このセクションで詳しく説明する次の 2 点に起因します。
- CDN は、ユーザーに近いサーバーでコンテンツをキャッシュすることで、本質的にパフォーマンスを高めます
- Cloudflare 独自のアーキテクチャと統合エコシステム
図 2 は、Cloudflare CDN の簡略図です。クライアントは、所在地に最も近い Cloudflare のグローバル anycast ネットワーク上のサーバーから応答を受け取るため、レイテンシと RTT が大幅に下がります。この図は、クライアントとオリジンの物理的な所在地に関係なく、一貫したエンドユーザー体験を示しています。
図 3 は、グローバル anycast ネットワーク上の Cloudflare CDN です。ネットワーク性能と耐障害性に anycast を使うことに加え、Cloudflare CDN は Tiered Cache を使い、お客様のコストを抑えつつ最適化された結果を届けます。お客様は Argo Smart Routing を有効化 し、オリジンサーバーへリクエストをルーティングする最速のネットワークパスを見つけることもできます。これらの機能は、このドキュメントの残りの部分で詳しく説明します。
上の図では、Cloudflare CDN と、それが載るグローバル anycast ネットワークについて、いくつか重要な点があります。
- 重要な差別化要因は、Cloudflare が 1 つのグローバルネットワークを使い、すべての Cloudflare データセンターのすべてのサーバーですべてのサービスを動かすことです。これにより、エンドユーザーは Cloudflare のサービスに最も近い場所から、最高の規模、耐障害性、パフォーマンスを得られます。
- Cloudflare はリバースプロキシです。クライアントからリクエストを受け取り、お客様のオリジンサーバーへプロキシします。そのため、すべてのリクエストはお客様のネットワークに到達する前に Cloudflare のネットワークを通ります。Cloudflare はエッジ(イングレス)で自インフラを硬化・保護しているため、すべてのお客様は結果としてインフラ層およびボリュメトリックな DDoS 攻撃からも守られます。リクエストとトラフィックは、保護された Cloudflare ネットワークを通ってから、お客様のオリジンサーバーに到達します。
- Cloudflare CDN は、Cloudflare のグローバル anycast ネットワークを活用します。そのため、着信リクエストはユーザーに最も近いノードへルーティングされ、そこで応答されます。
- anycast の本質的な利点は、レイテンシの低下、ネットワークの耐障害性、可用性の向上、正当なトラフィック負荷と DDoS 攻撃の両方を吸収する攻撃対象面の拡大によるセキュリティ向上です。Cloudflare のグローバル anycast ネットワークは 世界数百都市 ↗ に広がり、世界のインターネット接続人口の 95% に 50 ミリ秒以内で到達し、over 405 Tbps network capacity と DDoS 防御能力を提供します。
- Cloudflare ネットワーク内のエッジノードは、オリジンサーバーからのコンテンツをキャッシュし、キャッシュコピーでリクエストに応答できます。Cloudflare は同じエッジアーキテクチャで DNS、DDoS 防御、WAF、その他のパフォーマンス、信頼性、セキュリティサービスも提供します。
- Argo は、Cloudflare ネットワーク全体の最適化されたルーティングとキャッシュ技術を使い、より迅速、確実、安全にユーザーへ応答を届けます。Argo には Smart Routing と Tiered Cache が含まれます。Cloudflare は Argo を活用して、強化された CDN ソリューションを提供します。
サイトをオンボードすると、標準キャッシュがデフォルトで設定されます。標準キャッシュでは、各データセンターがオリジンサーバーの直接のリバースプロキシとして動作します。いずれかのデータセンターでのキャッシュミスは、イングレスデータセンターからオリジンサーバーへリクエストが送られる結果になります。
標準キャッシュは機能しますが、最も最適な設計ではありません。クライアントに近いキャッシュ済みコンテンツが、ほかの Cloudflare データセンターにすでに存在する可能性があり、その結果オリジンサーバーが不要に過負荷になることがあります。そのため、すべての Cloudflare プランに含まれる Tiered Cache を有効化するのが最善です。Tiered Cache では、特定のデータセンターがほかのデータセンターに対するオリジンのリバースプロキシになり、キャッシュヒットが増え、応答が速くなります。
Tiered Cache は Cloudflare ネットワークの規模を活かし、お客様オリジンへのリクエストを最小化します。リクエストが Cloudflare データセンターに入ったとき、要求されたコンテンツがローカルにキャッシュされていなければ、ほかの Cloudflare データセンターにキャッシュ済みコンテンツがないか確認します。
Cloudflare データセンター同士の距離は、データセンターとお客様オリジンサーバーの間の接続より短く、経路も速いため、クライアントへの応答が最適化され、キャッシュヒット率が大きく向上します。Cloudflare CDN は Argo Smart Routing のデータを使い、Tiered Cache に最適な上位ティアデータセンターを決めます。Argo Smart Routing はアドオンとして有効化し、キャッシュミスやその他の動的トラフィック向けに、データセンターとオリジンサーバーの間の最速パスを提供することもできます。
Cloudflare CDN では、お客様が階層化キャッシュを設定できます。なお、Cloudflare プランによって、Tiered Cache で使えるトポロジは異なります。デフォルトでは階層化キャッシュは無効で、メインメニューのキャッシュタブから有効化できます。
異なるキャッシュトポロジにより、お客様は Cloudflare とオリジンサーバーのやり取りを制御し、より高いキャッシュヒット率、より少ないオリジン接続、より低いレイテンシを確保できます。
| Smart Tiered Cache Topology(すべてのプラン) | Generic Global Tiered Topology(Enterprise のみ) | Custom Tiered Cache Topology(Enterprise のみ) |
|---|---|---|
| ほとんどの導入に推奨します。Tiered Cache を有効化したあとのデフォルト構成です。 | 世界中に分散した高トラフィックがあり、可能な限り高いキャッシュ利用率と最高のパフォーマンスを求める場合に推奨します。 | ユーザーベースに関する追加データがあり、注力したい特定の地理的地域があるお客様に推奨します。 |
| パフォーマンスのために CDN を使いたいが、オリジンサーバーへのリクエストと、Cloudflare とオリジンサーバーの間の帯域利用を最小化したいお客様に適します。 | Generic Global Tiered Topology は、キャッシュ効率とレイテンシのバランスを取ります。すべての Tier 1 データセンターを上位ティアとして使うよう Cloudflare に指示します。 | Custom Tiered Cache Topology では、特定のニーズに合うカスタムトポロジを設定できます(例: より多くのお客様を扱う特定の地理的場所に上位ティアを置く)。 |
| Cloudflare は、Argo のパフォーマンスとルーティングデータを使い、オリジンに対する最適な単一の上位ティアを動的に見つけます。 | カスタムトポロジの構築は、アカウントチームにご相談ください。 |
図 4 では、Smart Tiered Cache Topology で階層化キャッシュが有効です。図は 2 つの別々のトラフィックフローを示し、以下に要約します。最初のトラフィックフロー(クライアント 1)は、データセンター 1 に入るクライアントからのリクエストです。2 番目のトラフィックフロー(クライアント 2)は、別のデータセンターであるデータセンター 2 に入る、同じリソースに対する後続リクエストです。
| リクエスト 1 | リクエスト 2 |
|---|---|
| データセンター 1 で受け取った最初のリクエストは、どのクライアントからも以前にリクエストされていなかったため、キャッシュミスになります。 | 別のクライアントからの 2 番目のリクエストがデータセンター 3 で受け取られ、データセンター 3 が以前にどのクライアントからも同じリクエストを処理していなかったため、キャッシュミスになります。 |
| キャッシュ済みコンテンツが見つからないため、データセンター 1 は上位ティアデータセンターにコンテンツのコピーを要求します。 | キャッシュ済みコンテンツが見つからないため、データセンター 3 は上位ティアデータセンターにコンテンツのコピーを要求します。 |
| 上位ティアデータセンターにもコンテンツがローカルにキャッシュされていないため、オリジンサーバーへコンテンツを要求します。コンテンツを受け取ると、上位ティアデータセンターはローカルにキャッシュし、要求元の下位ティアデータセンターへ中継します。下位ティアデータセンターはコンテンツをキャッシュし、クライアントへ応答します。 | 上位ティアデータセンターでキャッシュ済みコンテンツが見つかります。データセンター 3 はこのコンテンツを取得してローカルにキャッシュし、クライアントへ応答します。 |
図 4 の上側のエンドユーザートラフィックフローは、クライアントに最も近いデータセンターであるデータセンター 1 がクライアントリクエストを受け取ったときのトラフィックフローです。イングレスデータセンターにローカルキャッシュがなく、階層化キャッシュが有効なため、上位ティアデータセンターへキャッシュ用コンテンツのコピーを要求します。上位ティアデータセンターにもコンテンツがキャッシュされていないため、オリジンサーバーへリクエストを送り、応答時に受け取ったコンテンツをキャッシュし、キャッシュ済みコンテンツで下位ティアデータセンターへ応答します。下位ティアデータセンターはコンテンツをキャッシュし、クライアントへ応答します。
同じコンテンツに対する新しいリクエストが別のデータセンター(下側のエンドユーザートラフィックフロー)であるデータセンター 3 に来たとき、コンテンツはローカルにキャッシュされていません。ただし、同じコンテンツに対する最初のリクエストでキャッシュされた上位ティアデータセンターから取得されます。
2 番目のリクエストに対して上位ティアデータセンターがキャッシュ済みコンテンツを返すことで、オリジンサーバーへの往復が避けられます。その結果、キャッシュヒット率が上がり、応答が速くなり、Cloudflare ネットワークとオリジンサーバーの間の帯域コストが節約され、リクエストへの応答によるオリジンサーバーの負荷が下がります。
Smart Tiered Cache と Global 階層化キャッシュの主な違いは、オリジンサーバーと通信できる上位ティアの数です。Smart Tiered Cache では、Argo のパフォーマンスとルーティングデータを使い、オリジンに最も近い上位ティアが選ばれます。つまり、下位ティアでキャッシュ MISS になったすべてのリクエストは、この単一の上位ティアへ集約され、オリジンサーバーへトラフィックを送らずに済むキャッシュ HIT の確率が高くなります。ただし、このアーキテクチャの欠点は、下位ティアが上位ティアから地球の反対側にある場合があることです。上位ティアがキャッシュからリクエストを満たせても、上位ティアと下位ティアの距離によっては、移動距離に応じて応答にレイテンシが加わることがあります。まとめると、Smart Tiered Cache はキャッシュ対象のすべてのリクエストが単一の上位ティアキャッシュ拠点を通ることを保証し、キャッシュ HIT 率を上げ、オリジンサーバーへのリクエストを減らします。一方、リクエストを出した下位ティアから上位ティアが遠くにあると、それらのリクエストを満たすレイテンシが高くなることがあります。
Generic Global Tiered Cache では、Cloudflare は世界中の最大規模のデータセンターを上位ティアキャッシュとして使います。一般に、上位ティアキャッシュは下位ティアキャッシュにより近くなります。下位ティアが上位ティアへリクエストを渡すときのレイテンシを大きく下げられます。ただし、各上位ティアキャッシュがオリジンから投入される必要があるため、オリジンが処理するリクエスト量は最終的に増えます。まとめると、Generic Global Tiered Cache はキャッシュが投入されたあとの応答時間を改善できますが、オリジンサーバーの負荷も増えます。
Regional Tiered Cache は、アーキテクチャに追加のキャッシュ層を加えることで、これら 2 つの戦略の長所を組み合わせます。Smart Tiered Caching で Regional Tiered Cache オプションを使うと、オリジンに最も近い単一の上位ティアキャッシュ拠点がある一方で、下位ティアにより地理的に近い Regional Tier 層が上位ティアと下位ティアの間に追加されます。下位ティアからのリクエストは、上位ティアへ送られる前に、まず Regional Tier でキャッシュを確認します。1 つの Regional Tier は複数の下位ティアキャッシュからリクエストを受け付けるため、世界中で利用されるアプリケーションのパフォーマンスとレイテンシを大きく改善できます。
Regional Tiered Caching は、Smart Tiered Caching と Custom Tiered Caching との併用を推奨します。ただし、Generic Global Tiered Cache のように多くの地域に多数の上位ティアがあるお客様には、Regional Tiered Cache は有益ではありません。
図 5 では、Smart Tiered Cache Topology で階層化キャッシュが有効です。図は、Regional Tiered Cache を有効にした Smart Tiered Cache のトポロジを示します。下位ティアキャッシュはキャッシュ MISS になったとき、まずより近くの地域ハブデータセンターへリクエストを送り、そのキャッシュで処理できるかを確認します。できなければ、必要に応じてリクエストは上位ティア、さらにオリジンサーバーへ進みます。
Argo Smart Routing は、Cloudflare ネットワーク上で最適化された経路を見つけ、より迅速にユーザーへ応答を届けるサービスです。前述のとおり、Cloudflare CDN は Argo Smart Routing を使い、Tiered Cache に最適な上位ティアデータセンターを決めます。
加えて、Argo Smart Routing を有効化すると、上位ティアデータセンターとオリジンサーバーの間で、常に Cloudflare ネットワーク上の最速パスを取れます。Argo Smart Routing がなくても、上位ティアデータセンターからオリジンサーバーへの通信は、インターネット上の問題を回避してインテリジェントにルーティングされ、オリジン到達性は確保されます。
Argo Smart Routing は、1 秒あたり約 5,000 万件の HTTP リクエストをルーティングして得られるリアルタイムデータとネットワークインテリジェンスを考慮してトラフィックを高速化します。Cloudflare ネットワーク上でオリジンサーバーへ向かう、最速かつ最も信頼性の高いネットワークパスを確保します。平均して、Argo Smart Routing は Web アセットで 30% 高速なパフォーマンスをもたらします。
図 6 は、Tiered Cache と Argo Smart Routing が有効でないときのトラフィックフローを示します。リクエストは最も近いデータセンターに入り、コンテンツがローカルにキャッシュされておらず Tiered Cache も有効でないため、リクエストはコンテンツ取得のためオリジンサーバーへ直接送られます。また、Argo Smart Routing が有効でないため、オリジンサーバーとの通信では信頼できるが、最速ではないかもしれないパスが使われます。
図 7 は、Tiered Cache と Argo Smart Routing の両方が有効なときのトラフィックフローを示します。データセンター 1 がリクエストを受け取りキャッシュミスになると、上位ティアデータセンターであるデータセンター 6 のキャッシュが確認されます。上位ティアデータセンターでキャッシュ済みコンテンツが見つからない場合、Argo Smart Routing が有効なら、上位ティアデータセンターからオリジンへ最速パスでリクエストが送られます。
最速パスは、輻輳、レイテンシ、RTT などのリアルタイムネットワークデータを考慮する Argo のネットワークインテリジェンス機能によって決まります。
Cloudflare CDN では、Argo Smart Routing は次のときに使われます。
- キャッシュミスがあり、コンテンツ取得のためにリクエストをオリジンサーバーへ送る必要があるとき。
- API などの動的コンテンツのようにキャッシュできないコンテンツへのリクエストがあり、リクエストがオリジンサーバーへ行く必要があるとき。
Tiered Cache の考え方を広げ、Cache Reserve は Cloudflare ネットワークの規模と速度をさらに活用し、加えて Cloudflare の永続オブジェクトストレージである R2 を使って、コンテンツをより長くキャッシュします。Cache Reserve は、オリジンからの egress 料金をなくしてお客様の請求を抑えつつ、複数層の耐障害性と保護を提供し、コンテンツが確実に利用できるようにします。コンテンツの読み込みが速くなることで、Web サイトのパフォーマンスも向上します。要するに、Cache Reserve は保持期間がより長い、追加の上位ティアキャッシュです。
Cache Reserve は Tiered Cache なしでも機能しますが、Cache Reserve と合わせて Tiered Cache を有効化することを推奨します。Tiered Cache は Cache Reserve へのリクエストを集約し、場合によっては排除します。冗長な読み取りと、キャッシュ済みコンテンツの冗長な保存をなくし、egress とストレージの料金を下げます。Cloudflare ダッシュボードから Cache Reserve を有効化すると、Tiered Cache なしで Cache Reserve を使おうとした場合に確認と警告が行われます。
Cache Reserve の保持期間は 30 日です。キャッシュヘッダーや TTL ポリシーに関係なく、キャッシュ済みコンテンツを 30 日間保持します。TTL ポリシーは引き続きコンテンツの鮮度に影響します。Cache Reserve 内でコンテンツのキャッシュ TTL が切れると、オリジンに更新がないか確認して再検証する必要があります。TTL ポリシーは、Cache-Control、CDN-Cache-Control レスポンスヘッダー、Edge Cache TTL、ステータスコード別キャッシュ TTL、Cache Rules など、いくつかの方法で設定できます。Cache Reserve からキャッシュが読み取られるたびに、保持タイマーは 30 日にリセットされます。30 日のあいだ Cache Reserve からキャッシュ済みコンテンツが読み取られなければ、そのキャッシュは削除されます。
Cache Reserve でキャッシュ可能とみなすための主な条件は、次の 3 つです。
- コンテンツがキャッシュ可能であること。キャッシュ可能なコンテンツの詳細は Cache のドキュメント を参照してください。
- TTL が少なくとも 10 時間に設定されていること。これは前段落のいずれかの方法で設定できます。
- レスポンスヘッダーで Content-Length ヘッダーが使われていること。なお、[Transfer-Method “chunked” を使うと、Cache Reserve への投入は行われません。
Tiered Caching と Argo Smart Routing と組み合わせると、Cache Reserve はキャッシュヒットを増やし、オリジンサーバーの負荷を下げつつ、コンテンツをエンドユーザーに近づけてパフォーマンスを高める強力な手段になります。
図 8 は、Cache Reserve がオリジンサーバーの負荷を下げつつ、上位および下位ティアデータセンターのキャッシュストアの再投入にも役立つ様子を示します。
レイテンシは、クライアントがオリジンまたはキャッシュからどれだけ離れているかだけでなく、中国のようにトラフィックの地理的地域によっても大きく変わります。これらのレイテンシ課題に対処するため、Cloudflare は次の 2 つの主要なソリューションを提供します。
- China Network は、オリジンの所在地に関係なく、中国にいるエンドユーザー向けに中国国内キャッシュを提供します。このソリューションは JD Cloud との協業で提供され、そのデータセンターを使うことで、中国国外のデータセンターと比べて中国ユーザー向けに最速かつ最も信頼性の高いキャッシュ性能を確保します。
- Global Acceleration は、オリジンから中国国内の JD Cloud データセンターへコンテンツを効率よく届ける、信頼性が高く安全な接続を提供します。Web アプリケーションや API 呼び出しのような動的コンテンツでとくに有益です。
まとめると、Cloudflare CDN は SaaS であり、レイテンシ、パフォーマンス、可用性、冗長性、セキュリティ、コストに関するお客様の課題への対処に役立ちます。Cloudflare CDN は Cloudflare のグローバル anycast ネットワークと Tiered Cache を活用し、お客様のコストを抑えつつ最適化された結果を届けます。お客様は(Argo Smart Routing を有効化)[argo-smart-routing/get-started/] して、オリジンサーバーへリクエストをルーティングする最速のネットワークパスを確保し、Cache Reserve を有効化してキャッシュヒットを増やし、コストをさらに抑え、Web サイトまたはアプリケーションのパフォーマンスを高めることもできます。