CloudFront でファイルを圧縮する際の問題をトラブルシューティングするにはどうすればよいですか?

所要時間1分
0

圧縮されたオブジェクトを自動的に提供するために Amazon CloudFront ディストリビューションを使用していますが、コンテンツはビューワーで圧縮されません。これをトラブルシューティングするにはどうすればよいですか?

解決方法

CloudFront の設定を確認する

  • [Compress objects automatically] (オブジェクトを自動的に圧縮) 設定が [Yes] (はい) に設定されていることを確認します。
  • キャッシュポリシーの設定で BrotliGzip の両方が有効になっていることを確認します。
  • キャッシュポリシーの TTL 値が 0 より大きい値に設定されていることを確認します。キャッシュがオフになっている場合、CloudFront はオブジェクトを圧縮しません。

ビューワーの設定を確認する

まず、 HTTP Archive (HAR) をキャプチャして、ブラウザから送信された詳細なリクエストヘッダーに関する情報を取得します。その後、次を確認します。

  • リクエストが HTTP 1.0 よりも上位の HTTP バージョンを使用していること。HTTP の下位バージョンでは、CloudFront は Accept-Encoding ヘッダーを削除し、レスポンスでオブジェクトを圧縮しません。
  • Accept-Encoding ヘッダーはビューワーリクエストに含まれており、gzip または br 値のいずれかが含まれていること。

オリジンサーバーが CloudFront に返すレスポンスを検証する

オリジンにアクセスできる場合は、オリジンサーバーが CloudFront に返すレスポンスを確認します。その後、次を確認します。

  • オリジンが Content-Encoding ヘッダーを返していないこと。このヘッダーは、応答が既に圧縮されていることを示します。
  • レスポンス Content-Length がオリジンからのレスポンスに存在しており、サポートされている 1,000 バイトから 10,000,000 バイトの範囲内であること。
  • ファイルタイプが圧縮のためにサポートされていること
  • レスポンスの HTTP ステータスコード200403404 のいずれかであること。

該当のオブジェクトについてキャッシュヒットを見つけたら、キャッシュから無効にします。CloudFront は、イメージの圧縮設定をオンにしても、エッジロケーションで既にキャッシュされているオブジェクトを圧縮しません。CloudFront は、エッジキャッシュからリクエストが提供されると、「X-Cache: Hit from CloudFront」(X-Cache: CloudFront からのヒット) レスポンスを返します。


AWS公式
AWS公式更新しました 2年前