初めに
CloudFrontはCDN(Content Delivery Network)なのでキャッシュをさせることに意味がありますが、
特定のファイルはキャッシュしてほしくないケースもあるかと思います。
AWS管理コンソールからキャッシュをクリアすることも可能ですが、
キャッシュしてほしくないファイルをキャッシュするたびに管理コンソールからキャッシュをクリアするということも可能ですが、
今回は特定ファイルのキャッシュを無効化する方法を行ってみます。
※本記事では、CloudFrontのキャッシュ設定のみを記載しています。
キャッシュ無効化設定
1. AWS管理コンソールにログインし、画面左上の「サービス」をクリックし、CloudFrontをクリックします。
2. 作成しているCloudFront ディストリビューションをクリックし、ビヘイビアをクリックします。
3. ビヘイビアを作成をクリックします。
4. 各設定値を入力します。今回は下記で設定しています。
パスパターン | ./*.jpg ※1 |
オリジンとオリジングループ | 任意のオリジンを設定します。 |
キャッシュキーとオリジンリクエスト | Legacy cache settings ※2 |
ヘッダーを追加 | すべて |
クエリ文字列 | すべて |
cookie | すべて |
オブジェクトキャッシュ | Customize |
最小 TTL | 0 |
最大 TTL | 0 |
デフォルト TTL | 0 |
※2 今回はCloudFrontの古いキャッシュ設定であるLegacy cache settingsにて設定しています。
最小/最大/デフォルトのTTLを0にし、キャッシュの期間を0秒に設定することで「.jpg」ファイルはキャッシュしないようにします。これで設定は完了です。
【確認】
キャッシュの状況はFirefoxの「要素を調査」等でも確認することができます。
キャッシュされている場合はコンテンツへアクセスした際、「X-Cache」箇所にて「Hit from cloudfront」と表示されます。
キャッシュされていない場合は「Miss from cloudfront」と表示されます。
いかがでしょうか。
CloudFrontのキャッシュをしない設定について記載してみました。
本来、CloudFrontの目的としてはキャッシュさせることでWEBページの表示速度を高速化するようにする機能ですが、
都合上、キャッシュさせたくないファイルが出てきた場合は、上記の設定で解決するのも手段の一つかもしれませんね。