はじめに
CloudFrontは、ウェブサイトやアプリケーションのコンテンツをエッジロケーションにキャッシュして高速配信を実現するCDNサービスです。
しかし、S3などのオリジン側でファイルを更新した際、CloudFrontのキャッシュが残っていると古いファイルが配信されてしまいます。
そこで重要なのが、キャッシュの"無効化"操作です。
書こうと思ったきっかけ
CloudFrontにキャッシュされた古いデータが、S3上での修正を反映せずに表示されて困った経験がありました。その際にAWS CLIを用いたキャッシュ無効化(Invalidation)の方法を調べ、実際に試してみて無事に解決できたため、手順を記録しておこうと思い記事化しました。
CloudFrontキャッシュの削除方法
CloudFrontのキャッシュは、以下の方法で削除(無効化)できます。
方法1:AWSマネジメントコンソールから無効化
- AWSマネジメントコンソールにログイン
- CloudFrontサービスを開く
- 対象のディストリビューションIDをクリック
- 左メニューの「Invalidations(無効化)」を選択
- 「Create Invalidation」をクリック
- パスを入力(例:
/*
で全削除) - 「Invalidate」ボタンで作成
数分以内に無効化が完了します。
方法2:AWS CLIから無効化(自動化向き)
aws cloudfront create-invalidation \
--distribution-id xxx \
--paths "/*"
出力例:
{
"Location": "https://cloudfront.amazonaws.com/...",
"Invalidation": {
"Id": "xxx",
"Status": "InProgress",
"CreateTime": "2025-04-21T01:38:14.503000+00:00",
"InvalidationBatch": {
"Paths": {
"Quantity": 1,
"Items": ["/*"]
},
"CallerReference": "cli-..."
}
}
}
ステータスの確認
aws cloudfront get-invalidation \
--distribution-id xxx \
--id xxx
Status
が Completed
になっていればキャッシュ削除完了です。
まとめ
CloudFrontは強力なCDNですが、キャッシュが原因で最新データが反映されないケースもあります。
そうした場合は、CLIやコンソールからのキャッシュ無効化操作が非常に有効です。
特に頻繁にコンテンツが更新されるサイトでは、S3側のファイル名にバージョンを持たせる運用(例: style-v2.css
)や、TTL設定の見直しも検討してみてください...!