動的圧縮を有効にすると、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-Rangesをnoneに設定します。このリソースの範囲リクエストが無視されることをクライアントに通知します。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 つのルートルールを含む Media CDN サービスを作成または特定します。
ルートルールの動的圧縮を有効にする
デフォルトでは、ルートルールの圧縮モードは無効になっています。
モードを自動に設定すると、対象となるすべてのレスポンスで動的圧縮が有効になります。また、最適な圧縮アルゴリズムを自動的に選択するように Media CDN に指示します。
動的圧縮を有効にするには、次の操作を行います。
コンソール
Google Cloud コンソールで、[Media CDN] ページに移動します。
ルートルールを構成するサービスの [詳細] ページを開くには、サービス名をクリックします。
編集モードに切り替えるには、[編集] ボタンをクリックします。
[ルーティング] セクションに移動するには、[次へ] をクリックします。
ホストルールを編集するには、矢印をクリックして展開します。
ルートルールを編集するには、それぞれの行で [編集] をクリックします。
[ルートルールを編集] ペインで、[詳細構成] をクリックします。
省略可: [ルートのアクション] で、CDN ポリシー項目を追加します。
CDN ポリシーを使用すると、Media CDN はコンテンツを 1 回圧縮して複数回配信できるため、帯域幅を節約し、配信を高速化できます。
[動的圧縮] セクションで、[圧縮を有効にする] を選択します。
ルートルールを保存するには、[保存] をクリックします。
サービスへの変更を保存するには、[サービスを更新する] をクリックします。
gcloud と YAML
Media CDN 構成を YAML ファイルにエクスポートします。
gcloud edge-cache services exportコマンドを使用します。gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yaml次のように置き換えます。
SERVICE_NAME: サービスの名前FILENAME: YAML ファイルの名前
YAML ファイルのルート定義で、
routeActionの下にcompressionModeをAUTOMATICに設定します。次の例をご覧ください。routing: hostRules: - hosts: - media.example.com pathMatcher: routes pathMatchers: - name: routes routeRules: - priority: 2 origin: origin1 matchRules: - pathTemplateMatch