キャッシュ無効化の概要

このページでは、Cloud CDN のキャッシュ無効化の概要について説明します。キャッシュ内のコンテンツを無効にする方法については、キャッシュに保存されたコンテンツの無効化をご覧ください。

キャッシュの無効化とは

キャッシュに保存されたオブジェクトは通常、期限切れになるか、新しいコンテンツを保存するために削除されるまでキャッシュに残ります。いつ無効にするかを制御するには、標準の HTTP ヘッダーを使用します。詳細については、「キャッシュの詳細」の有効期間に関するセクションをご覧ください。

有効期限になる前にキャッシュ オブジェクトの削除が必要になる場合があります。キャッシュの無効化をリクエストすると、キャッシュ内の 1 つまたは複数のオブジェクトを無効にできます。

キャッシュ無効化をリクエストする前に、送信元サーバーが正しいコンテンツを返していることを確認する必要があります。確認を怠ると、Cloud CDN から再度リクエストしたときに、間違ったコンテンツがまた同じように保存されてしまう可能性があるからです。

パスパターン

無効化リクエストには、無効にする 1 つまたは複数のオブジェクトを識別するパスパターンを指定します。/cat.jpg のように特定のパスを指定することも、/pictures/* のようにディレクトリ構造全体を指定することもできます。パスパターンには次のルールが適用されます。

  • パスパターンは / で始める必要があります。
  • ?# は使用できません。
  • * は、/ に続く最後の文字として使用できますが、それ以外の場所では使用できません。
  • /* で終わる場合、先行する文字列は接頭辞になり、その接頭辞で始まるオブジェクトはすべて無効になります。

パスパターンは、URL のパス コンポーネント(ホスト名と任意の ? または # の間にあるすべての文字列)と比較されます。

URL の中にクエリ文字列(例: /images.php?image=fred.png)が含まれている場合、クエリ文字列だけが異なるオブジェクトを選んで無効にすることはできません。たとえば、2 つの画像 /images.php?image=fred.png/images.php?image=barney.png がある場合に、fred.png だけを無効にすることはできません。images.php で提供されるすべての画像を無効にするには、パスパターンに /images.php を使用します。

単一ホストのキャッシュの無効化

通常、キャッシュの無効化では、すべてのホスト名のパスが無効になります。たとえば、example.comexample2.com が同じロードバランサを指していて、/images/cat.jpg を無効にした場合、example.com/images/cat.jpgexample2.com/images/cat.jpg の両方が無効になります。

いずれかのホストのみを無効にするよう制限するには、コマンドに --host フラグを追加します。

手順については、キャッシュに保存されたコンテンツの無効化をご覧ください。

制限事項

無効化は、通常のワークフローではなく、例外的な状況での使用を前提としています。無効化は、ウェブブラウザのキャッシュや、他のインターネット サービス プロバイダが管理するキャッシュに影響を及ぼしません。定期的に無効化を行うのではなく、レスポンスに適切な有効期間を設定したり、コンテンツのバージョンごとに別の URL を使用することもできます。有効期限の詳細については、有効期限と検証リクエストをご覧ください。

無効化の頻度には制限があります。1 分間に実行できる無効化は 1 回だけです。ただし、無効化する対象のサイズに制限はありません。/images/fred.png の無効化は 1 回として計算されます。/images/* の無効化も 1 回と計算されます。

必要なものだけを無効にしてください。無効にする対象が多すぎると、キャッシュから提供されるリクエストが大量に発生し、インスタンスまたはバケットに影響を及ぼす可能性があります。

Cloud CDN は分散システムです。このため、一部のキャッシュで無効化リクエストの処理がまだ始まっていない場合でも、無効化が完了したと報告することがあります。この状況はめったに発生しませんが、発生した場合には自動的に問題が訂正されます。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud CDN のドキュメント