回答:
CDNをホストしているユーザーによって異なります。Webサイトを1台のサーバーでホストし、CDNをサードパーティとホストしている場合、WebサイトがダウンしてもCDNはアクティブなままになる可能性があります。ただし、一部のCDNはWebサイト上にあることを確認できるコンテンツのみを配布するため、これは当てはまらない場合があります。
ちなみに、CDNはWebサイト全体をホストするためのものではありません。したがって、Webホスティングを置き換えたり、ある種のフェイルオーバープランとして使用したりできると考えている場合は、間違ったツリーが表示されていることになります。
TL; DR-CDNプロバイダーに問い合わせる必要があります。
通常、はい、TTLまで。
CDNを使用する場合、通常はコンテンツのTTL(存続時間)を構成します。これは、最新のコンテンツでキャッシュを完全に更新する必要があると判断するまでに、キャッシュがどれだけ古いかを示す最大値です。たとえば、すべての* .jpg URLが5分のTTLを持つように設定するとします。
次に、サーバーがダウンした場合、ユーザーが気付く前にサーバーを回復するためにさらに5分かかります。まあ、少なくとも.jpgでは。少なくとも、たまたま事前にキャッシュされた.jpgについては。
また、一部のCDNは、コンテンツをCDNに直接アップロードできるAkamai NetStorageなどの機能を使用しています。最初から「オンデマンド」「プル」スタイルのキャッシュが行われることは決してないので、サーバーがダウンしているときはもちろん、これでうまくいくはずです。
ただし、他の投稿者が指摘したように、これはCDNの設計対象ではなく、この動作が機能することを保証するものではありません。それはたまたま通常は機能します(そして、それが起こるのを見ると素晴らしいです!)。もちろん、特定の技術的な詳細については、プロバイダーに問い合わせる必要があります。
はい:サイトがダウンしている間でもCDNサーバーは実行されます。これは、大規模な障害に対処するための適切なオプションです。リソースと優先順位に基づいてエクスペリエンスを調整できるように、発生する事象をかなり制御できます。オプションは一般的に次のカテゴリに分類されます。
キャッシュ用に構成されたオブジェクト(最も一般的にはCache-Control
ヘッダーを設定することにより)は、期限が切れるまで使用できます。一部のCDNは、CDNエッジサーバーが他のCDNサーバーからコンテンツを取得する機能を提供します。これは、停止中に役立つだけでなく、通常、オリジンサーバーがCDNサーバーと比べてレイテンシが比較的高い場合のパフォーマンスを向上させます。
一部のCDNは、バックエンドサーバーが利用できないときに期限切れになったコンテンツを提供する機能を提供します(たとえば、Fastlyを使用すると、Varnishの猶予モードまたは聖モードを有効にできます)。明らかに、これはキャッシュされなかったコンテンツには役立ちませんが、多くの場合、サーバーをオンラインに戻すために作業している間、少なくともコアホームページ、連絡先情報などをオンラインに保つことができます。
ほとんどのCDNは、複数のバックエンドサーバーを試す機能を提供するため、別のフェイルオーバーサイトにサイトに適したエクスペリエンスを提供することができます。別のサーバーまたは機能制限サイトへのフェイルオーバー、静的HTMLページなど。これは壊滅的な場合に役立ちます。完全に異なる会社、またはAkamai NetStorageのような場合はCDNプロバイダーと直接ホスティングしてフルスタックをサポートするオプションがあるため、ホスティングの失敗。
3番目のオプションを除いて、CDNサーバーに何をキャッシュするかを制御できないため、プロセスの最も重要な部分は、さまざまな機能が利用できない場合にサイトをどのように劣化させるかを決定することです。 JavaScriptが完全に失敗した場合でも、妥当なHTMLコンテンツは、ほとんどの情報駆動型サイトが、より高度な機能がバックグラウンドで静かに失敗している場合でも、基本的なページコンテンツのみで実行できる可能性があります。
Serve stale if unable to validate
、オリジンがダウンしている場合、TTLに達してもコンテンツを提供するオプションがあります。
Cache-Control: stale-if-error
現在サポートしていると思うので、おそらくRFC 5861へのリンクも使用できます。
ほとんどのCDNは、発信元(この場合はサーバー)から一定期間(TTL)の間(動的)コンテンツをキャッシュしています。AmazonのCloudfront Management Consoleでは、S3バケットのキャッシュ制御が説明されています。
AmazonのS3のデフォルトの動作は、オブジェクトを24時間キャッシュすることです。
オリジンサーバーのCache-ControlヘッダーまたはExpiresヘッダーを提供/書き込むことで、デフォルトの動作に影響を与えることができます。
Cache-Control max-ageヘッダーを使用する場合、最小値は0です。その時点で、Amazonはオリジンサーバーにコンテンツを送信し、毎回オブジェクトが変更されたかどうかを確認します。
オブジェクトにExpiresヘッダーを使用すると、Amazonはその日付までオリジンサーバーに接続しません。
これでAmazonの行動が明確になることを願っています。