コンテンツ配信のベスト プラクティス

このページでは、Cloud CDN でコンテンツ配信を最適化して時間短縮するためのベスト プラクティスについて説明します。

Cloud CDN では、HTTP(S) 負荷分散をキャッシュ可能なコンテンツの送信元として使用します。HTTP(S) ロードバランサは、Google Compute Engine 仮想マシン(VM)インスタンス グループGoogle Cloud Storage バケット、またはその両方から、1 つのグローバル IP アドレスを使用して、静的コンテンツと動的コンテンツの組み合わせをユーザーに配信できます。

Google Cloud Platform とシームレスに統合することから、Cloud CDN をデプロイしてコンテンツを管理するには、いくつかの選択肢があります。デプロイを計画、調整する際には、ここに記載されているベスト プラクティスに従ってください。詳細については、Cloud CDN の使用をご覧ください。

時間的制約のあるコンテンツの有効期限の設定

Cloud CDN キャッシュのコンテンツの各部分には有効期限が関連付けられており、実際の使用法に適した有効期限を設定することが重要です。配信元サーバーはキャッシュ サーバーで期限切れになったコンテンツを再送する必要があるため、期限を慎重に選択する必要があります。

有効期限を選択する方法の 1 つは、コンテンツを更新する頻度に基づいてコンテンツを分類することです。たとえば、

  1. スポーツ イベントや交通情報のライブ配信など、ほぼリアルタイムの更新
  2. 毎週、毎日、または毎時の気象情報やトップニュースの画像など、頻度の高い更新
  3. ウェブサイトのロゴ、CSS、JavaScript のファイルなど、頻度の低い更新

次に、コンテンツ カテゴリ別の有効期限を選択します。たとえば、ほぼリアルタイムのスポーツ得点情報には 5 秒の有効期限が適切かもしれませんし、天気の更新には 1 時間の有効期限を使用できるかもしれません。Cloud Storage に保存されているコンテンツの場合は、カスタム メタデータを使用して有効期限を設定します。コンテンツが Compute Engine によって提供される場合、ウェブ サーバー ソフトウェアを設定することによって有効期限を制御します。

有効期限は、Cache-Control ヘッダーの max-ages-maxage の値で指定します。このヘッダーは HTTP 仕様で定義されています。たとえば、次の Cache-Control では、キャッシュの有効期限 72 時間(259200 秒)として、関連付けられたコンテンツを公開読み取り可能および公開キャッシュ可能にします。

 Cache-Control: public, max-age=259200

キャッシングを最大にするには、キャッシングの詳細のガイドラインに従います。Cache-Control メタデータ フィールドの max-age 値と s-maxage の値は、次のように連携して動作することに注意してください。

  • max-age 値および s-maxage 値は秒単位です。
  • s-maxage 値は共有キャッシュにのみ適用され、ブラウザのキャッシュには適用されません。
  • max-age 値は、s-maxage によってオーバーライドされない限り、すべてのキャッシュに適用されます。

変更頻度の低いコンテンツや関連コンテンツとともに変更される必要のあるコンテンツについては、多くの場合、長い有効期限を URL バージョン管理と組み合わせて使用するのが適切です。

カスタム キャッシュキーを使用してキャッシュ ヒット率を向上させる

デフォルトの場合、Cloud CDN は完全な要求 URL を使用してキャッシュキーを構築します。パフォーマンスとスケーラビリティのためには、キャッシュヒット率を最適化することが重要です。キャッシュ ヒット率を最適化するためには、カスタム キャッシュキーを使用できます。

Cloud CDN key-value ストア
Cloud CDN key-value ストア

キャッシュキーをカスタマイズして、プロトコル、ホスト、およびクエリ文字列の任意の組み合わせを含めたり省略したりすることができます。たとえば、異なるドメインで同じロゴを使用する 2 つのウェブサイトがあるとします。ロゴを表示するには、次のようにカスタム キャッシュキーを使用します。

  • ウェブサイトのコンテンツは異なりますが、どちらのドメインでも会社の同じロゴを使用します。ロゴを保持するバックエンド サービスに対して Cloud CDN を有効にしてキャッシュキーをカスタマイズするときに、[ホスト] チェックボックスをオフにすると、キャッシュはドメインを無視しますが、ロゴはキャッシュに保存されるようになります。
  • HTTP と HTTPS のどちらで表示されているかにかかわらず、ロゴはキャッシュに保存する必要があります。ロゴを保存するバックエンド サービスのキャッシュキーをカスタマイズするときに、[プロトコル] チェックボックスをオフにすると、HTTP と HTTPS によるリクエストがロゴのキャッシュ エントリの一致としてカウントされるようになります。

キャッシュキーをカスタマイズする方法については、キャッシュキーの使用をご覧ください。

URL バージョン管理を使用したコンテンツの更新

コンテンツをバージョン管理すると、同じコンテンツの異なるバージョンが提供され、キャッシュ エントリが期限切れになる前にユーザーに新しいコンテンツを表示することにより実質的に削除します。バージョン管理機能はフリーで使いやすいので、キャッシュ可能なコンテンツを更新するためのデフォルトの方法としてバージョン管理機能を使用することをおすすめします。コンテンツをバージョン管理するには、URL に、バージョン番号などのパラメータを追加します。URL にパラメータを含めるには、次のようなさまざまな方法があります。

  • クエリ文字列を追加: file.ext?v=100
  • ファイルの名前を変更: file.1.0.0.ext or file_v100.ext
  • ファイルのパスを変更: /v100/file.ext

パラメータを追加すると、ファイル名と URL が変更されます。この変更により、キャッシュでは既存のキャッシュ エントリが無視されるようになります。

無効化を控えめに使用したコンテンツの削除

無効化すると、キャッシュ エントリが期限切れになる前に、Cloud CDN 分散キャッシュ サーバーからコンテンツが削除されます。無効化には結果整合性があります。

無効化は控えめに、最後の手段としてのみ使用することをおすすめします。たとえば、法律上の理由や意図しないアップロードのためにコンテンツを削除する必要が生じた場合に、無効化が便利です。それ以外の場合は、可能な限りバージョニングを使用するか、コンテンツが正常に期限切れになるまで待つことをおすすめします。Cloud CDN キャッシュ サーバーは、アクセス頻度の低いコンテンツを定期的に削除して、新しいコンテンツのスペースを確保します。30 日間アクセスされなかったコンテンツは無条件に削除されます。

有効期限の設定URL バージョン管理の使用とは対照的に、キャッシュの無効化は開始するたびに課金され、回数制限があります。

無効化の詳細については、キャッシュ無効化の概要を参照してください。

サードパーティのパフォーマンス テストのレビュー

サードパーティ プロバイダからのレポートを確認します。たとえば、Cedexis Radar Community で提供している可用性、レイテンシ、スループットのレポートがあります。

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

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

Cloud CDN のドキュメント