Amazon CloudFront で特定のファイルを渡したいのですが、エッジロケーションにファイルをキャッシュすることを避けたいです。
解決策
オリジンでの設定
注: レガシーキャッシュ設定を使用する場合は、CloudFront ディストリビューションのキャッシュ動作を更新し、オブジェクトキャッシュを [オリジンキャッシュヘッダーを使用] に設定します。キャッシュポリシーを使用する場合、CloudFront はデフォルトでは、オリジンの Cache-Control 設定を使用します。、
カスタムオリジンウェブサーバーのアプリケーションにおいて、CloudFront にキャッシュさせたくないオブジェクトに Cache-Control no-cache、no-store、または private ディレクティブを追加します。または、CloudFront にキャッシュさせたくないオブジェクトに Expires ディレクティブを追加することもできます。
Amazon Simple Storage Service (Amazon S3)オリジンでは、オブジェクトメタデータを使用し、CloudFront にキャッシュさせたくないオブジェクトに Cache-Control no-store ディレクティブを追加します。各オブジェクトにオブジェクトメタデータを追加できない場合は、オリジンの応答関数にAWS Lambda Lambda@Edge 関数を使用します。Lambda @Edge 関数を使用すると、content-type ヘッダーまたはその他の応答パラメーターの値に基づいて Cache-Control ヘッダーの値を更新できます。
ディストリビューションの設定
CloudFront がオリジンに別のリクエストを送信する前に、オブジェクトをキャッシュに保持する期間を制御できます。CloudFront ディストリビューションのキャッシュ動作の有効期間 (TTL) に最小値、最大値、およびデフォルト値を設定します。これらの値は、キャッシュ動作にアタッチされたキャッシュポリシー、またはレガシーキャッシュ設定で設定できます。
キャッシュポリシーを使用してディストリビューションの構成を編集するには、次の手順を実行します。
- CloudFront コンソールを開きます。
- 変更するディストリビューションを選択します。
- [動作] タブを選択します。
- CloudFront にキャッシュさせたくないオブジェクトのキャッシュ動作がすでにある場合は、そのキャッシュ動作を選択して [編集] を選択します。新しいキャッシュ動作を作成するには、[動作の作成] を選択します。
- [キャッシュとオリジンリクエストの設定] で [キャッシュポリシーとオリジンリクエストポリシー] を選択します。
- [キャッシュポリシー] で [マネージド - CachingDisabled] を選択します。
注: レガシーキャッシュ設定を使用する場合は、[オブジェクトのキャッシュ] で [カスタマイズ] を選択し、TTL の最小値、最大値、およびデフォルト値を 0 に設定します。
- [変更を保存] を選択します。
注: Amazon S3 バケットをオリジンとして使用しない場合は、すべてのヘッダーをオリジンに転送するように特定のキャッシュ動作を設定します。キャッシュ動作を更新し、[選択したリクエストヘッダーに基づいてキャッシュする] を [すべて] に設定します。
関連情報
CloudFront がオブジェクトをキャッシュする期間を指定する
CloudFront が配信するコンテンツを追加、削除、置換する