静的ページをCloudFront + S3でホストしていて画像を更新したけど、キャッシュのせいで反映されないということがありそうです。
そんなときにキャッシュの有効期限まで待つのではなく、自分でキャッシュを削除して反映させたいはず。
この記事では、AWSのCloudFrontでどうやってキャッシュを削除するかを知ることができます。
では、いってみましょう。
ファイルを無効化
CloudFrontにはInvalidationというものがあり、これをCreateすることでキャッシュを削除することができます。 Edgeサーバーにあるファイルを無効化するからInvalidation。
手順
1. コンソールで [CloudFront Distributes]を開く。
2. [ディストリビューション] を選択する。
選択したディストリビューションの概要が表示されます。
3. [Invalidations] タブを選択する。
4. [Create Invalidation] ボタンをクリックする。
ボックスの中にキャッシュを削除したいファイルのパスを入力してください。
画像のように記述すると、 /images/xxxx.jpg
のキャッシュを削除することになります。
まとめてキャッシュを削除したいときは、 /*
のような指定をするとすべてキャッシュを削除できます。
5. [Invalidate] ボタンをクリックする。
選択すると、CloudFrontのEdgeサーバーのキャッシュ削除処理が開始されます。
Status が In Progress
の場合はまだ削除処理中で、 Complete
になれば完了です。
こちらにAWSの公式ドキュメントがあるので、詳細を知りたい場合は参考にしてみてください。