[AWS] CloudFrontのキャッシュを無効化する


サイトの高速化などを図る上で、便利なCloudFrontですが、CloudFrontにキャッシュされてしまうと一定期間過ぎないとファイルが更新されません。すぐに更新したい時や、削除したファイルをすぐに閲覧できない状態にしたい時に不便です。そこで今回はCloudFrontのオブジェクトのキャッシュを無効化する方法をご紹介します。

Invalidationの作成

AWSの管理画面から、該当のオブジェクトがキャッシュされている、CloudFrontディストリビューションを指定します。タブの中から「invalidations」を選択し、「Create Invalidation」をクリックします。

invalidationの作成

オブジェクトのパスを要求されるので、該当のオブジェクトのパスを入力します。
ワイルドカードも使えるので、「/directory/*」などとすると、directory以下のすべてのオブジェクトを指定することもできます。

このInvalidationは最初の1000件は無料ですが、それ以上は有料になります。
パスの数で料金が設定されており、ワイルドカードを使った指定の場合オブジェクトが複数あってもパスは1個とカウントされるので可能な限りワイルドカードで指定したほうが良さそうです。

パスを入力し、「Invalidate」をクリックします。
Create Invalidation

15分ほどでキャッシュが無効化されます。

作成したInvalidationのステータスが表示されます。ステータスが「Progress」から「Complete」になればキャッシュの無効化が完了します
Invalidation Complete

無効化するオブジェクトの数にもよると思いますが、僕が試した範囲では一つのオブジェクトのキャッシュが無効化されるまで15分程度の時間がかかりました

参考サイト

AWS CloudFrontのinvalidationにワイルドカードが使えるようになりました。
オブジェクトの無効化(ウェブディストリビューションのみ)

コメントを残す