コンテンツ配信ネットワーク (CDN)
毎日、インターネットのユーザーは、コンテンツ配信ネットワーク ↗ (CDN) によって提供されるパフォーマンスと信頼性の恩恵を享受しています。CDNは、レイテンシを克服するために必須であり、インターネット上でコンテンツをユーザーに提供する主要な企業にとっての要件となっています。CDNは、顧客にパフォーマンスと信頼性を提供するだけでなく、企業がアプリケーションをさらに安全にし、コストを削減することを可能にします。この文書では、顧客がウェブアプリケーションで直面する従来の課題、Cloudflare CDNがこれらの課題をどのように解決するか、CDNのアーキテクチャと設計について説明します。
このリファレンスアーキテクチャは、組織の既存のインフラストラクチャに対して何らかの責任を持つITまたはネットワークの専門家を対象としています。キャッシング、DNS、ファイアウォールなど、コンテンツ配信に重要な技術や概念に関する経験があると便利です。
Cloudflareについての基礎的な理解を深めるために、以下のリソースをお勧めします:
- CDNとは? | ウェブサイト ↗ (5分で読めます)
- アナリストレポート: Cloudflareが2024 GigaOm Radar for Content Delivery Networksでリーダーに選ばれました ↗ (20分で読めます)
このリファレンスアーキテクチャを読むことで、以下のことを学べます:
- Cloudflare CDNが顧客へのコンテンツ配信をどのように大幅に改善できるか
- Anycast IPルーティングが信頼性のあるCDNパフォーマンスを確保する上で重要である理由
- 階層的キャッシングオプションの範囲と、ニーズに合ったものを選択する方法
過去数年間、特にCOVID-19パンデミックの到来とリモートワークへの注目により、インターネットトラフィックが大幅に増加し、ネットワークトラフィックを効率的に管理し、レイテンシを削減し、パフォーマンスを向上させる必要性が高まっています。
クラウドまたはオンプレミスでアプリケーションを運営している企業は、以下の課題に直面しています:
- パフォーマンスを向上させるためのソリューションを実装すること
- 需要が増加するにつれて、可用性と冗長性の懸念に対応するためにアーキテクチャをスケールアウトすること
- 増大するインターネットの脅威から環境とアプリケーションを保護すること
- 上記のすべてに関連するコストの増加を抑えること
顧客にサービスを提供する企業は、これらの課題に対処するために大規模な取り組みを必要とします。従来、ウェブサイト/アプリケーションは中央に展開され、可用性のために別の地域に複製されるか、複数のデータセンターにまたがる数台のサーバーに展開されていました。
ウェブサイトをホストするサーバーはオリジンサーバーと呼ばれます。クライアントがウェブサイトにアクセスすると、サーバーからリソースを要求します。1つのウェブサイトにナビゲートすることで、ブラウザからHTML、CSS、画像、動画などのリクエストが数百件生成されることがあります。HTTP/2以前のバージョンでは、これらのHTTPリクエストのそれぞれが新しいTCP接続を必要としました。
HTTP/2およびHTTP/3の改善により、単一のTCP接続を介して同じサーバーへの複数のリクエストを多重化できるようになり、サーバーリソースを節約できます。しかし、サーバーがこれらのリクエストに応答するため、コンピュートおよびネットワークリソースは依然として消費されます。ウェブサイトにアクセスするクライアントが増えると、次のような結果が生じる可能性があります:
- オリジンサーバーがリクエストで過負荷になり、可用性に影響を与える; 企業は追加の負荷を処理するためにスケールアウトを検討し始める
- 各リクエストがオリジンサーバーに到達する必要があるため、レイテンシのためにパフォーマンスとユーザーエクスペリエンスが影響を受ける
- エンドユーザーのレイテンシは、クライアントとオリジンサーバーの距離に比例し、クライアントの位置に基づいて異なる体験をもたらす。特に、中国のように、その国からのトラフィックやその国へのトラフィックによってレイテンシが発生する特定の国では特に当てはまります。
- オリジンサーバーが増加するリクエストに応答するにつれて、帯域幅、出口、およびコンピュートコストが急激に増加する
- 顧客がトラフィックの増加に対応するためにスケールアウトしても、インフラストラクチャレベルおよびアプリケーションレベルの分散サービス拒否(DDoS)攻撃にさらされる
以下の図1では、CDNが存在せず、オリジンサーバーが米国にあります。クライアントがウェブサイトにアクセスすると、最初のステップはDNS解決で、通常はユーザーのISPによって行われます。次のステップは、オリジンサーバーに直接送信されるHTTPリクエストです。ユーザーエクスペリエンスは、彼らの位置によって異なります。たとえば、オリジンサーバーがある米国のユーザーのレイテンシははるかに低いことがわかります。米国外のユーザーにとっては、レイテンシが増加し、往復時間(RTT)が高くなります。
オリジンサーバーへのリクエストが増えると、ネットワークとサーバーの負荷が増加し、レイテンシが高まり、リソースと帯域幅の使用に対するコストが増加します。
セキュリティの観点から、オリジンサーバーはインフラストラクチャとアプリケーション層の両方でDDoS攻撃に対して脆弱です。DDoS攻撃は、ボットネットからオリジンサーバーに数百万のリクエストを送信することで開始され、リソースを消費し、正当なクライアントにサービスを提供できなくなります。
さらに、冗長性の観点から、オリジンサーバーが一時的にオフラインになると、すべてのコンテンツがユーザーにアクセスできなくなります。
CDNは、レイテンシ、パフォーマンス、可用性、冗長性、セキュリティ、コストに関する顧客の課題に対処するのに役立ちます。CDNの主な目標は、エンドユーザーまたはコンテンツにアクセスする人々にできるだけ近くでコンテンツをキャッシュすることによって、レイテンシを減少させ、ウェブサイトやアプリケーションのパフォーマンスを向上させることです。
CDNは、オリジンからのコンテンツをキャッシュするために、世界中に多くのデータセンターのロケーションを持つことで、レイテンシを減少させ、パフォーマンスを向上させます。目標は、ユーザーにできるだけ近くでコンテンツをキャッシュすることですので、コンテンツはCDNプロバイダーのネットワークのエッジにキャッシュされます。
-
ウェブサイトの読み込み時間の改善: 各クライアントがオリジンサーバーにリクエストを送信する代わりに、リクエストはキャッシュされたコンテンツで応答するローカルサーバーにルーティングされ、レイテンシが減少し、全体的なパフォーマンスが向上します。オリジンサーバーとクライアントの位置に関係なく、CDNが可能な限りローカルにキャッシュされたコンテンツを提供するため、すべてのユーザーにとってパフォーマンスがより一貫性を持つようになります。
-
コンテンツの可用性と冗長性の向上: 各クライアントリクエストがもはやオリジンサーバーに送信される必要がないため、CDNはパフォーマンスの利点だけでなく、可用性と冗長性も提供します。リクエストはキャッシュされたコンテンツを持つローカルサーバーに負荷分散され、これらのサーバーはローカルリクエストに応答し、オリジンサーバーへの全体的な負荷を大幅に減少させます。オリジンサーバーは、必要なとき(コンテンツがキャッシュされていない場合や動的な非キャッシュ可能なコンテンツの場合)にのみ連絡されます。
-
ウェブサイトのセキュリティの改善: CDNはリバースプロキシとして機能し、オリジンサーバーの前に配置されます。したがって、DDoS緩和、セキュリティ証明書の改善、その他の最適化などの強化されたセキュリティを提供できます。
-
帯域幅コストの削減: CDNはキャッシュされたコンテンツを使用してリクエストに応答するため、オリジンサーバーに送信されるリクエストの数が減少し、それに伴う帯域幅コストも削減されます。
一部のCDN実装における重要な違いは、トラフィックをそれぞれのローカルCDNノードにどのようにルーティングするかです。CDNノードへのリクエストのルーティングは、2つの異なる方法で行うことができます:
DNSユニキャストルーティング
この方法では、再帰的DNSクエリがリクエストをCDNノードにリダイレクトします。クライアントのDNSリゾルバーは、CDNの権威あるネームサーバーにリクエストを転送します。DNSユニキャストルーティングに基づくCDNは、クライアントがDNSリゾルバーから地理的に分散している可能性があるため、理想的ではありません。最も近いCDNノードに関する決定は、クライアントのIPアドレスではなく、クライアントのDNSサーバーに基づいています。また、DNS応答に変更が必要な場合、DNSのTTL(生存時間)の期限切れに依存します。
さらに、DNSルーティングはユニキャストアドレスを使用するため、トラフィックは特定のノードに直接ルーティングされ、DDoS攻撃のようなトラフィックスパイク時に懸念が生じる可能性があります。
DNSベースのCDNのもう1つの課題は、DNSがフェイルオーバー時に非常に優雅ではないことです。通常、異なるIPアドレスを持つDNSリゾルバーで新しいセッションまたはアプリケーションを開始する必要があります。
Anycastルーティング
Cloudflare CDNは、次のセクションで詳しく説明されるように、Anycastルーティングを使用しています。Anycastは、ネットワーク上のノードが同じIPアドレスを持つことを可能にします。同じIPアドレスが異なる場所の複数のノードからアナウンスされ、クライアントのリダイレクションはインターネットのルーティングプロトコルであるBGPによって処理されます。
AnycastベースのCDNを使用することにはいくつかの利点があります:
- 受信トラフィックは、リクエストを効率的に処理する能力を持つ最寄りのデータセンターにルーティングされます。
- 可用性と冗長性が本質的に提供されます。複数のノードが同じIPアドレスを持っているため、1つのノードが失敗した場合、リクエストは単に近くの別のノードにルーティングされます。
- Anycastはトラフィックを複数のデータセンターに分散させるため、全体的な表面積が増加し、どの場所もリクエストで圧倒されることがないようにします。このため、AnycastネットワークはDDoS攻撃に非常に耐性があります。
Cloudflareは、CDNのためのサービスとしてのソフトウェア(SaaS)モデルを提供しています。CloudflareのSaaSモデルを使用することで、顧客はインフラストラクチャやソフトウェアを管理または維持することなく、Cloudflare CDNの利点を享受できます。
Cloudflare CDNの利点は、以下の2つのポイントに起因しています。このセクションで詳しく説明します。
- CDNは本質的に、ユーザーに近いサーバーにコンテンツをキャッシュすることによってパフォーマンスを向上させます
- ユニークなCloudflareアーキテクチャと統合されたエコシステム
図2は、Cloudflare CDNの簡略化されたビューを示しています。クライアントは、クライアントが位置する場所に最も近いCloudflareのグローバルAnycastネットワーク上のサーバーから応答を受け取っており、これによりレイテンシとRTTが大幅に削減されています。この図は、クライアントとオリジンの物理的な位置に関係なく、一貫したエンドユーザーエクスペリエンスを示しています。
図3は、グローバルAnycastネットワーク上のCloudflare CDNのビューです。Cloudflare CDNは、ネットワークパフォーマンスと冗長性のためにAnycastを使用するだけでなく、階層的キャッシュを活用して、最適化された結果を提供し、顧客のコストを削減します。顧客は、リクエストをオリジンサーバーにルーティングするための最速のネットワークパスを見つけるために、Argo Smart Routingを有効にすることもできます。これらの機能は、この文書の残りの部分で詳しく説明します。
上記の図には、Cloudflare CDNとそれが存在するグローバルAnycastネットワークに関するいくつかの重要なポイントがあります:
- 重要な差別化要因は、Cloudflareが1つのグローバルネットワークを利用し、すべてのサービスをすべてのサーバーで、すべてのCloudflareデータセンターで実行しているため、エンドユーザーにCloudflareのサービスへの最も近い接近を提供し、最高のスケール、レジリエンシー、パフォーマンスを実現していることです。
- Cloudflareはリバースプロキシであり、クライアントからのリクエストを受け取り、そのリクエストを顧客のオリジンサーバーにプロキシします。したがって、すべてのリクエストは顧客のネットワークに到達する前にCloudflareのネットワークを通過します。Cloudflareはエッジ(イングレス)でインフラストラクチャを強化し保護しているため、すべての顧客はインフラストラクチャレベルおよびボリュームDDoS攻撃からも保護されています。リクエストとトラフィックは、顧客のオリジンサーバーに到達する前に保護されたCloudflareネットワークを通過する必要があります。
- Cloudflare CDNはCloudflareのグローバルAnycastネットワークを活用しています。したがって、受信リクエストはユーザーに最も近いノードにルーティングされ、応答されます。
- Anycastの固有の利点は、レイテンシの低下、ネットワークのレジリエンシー、可用性の向上、正当なトラフィック負荷とDDoS攻撃の両方を吸収するための表面積の増加によるセキュリティの向上です。CloudflareのグローバルAnycastネットワークは、世界中の数百の都市 ↗に広がり、50ミリ秒以内に世界のインターネット接続人口の95%に到達し、280 Tbpsを超えるネットワーク容量とDDoS保護機能を提供します。
- Cloudflareネットワーク内のエッジノードは、オリジンサーバーからコンテンツをキャッシュし、キャッシュされたコピーを介してリクエストに応答できます。Cloudflareはまた、DNS、DDoS保護、WAFなどのパフォーマンス、信頼性、セキュリティサービスを同じエッジアーキテクチャを使用して提供します。
- Argoは、Cloudflareネットワーク全体で最適化されたルーティングとキャッシング技術を使用して、ユーザーへの応答をより迅速、信頼性高く、安全に提供します。Argoにはスマートルーティングとティアードキャッシュが含まれています。CloudflareはArgoを活用して、強化されたCDNソリューションを提供します。
サイトがオンボードされると、標準キャッシングがデフォルトで構成されます。標準キャッシングでは、各データセンターがオリジンサーバーの直接リバースプロキシとして機能します。任意のデータセンターでキャッシュミスが発生すると、イングレスデータセンターからオリジンサーバーにリクエストが送信されます。
標準キャッシングは機能しますが、最適な設計ではありません。クライアントに近いキャッシュされたコンテンツが他のCloudflareデータセンターに既に存在する可能性があり、その結果、オリジンサーバーが不必要に過負荷になることがあります。したがって、すべてのCloudflareプランに含まれるティアードキャッシュを有効にするのが最善です。ティアードキャッシュでは、特定のデータセンターが他のデータセンターのオリジンに対するリバースプロキシとなり、キャッシュヒットが増え、応答時間が短縮されます。
ティアードキャッシュは、Cloudflareのネットワークのスケールを活用して、顧客のオリジンへのリクエストを最小限に抑えます。Cloudflareデータセンターにリクエストが入ると、要求されたコンテンツがローカルにキャッシュされていない場合、他のCloudflareデータセンターでキャッシュされたコンテンツがチェックされます。
Cloudflareデータセンター間の距離は、データセンターと顧客のオリジンサーバー間の接続よりも短く、経路が速いため、クライアントへの応答を最適化し、キャッシュヒット率を大幅に改善します。Cloudflare CDNは、ティアードキャッシュに使用する最適な上位ティアデータセンターを決定するために、Argoスマートルーティングデータを活用します。キャッシュミスや他の種類の動的トラフィックのために、データセンターとオリジンサーバー間の最速の経路を提供するために、Argoスマートルーティングをアドオンとして有効にすることもできます。
Cloudflare CDNは、顧客がティアードキャッシングを構成できるようにします。Cloudflareプランによっては、ティアードキャッシュのために異なるトポロジーが利用可能であることに注意してください。デフォルトでは、ティアードキャッシングは無効になっており、メインメニューのキャッシングタブで有効にできます。
異なるキャッシュトポロジーは、顧客がCloudflareがオリジンサーバーとどのように相互作用するかを制御し、より高いキャッシュヒット率、少ないオリジン接続、レイテンシの低減を確保するのに役立ちます。
| スマートティアードキャッシュトポロジー(すべてのプラン) | 一般的なグローバルティアードトポロジー(エンタープライズのみ) | カスタムティアードキャッシュトポロジー(エンタープライズのみ) |
|---|---|---|
| ほとんどの展開に推奨されます。ティアードキャッシュが有効になると、デフォルトの構成です。 | 世界中に広がる高トラフィックを持ち、最高のキャッシュ使用と最高のパフォーマンスを望む方に推奨されます。 | ユーザーベースに関する追加データを持ち、特定の地理的地域に焦点を当てたい顧客に推奨されます。 |
| パフォーマンスのためにCDNを活用したいが、オリジンサーバーへのリクエストとCloudflareとオリジンサーバー間の帯域幅利用を最小限に抑えたい顧客に最適です。 | 一般的なグローバルティアードトポロジーは、キャッシュ効率とレイテンシのバランスを取ります。CloudflareにすべてのTier 1データセンターを上位ティアとして使用するよう指示します。 | カスタムティアードキャッシュトポロジーは、特定のニーズに合ったカスタムトポロジーを設定できるようにします(例:特定の地理的場所に上位ティアがあり、より多くの顧客にサービスを提供)。 |
| Cloudflareは、Argoのパフォーマンスとルーティングデータを使用して、オリジンに対する単一の最良の上位ティアを動的に見つけます。 | カスタムトポロジーを構築するためにカスタマーサクセスマネージャー(CSM)と連携します。 |
図4では、ティアードキャッシングがスマートティアードキャッシュトポロジーで有効になっています。この図は、以下に要約された2つの異なるトラフィックフローを示しています。最初のトラフィックフロー(クライアント1)は、クライアントからデータセンター1に入るリクエストです。2番目のトラフィックフロー(クライアント2)は、異なるデータセンター、データセンター2への同じリソースの後続リクエストです。
| リクエスト1 | リクエスト2 |
|---|---|
| データセンター1で受信された最初のリクエストはキャッシュミスとなります。リクエストは以前にクライアントによって行われていません。 | データセンター3で受信された異なるクライアントによる2番目のリクエストはキャッシュミスとなります。リクエストはデータセンター3によって以前に処理されたことがありません。 |
| キャッシュされたコンテンツが見つからなかったため、データセンター1は上位ティアデータセンターにコンテンツのコピーをリクエストするためにチェックします。 | キャッシュされたコンテンツが見つからなかったため、データセンター3は上位ティアデータセンターにコンテンツのコピーをリクエストするためにチェックします。 |
| 上位ティアデータセンターにもローカルにキャッシュされたコンテンツがないため、オリジンサーバーにコンテンツをリクエストします。コンテンツを受信すると、上位ティアデータセンターはそれをローカルにキャッシュし、リクエストした下位ティアデータセンターにコンテンツを中継します。下位ティアデータセンターはコンテンツをキャッシュし、クライアントに応答します。 | 上位ティアデータセンターでキャッシュされたコンテンツが見つかりました。データセンター3はこのコンテンツを取得し、ローカルにキャッシュし、クライアントに応答します。 |
図4では、上端のエンドユーザートラフィックフローが、クライアントリクエストがクライアントに最も近いデータセンター、データセンター1で受信されたときのトラフィックフローを示しています。イングレスデータセンターにローカルにキャッシュされたものがなく、ティアードキャッシングが有効になっているため、コンテンツをキャッシュするために上位ティアデータセンターにコピーをリクエストするリクエストが送信されます。上位ティアデータセンターにもキャッシュされたコンテンツがないため、オリジンサーバーにリクエストを送信し、応答を受け取った後、受信したコンテンツをローカルにキャッシュし、キャッシュされたコンテンツで下位ティアデータセンターに応答します。下位ティアデータセンターはコンテンツをキャッシュし、クライアントに応答します。
同じコンテンツに対する新しいリクエストが別のデータセンター(下端のエンドユーザートラフィックフロー)で行われると、データセンター3ではコンテンツがローカルにキャッシュされていませんが、最初のリクエストからキャッシュされた上位ティアデータセンターからコンテンツが取得されます。
上位ティアデータセンターが2番目のリクエストに対してキャッシュされたコンテンツを返すことで、オリジンサーバーへのトリップが防止され、キャッシュヒット率の向上、応答時間の短縮、Cloudflareネットワークとオリジンサーバー間の帯域幅コストの節約、リクエストに応答するオリジンサーバーの負荷の軽減が実現されます。
スマートティアードキャッシュとグローバルティアードキャッシュの主な違いは、オリジンサーバーと通信できる上位ティアの数です。スマートティアードキャッシュでは、オリジンに最も近い上位ティアがArgoのパフォーマンスとルーティングデータを使用して選択されます。これは、下位ティアでキャッシュMISSを経験するすべてのリクエストがこの単一の上位ティアを通過し、オリジンサーバーにトラフィックを送信しないようにするためのキャッシュHITの確率が高くなることを意味します。しかし、このアーキテクチャの欠点は、下位ティアが上位ティアから地球の反対側に位置する可能性があることです。上位ティアがキャッシュからリクエストを満たすことができる場合でも、上位ティアと下位ティアの間の距離が応答にレイテンシを追加する可能性があります。要約すると、スマートティアードキャッシュは、すべてのキャッシュリクエストが単一の上位ティアキャッシュロケーションを通過することを保証し、キャッシュHITの割合を増加させ、オリジンサーバーへのリクエストを減少させますが、上位ティアがリクエストを発生させた下位ティアから遠く離れている可能性があるため、これらのリクエストを満たす際に高いレイテンシが発生する可能性があります。
一般的なグローバルティアードキャッシュでは、Cloudflareは世界中の最大のデータセンターを上位ティアキャッシュとして使用します。これは、一般的に上位ティアキャッシュが下位ティアキャッシュに非常に近いことを意味します。これにより、下位ティアが上位ティアにリクエストを渡す必要がある場合のレイテンシを大幅に削減できます。ただし、これは最終的に、各上位ティアキャッシュがオリジンからデータを取得する必要があるため、オリジンによって処理されるリクエストの量を増加させます。要約すると、一般的なグローバルティアードキャッシュは、キャッシュがポピュレートされると応答時間を改善できますが、オリジンサーバーへの負荷も増加させます。
地域ティアードキャッシュは、アーキテクチャに追加のキャッシュレイヤーを追加することによって、これらの戦略の最良の部分を組み合わせます。スマートティアードキャッシングオプションを使用すると、オリジンに最も近い単一の上位ティアキャッシュロケーションが存在する一方で、上位ティアと下位ティアの間に地理的に下位ティアに近い地域ティアレイヤーが追加されます。これにより、下位ティアからのリクエストは、上位ティアに送信される前に地域ティアでキャッシュを確認します。単一の地域ティアは、複数の下位ティアキャッシュからのリクエストを受け入れることができ、そのため、グローバルに利用可能なアプリケーションのパフォーマンスとレイテンシを大幅に改善できます。
Regional Tiered Cachingは、Smart Tiered CachingおよびCustom Tiered Cachingと一緒に使用することが推奨されます。ただし、Regional Tiered Cacheは、Generic Global Tiered Cacheのように多くの地域に多くの上位ティアを持つ顧客には有益ではありません。
図5では、Smart Tiered Cache TopologyでTiered Cachingが有効になっています。この図は、Regional Tiered Cacheが有効になっているSmart Tiered Cacheのトポロジーを示しています。下位ティアのキャッシュがキャッシュMISSを経験した場合、最初にそのリクエストは、キャッシュがリクエストを処理できるかどうかを確認するために、よりローカルな地域のハブデータセンターに送信されます。もし処理できない場合は、リクエストは上位ティアおよび必要に応じてオリジンサーバーに送信されます。
Argo Smart Routingは、Cloudflareネットワーク全体で最適化されたルートを見つけ、ユーザーへの応答をより迅速に提供するサービスです。前述のように、Cloudflare CDNは、Tiered Cacheのために最適な上位ティアデータセンターを決定するためにArgo Smart Routingを活用しています。
さらに、Argo Smart Routingを有効にすることで、上位ティアデータセンターとオリジンサーバー間で常に最速のパスが取られることが保証されます。Argo Smart Routingが無効な場合でも、上位ティアデータセンターとオリジンサーバー間の通信は、インターネット上の問題を回避するようにインテリジェントにルーティングされ、オリジンの到達可能性が確保されます。
Argo Smart Routingは、リアルタイムデータとネットワークインテリジェンスを考慮してトラフィックを加速します。これは、毎秒約5000万のHTTPリクエストをルーティングすることから得られたデータです。これにより、Cloudflareネットワークを通じてオリジンサーバーへの最速かつ最も信頼性の高いネットワークパスが確保されます。平均して、Argo Smart Routingはウェブアセットのパフォーマンスを30%向上させます。
図6は、Tiered CacheとArgo Smart Routingが無効な場合のトラフィックフローを詳細に示しています。リクエストは最も近いデータセンターに到着し、コンテンツがローカルにキャッシュされておらず、Tiered Cacheが無効なため、リクエストはコンテンツのために直接オリジンサーバーに送信されます。また、Argo Smart Routingが無効なため、オリジンサーバーとの通信時に信頼性のある、しかし最速ではないパスが取られます。
図7は、Tiered CacheとArgo Smart Routingの両方が有効な場合のトラフィックフローを示しています。データセンター1がリクエストを受信し、キャッシュミスが発生した場合、上位ティアデータセンターであるデータセンター4のキャッシュがチェックされます。上位ティアデータセンターでキャッシュされたコンテンツが見つからない場合、Argo Smart Routingが有効な状態で、リクエストは上位ティアデータセンターからオリジンへの最速のパスで送信されます。
最速のパスは、混雑、レイテンシ、RTTなどのリアルタイムネットワークデータを考慮したArgoネットワークインテリジェンス機能によって決定されます。
Cloudflare CDNでは、Argo Smart Routingが使用されるのは次のときです:
- キャッシュミスが発生し、リクエストがオリジンサーバーに送信されてコンテンツを取得する必要があるとき。
- 動的コンテンツ(例:API)などのキャッシュ不可のコンテンツのリクエストがあり、リクエストがオリジンサーバーに送信される必要があるとき。
Tiered Cacheのアイデアを拡張する形で、Cache ReserveはCloudflareネットワークのスケールと速度をさらに活用し、Cloudflareの永続的オブジェクトストレージであるR2を利用してコンテンツをさらに長くキャッシュします。Cache Reserveは、オリジンからの出口料金を排除することで顧客の請求を削減し、コンテンツが信頼性高く利用可能であることを確保するための複数のレイヤーのレジリエンシーと保護を提供し、コンテンツの読み込み速度を向上させることでウェブサイトのパフォーマンスを改善します。基本的に、Cache Reserveは、より長い保持期間を持つ追加の上位キャッシュです。
Cache Reserveは、Tiered Cacheが有効でなくても機能しますが、Cache ReserveとともにTiered Cacheを有効にすることが推奨されます。Tiered Cacheは、リクエストをCache Reserveに流し込み、冗長な読み取り操作とキャッシュコンテンツの冗長なストレージを排除し、出口およびストレージ料金を削減します。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 documentationを参照してください。
- 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との協力により提供され、中国のユーザーに対して中国国外のデータセンターと比較して最速かつ最も信頼性の高いキャッシュパフォーマンスを確保します。
- China Express ↗は、オリジンからJD Cloudデータセンターへのコンテンツをストリームラインするための信頼性の高い安全な接続を提供します。これは、ウェブアプリケーションやAPI呼び出しなどの動的コンテンツに特に有益です。
要約すると、Cloudflare CDNは、顧客が直面するレイテンシ、パフォーマンス、可用性、冗長性、セキュリティ、コストに関する課題に対処するためのSaaSです。Cloudflare CDNは、CloudflareのグローバルAnycastネットワークとTiered Cacheを活用して、最適化された結果を提供し、顧客のコストを削減します。顧客は、リクエストをオリジンサーバーにルーティングするために最速のネットワークパスが使用されることを保証するためにArgo Smart Routingを有効にし、キャッシュヒットを増加させてコストをさらに削減し、ウェブサイトやアプリケーションのパフォーマンスを向上させるためにCache Reserveを有効にすることもできます。