【AWS】CDNサービス「CloudFront」のキャッシュ削除方法

AWSのCDNサービスである「CloudFront」を使い始めたのですが、データを変更しても、なかなかその内容に変更されないものがありました。
これはキャッシュが悪さしているな、、、と思い削除したところ、無事にすぐに反映されました。

キャッシュの削除方法をメモしておきます。

CDNって?

このページを参照されている方には釈迦に説法かもしれませんが、簡単に解説いたします。

CDNとは「Content Delivery Network」の略で、ウェブのコンテンツを効率的かつスピーディーに配信するために使われる仕組みです。
このCDNを実現するサービスの一つに、AWSの「CloudFront」があるわけです。

例えば、とある動画をサーバーに配置して配信するとしましょう。
動画の再生は、容量も大きいためネットワーク負荷がかかります。
そのため、1台のサーバーで多数の接続を受けることはできません。
利用者からすると重い(もしくはつながらない)、サーバーからすると他の処理ができなくなる、落ちる、といったことにつながります。

そこで「CDN」の出番です。

「CDN」は、サーバーのデータ(この例だと動画データ)を、多数のキャッシュサーバーにコピーし、
利用者からのリクエストをそちらに振り分けるような動きをします。

また、キャッシュサーバーは利用者の(物理的に)近いロケーションが選ばれることが多いため、
サーバーに直接アクセスするよりもレスポンスの向上が見込めます。

「サーバー+(多数の)キャッシュサーバー+分散できるような仕組み」が必要となるため、
自前で用意するのは至難の業です。

が、お手軽に利用できるCDNとして、AWSの「CloudFront」といったサービスがあるわけですね。

ただし、キャッシュサーバーへの反映にタイムラグがあり、直近のデータが取得できていないかも、といった欠点もあります。
今回も、この事象に該当したと思われます。

「CloudFront」キャッシュ削除方法

当然ですが、手順は準備されておりますので、ごくごく簡単です。

「CloudFront」を開き、該当のDistributionを選択

Invalidations > Create Invalidation

削除するパスを指定して実行

ワイルドカードの指定もできますので、
/*
などで全てのキャッシュを削除することも可能です。

補足

「Invalidation」は、あくまで「都度の指示」を出すだけです。
(今あるキャッシュを消して!というだけ。)

「キャッシュしない」といった設定となるわけではありませんので、ご注意ください。

関連リンク

記事情報や役立ち情報を発信します!
Click to Hide Advanced Floating Content
Click to Hide Advanced Floating Content