CloudFront エッジサーバのキャッシュ時間の制御
2014.4.7
既知の内容ですがメモしておきます(・.・)
エッジサーバのキャッシュ時間を指定する方法とそのキャッシュをクリアする方法です.
今回使うサーバの構成
オリジン(AWS S3) -- CDN(CloudFront) -- クライアント(web ブラウザなど)
エッジサーバのキャッシュ時間の設定方法
- CloudFront はデフォルトでオリジンサーバのコンテンツを 24 時間キャッシュするようになっている.(*1)
- このキャッシュ時間を変更したい場合は, 例えば, オリジンサーバのレスポンスヘッダに
Cache-Control: max-age=300
などキャッシュ時間を設定する. すると CloudFront はこちらの指定を優先してこの指定した時間に変更する.
エッジサーバのキャッシュをクリアする
ドキュメントによると(*2), CloudFront の設定画面で Invalidations
へ進み Create Invalidation
を選択, キャッシュをクリアしたいファイルのパス及びファイル名を明記し Invalidate
を実行することでエッジサーバのキャッシュをクリアすることができる. 実行後, Status が Completed
に変わったら処理が終わりキャッシュがクリアされる.
入力例
ドメインを xxx.cloudfront.net
とし, xxx.cloudfront.net/test/index.html
のキャッシュをクリアする場合.
/test/index.html
または
test/index.html
と明記する. ルートディレクトリからのパス指定となっている.
- 反映には 20 分程度かかる.
- ファイル指定に wildcard は使えない.
- 一度実行すると取り消しができない.