動的圧縮を有効にする

動的圧縮を有効にすると、Media CDN から返されるレスポンスは自動的に圧縮されます。ネットワーク経由で送信されるデータのサイズは、通常のケースで 60%~85% 減少します。

サイズを縮小すると、スタイルシート(CSS)、スクリプト(JavaScript)、動画マニフェスト(HLS/DASH)などの重要なアセットのダウンロードが高速化され、ページの読み込みにかかる時間や動画の再生開始回数を大幅に短縮できます。

サイズの大きいライブ動画再生リスト(マニフェスト)には繰り返しデータとフェッチが大量に含まれています。たとえば、各セグメントのホストとパス接頭辞、HLS または DASH 再生リスト メタデータなどが含まれています。再生リストの読み込みや再生リストの更新のダウンロードを高速に行うほど、クライアントが参照動画セグメントの解析とダウンロードを待機する時間が短くなります。多くの場合、HLS と DASH の再生リストの合計サイズは 90% 以上削減されます。

レスポンスを圧縮する利点については、ウェブの基礎 ガイドをご覧ください。

動的圧縮の仕組み

動的圧縮が有効になっている場合、クライアントがサポートされている圧縮アルゴリズム(br または gzip)のいずれかを受け入れると、送信元から配信される圧縮可能なコンテンツは配信前に圧縮されます。

Media CDN は、圧縮の対象となるすべてのレスポンスに Vary: Accept-Encoding ヘッダーを追加します。関連情報については、圧縮できないコンテンツをご覧ください。

また、リクエストの Accept-Encoding ヘッダーで br または gzip を指定して(必要に応じてゼロ以外の q パラメータを含めて)、圧縮コンテンツの優先度を示している場合、Media CDN は次の処理を行います。

  • レスポンスから Content-Length ヘッダーを削除します。レスポンス全体が圧縮されるまでコンテンツの全体長は不明であるため、レスポンスをできるだけ早く配信するには、この処理が必要になります。HTTP/1.1 以前では、Media CDN のレスポンスで Content-Length が使用されない場合、Transfer-Encoding: chunked が使用されます。

    レスポンスが圧縮され、キャッシュに保存されると、Media CDN は以降のレスポンスに Content-Length ヘッダーを含め、値を圧縮された本文コンテンツの長さに設定できます。

  • Accept-Rangesnone に設定します。このリソースの範囲リクエストが無視されることをクライアントに通知します。

  • RFC 9110 のセクション 8.8.3 に従って、強い ETag レスポンス ヘッダーを弱めます。たとえば、ETag: "xyzzy"ETag: W/"xyzzy" に置き換えられます。

  • 選択した圧縮アルゴリズムを示す Content-Encoding ヘッダーを br または gzip に設定します。

    Media CDN は、レスポンスの予想圧縮率と圧縮速度またはスループットに基づいて、最適な圧縮アルゴリズムを選択します。

    • 他の圧縮アルゴリズムの Accept-Encoding ヘッダーの q 値が高い場合でも、クライアントが Brotli 圧縮をサポートしていれば、Brotli 圧縮が使用されます。

    • HLS マニフェストは gzip のみを使用して圧縮されます。

    Media CDN は、クライアントの合計ダウンロード サイズと CPU コストのバランスを考慮して圧縮レベルを決定します。圧縮レベルが高くてもパフォーマンスが向上するとは限りません(特に性能の低いモバイル デバイスの場合)。

動的圧縮を構成する

リクエストを処理するルートで動的圧縮を有効にできます。

始める前に

手順は次のとおりです。

ルートルールの動的圧縮を有効にする

デフォルトでは、ルートルールの圧縮モードは無効になっています。

モードを自動に設定すると、対象となるすべてのレスポンスで動的圧縮が有効になります。また、最適な圧縮アルゴリズムを自動的に選択するように Media CDN に指示します。

動的圧縮を有効にするには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで、[Media CDN] ページに移動します。

    Media CDN に移動

  2. ルートルールを構成するサービスの [詳細] ページを開くには、サービス名をクリックします。

  3. 編集モードに切り替えるには、[編集] ボタンをクリックします。

  4. [ルーティング] セクションに移動するには、[次へ] をクリックします。

  5. ホストルールを編集するには、矢印をクリックして展開します。

  6. ルートルールを編集するには、それぞれの行で [編集] をクリックします。

  7. [ルートルールを編集] ペインで、[詳細構成] をクリックします。

  8. 省略可: [ルートのアクション] で、CDN ポリシー項目を追加します。

    CDN ポリシーを使用すると、Media CDN はコンテンツを 1 回圧縮して複数回配信できるため、帯域幅を節約し、配信を高速化できます。

  9. [動的圧縮] セクションで、[圧縮を有効にする] を選択します。

  10. ルートルールを保存するには、[保存] をクリックします。

  11. サービスへの変更を保存するには、[サービスを更新する] をクリックします。

gcloud と YAML

  1. Media CDN 構成を YAML ファイルにエクスポートします。gcloud edge-cache services export コマンドを使用します。

    gcloud edge-cache services export SERVICE_NAME \
        --destination=FILENAME.yaml
    

    次のように置き換えます。

    • SERVICE_NAME: サービスの名前
    • FILENAME : YAML ファイルの名前
  2. YAML ファイルのルート定義で、routeAction の下に compressionModeAUTOMATIC に設定します。次の例をご覧ください。

    routing:
    hostRules:
    - hosts:
      - media.example.com
      pathMatcher: routes
    pathMatchers:
    - name: routes
      routeRules:
        - priority: 2
    origin: origin1
    matchRules:
    - pathTemplateMatch