CloudFront CDNの上にS3バケットがあります。S3/CloudFrontは、 "Cache-Control:max-age = 365000000、immutable"というヘッダーを持つすべてのファイルを提供します。
このS3バケットは「不変」です。つまり、そこにファイルをアップロードすると、それを削除したり更新することはありません。すべてのクライアントがS3/CloudFrontからのファイルを非常に積極的にキャッシュすることは安全です。
現在、Etagsはうまく機能しており、クライアントはほとんどの場合304応答を返します。しかし、304レスポンスを得るには、より積極的なキャッシュによって回避できる往復が必要です。
だから私はこの振る舞いが欲しい:S3キャッシュは変化しないので
CloudFrontのCDNキャッシュは、無効化され得ることはありません。 CloudFrontは、ファイルに対して複数回S3を再度尋ねる必要はありません。私はCloudFrontの配布設定を使用してその設定に成功したと思います。
CloudFrontのヘッダ
Cache-Control: max-age=365000000, immutable
を持つすべてのファイルを提供する必要があります(immutableは、2016のような新しい、部分的にサポートされた値である)
私はどのように私は、所望の結果を達成することができます理解していません。私はCloudFrontまたはS3レベルでそれを処理する必要がありますか?各S3ファイルに適切なヘッダーを設定するためのいくつかのことを読んだ。私が使用できるカスタムHTTPヘッダーを持つすべてのファイルを提供するためのグローバル設定はありませんか?
ありがとうございました。私はmodifyコマンドを使って行くつもりです。もしCloudFrontが時にはそれを無効にしてしまってもそれほどうまくないのであれば、どちらも大きな問題ではない –
"CloudFront CDNキャッシュは決して無効にならないはずです" *は非常に厳しいです。実際、それは単に合理的な期待ではありません。モノリシックキャッシュは1つありません。各エッジに1つずつ存在し、オブジェクトの要求を処理する各エッジは、最初は原点からフェッチします。オブジェクトは、アクセスが頻繁でないこと(「人気」)のために、任意のエッジから取り除くこともできます。それはキャッシュです...定義によっては揮発性ですが、全体的には非常に一貫しています。 [なぜクラウドフロントからキャッシュからオブジェクトを削除するのは単なる時間ですか?](http://stackoverflow.com/a/32878535/1695906) –