キャッシュキーのカスタマイズ

このページでは、Cloud CDN キャッシュキーのカスタマイズ方法について説明します。

キャッシュキーの構成を変更した結果、キャッシュ ヒット率が急に低下することがありますが、これは新しいリクエストが古いキャッシュキー エントリとは異なるキャッシュキーを使い始めた場合です。同様に、キャッシュキーの生成元を変更しても、新しいリクエストが古いキャッシュキーと同じキーを使用していれば、キャッシュ内のエントリが無効化されないこともあります。キャッシュに保存されたエントリを無効にする方法については、キャッシュに保存されたコンテンツの無効化をご覧ください。

始める前に

このページの説明は、Cloud CDNCloud CDN キャッシュキー、負荷分散されたバックエンド サービスを理解していることを前提としています。先に進む前に、これらのページをご確認ください。

Cloud CDN を有効にしてキャッシュキーをカスタマイズする

以下では、負荷分散されたバックエンド サービスで CDN を有効にし、1 つ以上のコンポーネントを除外してキャッシュキーをカスタマイズする方法を説明します。送信元として使用するロードバランサがまだない場合は、外部アプリケーション ロードバランサのドキュメントを参照して作成手順を確認してください。

バックエンド バケットでは、Cloud Storage バケット内のオブジェクトの参照方法に影響しないため、キャッシュキーにプロトコルやホストは含まれません。ただし、Cloud Storage に固有のクエリ文字列パラメータが含まれています。このパラメータはレスポンスに影響する可能性があり、カスタマイズ可能なパラメータ名のリストによって拡張できます。

Console

  1. Google Cloud Console で、[Cloud CDN] ページに移動します。

    Cloud CDN に移動

  2. [送信元を追加] をクリックします。
  3. [送信元] プルダウン メニューで [元の CDN を選択します] をクリックします。
  4. CDN を有効にする送信元を選択します。
  5. 送信元の行で、[構成] をクリックします。

    この送信元で Cloud CDN がすでに有効になっている場合は、 メニューをクリックして [編集] を選択し、[構成] をクリックします。

  6. このバックエンド サービスのキャッシュキーから除外するフィールドのチェックボックスをオフにします。

  7. [保存] をクリックします。

  8. [追加] をクリックします。

gcloud

オプションのフラグを指定して、このバックエンド サービスのキャッシュキーからパラメータを除外します。

gcloud compute backend-services update BACKEND_SERVICE \
    --enable-cdn

オプションのフラグ:

  • --no-cache-key-include-protocol
  • --no-cache-key-include-host
  • --no-cache-key-include-query-string

キャッシュキーを更新してプロトコル、ホスト、クエリ文字列を再度追加する

デフォルトでは、Cloud CDN を使用するように構成されたバックエンド サービスでは、リクエスト URI のすべてのコンポーネントをキャッシュキーに含めます。キャッシュキーから除外するよう設定しておいたコンポーネントを再度追加するには、以下の手順を行います。

次の操作を行うと、CDN が有効になっているバックエンド サービスのキャッシュキーにプロトコル、ホスト、クエリ文字列を再度追加できます。

Console

  1. Google Cloud Console で、[Cloud CDN] ページに移動します。

    Cloud CDN に移動

  2. ロードバランサの行でメニュー をクリックして、[編集] をクリックします。
  3. 変更するバックエンド サービスまたはバックエンド バケットの行で、[構成] をクリックします。
  4. [キャッシュキー] で [カスタム] を選択します。
  5. [プロトコル]、[ホスト]、[クエリ文字列] のチェックボックスをオンにします。
  6. [クエリ文字列パラメータ] は空白のままにします。
  7. [保存] をクリックします。
  8. [更新] をクリックします。

gcloud

1 つのコンポーネントのみを再度追加するには、そのフラグのみを指定します。指定しないフラグは変更されません。

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-protocol \
    --cache-key-include-host \
    --cache-key-include-query-string

キャッシュキーを更新してクエリ文字列パラメータの追加リストまたは除外リストを使用する

次の手順では、CDN キャッシュキーを設定して、クエリ文字列パラメータを含む追加リストまたは除外リストを使用します。

Console

  1. Google Cloud Console で、[Cloud CDN] ページに移動します。

    Cloud CDN に移動

  2. ロードバランサの行でメニュー をクリックして、[編集] をクリックします。
  3. 変更するバックエンド サービスの行で [構成] をクリックします。
  4. [キャッシュキー] で [カスタム] を選択します。
  5. [クエリ文字列] チェックボックスがオンになっていることを確認します。
  6. キャッシュキーに入れるクエリ文字列パラメータを指定するには、[選択したクエリ文字列のみ含める] を選択します。

    キャッシュキーに指定したものを除き、すべてのクエリ文字列パラメータを指定するには、[選択したクエリ文字列以外のすべてを含める] を選択します。

  7. [クエリ文字列パラメータ] フィールドにカンマ区切りのリストを入力します。

  8. [保存] をクリックします。

  9. [更新] をクリックします。

gcloud

次のコマンドを使用して、クエリ文字列パラメータ user をバックエンド サービスの追加リストに設定します。

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-query-string \
    --cache-key-query-string-whitelist user

このコマンドを使用して、クエリ文字列パラメータ user をバックエンド サービスの除外リストに設定します。

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-query-string \
    --cache-key-query-string-blacklist user

次のコマンドを使用して、クエリ文字列パラメータ user をバックエンド バケットの追加リストに設定します。

gcloud compute backend-buckets update BACKEND_BUCKET \
    --cache-key-query-string-whitelist user

HTTP ヘッダーを使用するようにキャッシュキーを更新する

次の手順では、HTTP ヘッダーを使用するように Cloud CDN キャッシュキーを設定します。

Console

現在、この機能は Google Cloud コンソール をサポートしていません。

gcloud

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-http-header=[HEADER_FIELD_NAME,...]
gcloud compute backend-buckets update BACKEND_BUCKET \
    --cache-key-include-http-header=[HEADER_FIELD_NAME,...]

名前付き Cookie を使用するようにキャッシュキーを更新する

次の手順では、HTTP Cookie を使用するように Cloud CDN キャッシュキーを設定します。

Console

現在、この機能は Google Cloud コンソール をサポートしていません。

gcloud

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-named-cookie=[NAMED_COOKIE,...]

次のステップ

  • Cloud CDN がキャッシュからレスポンスを提供しているかどうかを確認するには、キャッシュのログと指標をご覧ください。