CloudFrontのキャッシュ無効化について

Y
2022-11-07
2022-11-07

初めに

CloudFrontはCDN(Content Delivery Network)なのでキャッシュをさせることに意味がありますが、
特定のファイルはキャッシュしてほしくないケースもあるかと思います。
AWS管理コンソールからキャッシュをクリアすることも可能ですが、
キャッシュしてほしくないファイルをキャッシュするたびに管理コンソールからキャッシュをクリアするということも可能ですが、
今回は特定ファイルのキャッシュを無効化する方法を行ってみます。
※本記事では、CloudFrontのキャッシュ設定のみを記載しています。

キャッシュ無効化設定

1. AWS管理コンソールにログインし、画面左上の「サービス」をクリックし、CloudFrontをクリックします。

cloudfront-image1

2. 作成しているCloudFront ディストリビューションをクリックし、ビヘイビアをクリックします。

cloudfront-image2

3. ビヘイビアを作成をクリックします。

cloudfront-image3

4. 各設定値を入力します。今回は下記で設定しています。

cloudfront-image4

パスパターン ./*.jpg ※1
オリジンとオリジングループ 任意のオリジンを設定します。
キャッシュキーとオリジンリクエスト Legacy cache settings ※2
ヘッダーを追加 すべて
クエリ文字列 すべて
cookie すべて
オブジェクトキャッシュ Customize
最小 TTL 0
最大 TTL 0
デフォルト TTL 0
※1 除外するファイルを設定します。jpgファイルを全てキャッシュさせないようにする場合、./*.jpgで進めていきます。
※2 今回はCloudFrontの古いキャッシュ設定であるLegacy cache settingsにて設定しています。

最小/最大/デフォルトのTTL0にし、キャッシュの期間を0秒に設定することで「.jpg」ファイルはキャッシュしないようにします。これで設定は完了です。

【確認】
キャッシュの状況はFirefoxの「要素を調査」等でも確認することができます。
キャッシュされている場合はコンテンツへアクセスした際、「X-Cache」箇所にて「Hit from cloudfront」と表示されます。

cloudfront-image5

キャッシュされていない場合は「Miss from cloudfront」と表示されます。

cloudfront-image6

いかがでしょうか。
CloudFrontのキャッシュをしない設定について記載してみました。
本来、CloudFrontの目的としてはキャッシュさせることでWEBページの表示速度を高速化するようにする機能ですが、
都合上、キャッシュさせたくないファイルが出てきた場合は、上記の設定で解決するのも手段の一つかもしれませんね。