HTTP ヘッダーに基づいて Amazon CloudFront でコンテンツをキャッシュしたいと考えています。どうすればよいですか?
簡単な説明
HTTP ヘッダーに基づいてコンテンツをキャッシュするようにディストリビューションを設定するには、次のいずれかを実行します。
- キャッシュポリシーを作成し、ディストリビューション内の動作にアタッチする
- ディストリビューション内の既存のレガシーキャッシュ動作の設定を編集する
コンテンツをキャッシュするための新しいキャッシュポリシーを作成するのがベストプラクティスです。レガシーディストリビューションを編集する代わりに、新しいキャッシュポリシーを使用して設定をさらにカスタマイズできます。
重要: Connection、Host (for Amazon S3 origins)、Proxy-Authorization、TE、または Upgrade のヘッダータイプのリクエストヘッダー値に基づいてキャッシュするように CloudFront を設定することはできません。詳細については、「キャッシュ条件に使用するヘッダーを選択する」を参照してください。
解決方法
キャッシュポリシーを作成
- CloudFront コンソールを使用してキャッシュポリシーを作成します。
- [TTL settings] (TTL 設定) で、[Minimum TTL] (最小 TTL)、[Maximum TTL] (最大 TTL)、[Default TTL] (デフォルト TTL) の値を入力して、CloudFront がオブジェクトをキャッシュする時間を管理します。デフォルトでは、キャッシュされたファイルは 24 時間後に自動的に失効します。
- [Cache key settings] (キャッシュキーの設定) の下にある [Headers] (ヘッダー) で、[Include the following headers] (次のヘッダーを含める) を選択します。
- [Add header] (ヘッダーを追加) ドロップダウンリストからヘッダーを選択するか、[Add custom] (カスタムを追加) を選択してカスタムヘッダーを追加します。
- ポリシーをアタッチする動作の要件に基づいて、キャッシュポリシーの他のすべての設定を完了します。その後、[Create] (作成) を選択します。
- キャッシュポリシーを作成したら、CloudFront ディストリビューションの関連する動作にポリシーをアタッチする手順に従います。
既存動作の設定を編集する
- CloudFront コンソールを開いて、ディストリビューションを選択します。
- [Behaviors] (動作) タブを選択します。その後、選択した HTTP ヘッダーに基づいてコンテンツをキャッシュするパスを選択します。
- [Edit] (編集) を選択します。
- [キャッシュキーとオリジンリクエスト] で、[レガシーキャッシュ設定] が選択されていることを確認します。
[Legacy cache settings] (レガシーキャッシュ設定) が選択されていない場合は、前のセクションのステップに従ってキャッシュポリシーを作成します。
- または -
[Legacy cache settings] (レガシーキャッシュ設定) を選択した場合は、次の操作を実行します。
[Headers] (ヘッダー) で、次のヘッダーを [Include] (含める) を選択します。
[Add header] (ヘッダーを追加) ドロップダウンリストから、キャッシュするヘッダーを選択します。
- CloudFront キャッシュのキャッシュ期間を管理するには、[Object Caching] (オブジェクトキャッシュ) で [Customize] (カスタマイズ) を選択します。その後、[Minimum TTL] (最小 TTL)、[Default TTL] (デフォルト TTL)、[Maximum TTL] (最大 TTL) フィールドで値を指定します。詳細については、「オブジェクトキャッシュ」を参照してください。
- [Save Changes] (変更を保存) を選択します。
注: 個々のファイルのキャッシュ期間を変更するには、Cache-Control max-age ディレクティブ、Cache-Control s-maxage ディレクティブ、または Expires ヘッダーを追加するようにオリジンを設定します。詳細については、「ヘッダーを使用した個々のオブジェクトのキャッシュ保持期間の制御」を参照してください。
Amazon Simple Storage Service (Amazon S3) オリジンについては、ヘッダー値のメタデータを追加して、個々のオブジェクトのキャッシュの有効期限を管理します。詳細については、「Amazon S3 コンソールを使用したオブジェクトへのヘッダーの追加」を参照してください。
関連情報
ポリシーの使用
リクエストヘッダーに基づくコンテンツのキャッシュ
コンテンツがキャッシュに保持される期間 (有効期限) の管理