サーバーがダウンしていてもCDNは機能しますか?


10

私は、Amazonのcloudfront S3を使用することを計画しているWebサイトの所有者です。私はCDNが何ができるかについてすべてのものを読んでいますが、未回答の質問があります。

メインサーバーがダウンしている場合でも、CDNは機能しますか?それが私がそれに興味を持っている主な理由です。というのも、ここマリでは、サーバーの電源障害が原因で、サーバーが頻繁に停止するからです。


3
CloudFlareを検討することをお勧めします。CloudFlareは、a)無料であり、b)停止時に静的ページを維持できます。
ceejayoz

回答:


12

CDNをホストしているユーザーによって異なります。Webサイトを1台のサーバーでホストし、CDNをサードパーティとホストしている場合、WebサイトがダウンしてもCDNはアクティブなままになる可能性があります。ただし、一部のCDNはWebサイト上にあることを確認できるコンテンツのみを配布するため、これは当てはまらない場合があります。

ちなみに、CDNはWebサイト全体をホストするためのものではありません。したがって、Webホスティングを置き換えたり、ある種のフェイルオーバープランとして使用したりできると考えている場合は、間違ったツリーが表示されていることになります。

TL; DR-CDNプロバイダーに問い合わせる必要があります。


10

CDNはスケーラビリティとパフォーマンスを目的として設計されていますが、高可用性を目的として設計されていません。常に、元のファイルへのアクセスが必要になる場合があります。

ほとんどの人はそれらを使用して、画像、CSS、JavaScriptファイルなどの静的ファイルを格納します。HTMLをキャッシュするように構成できるものもありますが、それは完全に静的なWebサイトがある場合に限られます。その場合は、S3ですべてをホストでき、サーバーはまったく必要ありません。


5

通常、はい、TTLまで。

CDNを使用する場合、通常はコンテンツのTTL(存続時間)を構成します。これは、最新のコンテンツでキャッシュを完全に更新する必要があると判断するまでに、キャッシュがどれだけ古いかを示す最大値です。たとえば、すべての* .jpg URLが5分のTTLを持つように設定するとします。

次に、サーバーがダウンした場合、ユーザーが気付く前にサーバーを回復するためにさらに5分かかります。まあ、少なくとも.jpgでは。少なくとも、たまたま事前にキャッシュされた.jpgについては。

また、一部のCDNは、コンテンツをCDNに直接アップロードできるAkamai NetStorageなどの機能を使用しています。最初から「オンデマンド」「プル」スタイルのキャッシュが行われることは決してないので、サーバーがダウンしているときはもちろん、これでうまくいくはずです。

ただし、他の投稿者が指摘したように、これはCDNの設計対象ではなく、この動作が機能することを保証するものではありません。それはたまたま通常は機能します(そして、それが起こるのを見ると素晴らしいです!)。もちろん、特定の技術的な詳細については、プロバイダーに問い合わせる必要があります。


5

はい:サイトがダウンしている間でもCDNサーバーは実行されます。これは、大規模な障害に対処するための適切なオプションです。リソースと優先順位に基づいてエクスペリエンスを調整できるように、発生する事象をかなり制御できます。オプションは一般的に次のカテゴリに分類されます。

  1. キャッシュ用に構成されたオブジェクト(最も一般的にはCache-Controlヘッダーを設定することにより)は、期限が切れるまで使用できます。一部のCDNは、CDNエッジサーバーが他のCDNサーバーからコンテンツを取得する機能を提供します。これは、停止中に役立つだけでなく、通常、オリジンサーバーがCDNサーバーと比べてレイテンシが比較的高い場合のパフォーマンスを向上させます。

  2. 一部のCDNは、バックエンドサーバーが利用できないときに期限切れになったコンテンツを提供する機能を提供します(たとえば、Fastlyを使用すると、Varnishの猶予モードまたは聖モードを有効にできます)。明らかに、これはキャッシュされなかったコンテンツには役立ちませんが、多くの場合、サーバーをオンラインに戻すために作業している間、少なくともコアホームページ、連絡先情報などをオンラインに保つことができます。

  3. ほとんどのCDNは、複数のバックエンドサーバーを試す機能を提供するため、別のフェイルオーバーサイトにサイトに適したエクスペリエンスを提供することができます。別のサーバーまたは機能制限サイトへのフェイルオーバー、静的HTMLページなど。これは壊滅的な場合に役立ちます。完全に異なる会社、またはAkamai NetStorageのような場合はCDNプロバイダーと直接ホスティングしてフルスタックをサポートするオプションがあるため、ホスティングの失敗。

3番目のオプションを除いて、CDNサーバーに何をキャッシュするかを制御できないため、プロセスの最も重要な部分は、さまざまな機能が利用できない場合にサイトをどのように劣化させるかを決定することです。 JavaScriptが完全に失敗した場合でも、妥当なHTMLコンテンツは、ほとんどの情報駆動型サイトが、より高度な機能がバックグラウンドで静かに失敗している場合でも、基本的なページコンテンツのみで実行できる可能性があります。


素晴らしい要約!AkamaiにはServe stale if unable to validate、オリジンがダウンしている場合、TTLに達してもコンテンツを提供するオプションがあります。
LeOn-Han Li

@Leonli 2番目のポイントは、おそらくCloudFlareもCache-Control: stale-if-error現在サポートしていると思うので、おそらくRFC 5861へのリンクも使用できます。
クリスアダムス

2

ほとんどのCDNは、発信元(この場合はサーバー)から一定期間(TTL)の間(動的)コンテンツをキャッシュしています。AmazonのCloudfront Management Consoleでは、S3バケットのキャッシュ制御が説明されています。

  1. AmazonのS3のデフォルトの動作は、オブジェクトを24時間キャッシュすることです。

  2. オリジンサーバーのCache-ControlヘッダーまたはExpiresヘッダーを提供/書き込むことで、デフォルトの動作に影響を与えることができます。

    • Cache-Control max-ageヘッダーを使用する場合、最小値は0です。その時点で、Amazonはオリジンサーバーにコンテンツを送信し、毎回オブジェクトが変更されたかどうかを確認します。

    • オブジェクトにExpiresヘッダーを使用すると、Amazonはその日付までオリジンサーバーに接続しません。

これでAmazonの行動が明確になることを願っています。


0

私は1年以上CDNのサポートエンジニアでした。ここでの回答はすべてすばらしいと思いますが、IMO @ Chris-Adamsが最良の回答です(私が賛成票を投じることができる場合はそうします)。

お客様が行うことの1つは、wwwをCDNにポイントし、301 TLDをwwwにポイントすることです。オブジェクトのTTLが期限切れになると、キャッシュで利用可能な場合、エッジは期限切れのコンテンツを提供します。

そうは言っても、稼働時間(および新鮮なコンテンツ)が重要な場合は、頻繁に停電が発生しないホストにオリジン(私の知っている尻の痛み)を移動することを検討します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.