お知らせ

お知らせ NEWS

2021.02.28

Webサイトの更新が反映されない悩みを解決。CDNキャッシュ削除の仕組みと注意点

Webサイトの更新が反映されない悩みを解決。CDNキャッシュ削除の仕組みと注意点

Webサイトのコンテンツを更新した際、ブラウザで確認しても古い情報のまま書き換わらないという現象に直面することがあります。ブラウザのキャッシュをクリアしても解決しない場合、原因は「CDN(コンテンツデリバリネットワーク)」に蓄積されたキャッシュにある可能性が高いです。本記事では、CDNキャッシュ削除(パージ)の仕組みや適切なタイミング、作業時の注意点について、専門的な知見を交えて詳しく解説します。

目次

CDNキャッシュ削除(パージ)の基礎知識

CDNは世界各地に配置された「エッジサーバー」にWebサイトの静的ファイルを一時的に保存(キャッシュ)し、ユーザーに最も近いサーバーから配信することで高速化を実現する仕組みです。しかし、この便利な仕組みが、更新情報の反映を妨げる要因になることがあります。

CDNがキャッシュを保持する仕組み

ユーザーがWebサイトにアクセスすると、CDNのエッジサーバーは「オリジンサーバー(元のデータを保持するサーバー)」から画像やCSS、JavaScriptなどのデータを取得します。一度取得したデータは一定期間エッジサーバー内に保持され、次に同じデータが要求された際は、オリジンサーバーへ行かずにエッジサーバーが直接データを返します。これがWebサイトの表示速度向上に寄与します。

なぜキャッシュの削除が必要になるのか

オリジンサーバー上のファイルを更新しても、CDNのエッジサーバーに古いデータが残っている(キャッシュの有効期限が切れていない)場合、ユーザーには古いコンテンツが表示され続けます。急ぎの修正やキャンペーン情報の更新など、即座に最新の状態を反映させたい場合に、強制的にエッジサーバー上の古いデータを消去する「キャッシュ削除(パージ)」という操作が必要になります。

キャッシュを削除する主な方法

CDNのキャッシュを削除する方法はいくつか存在し、状況に応じて使い分けるのが一般的です。

特定のファイルを手動で削除する(パージ)

更新した特定の画像ファイルやCSSファイルだけを指定して削除する方法です。例えば「/assets/css/style.css」のようにパスを指定します。影響範囲が最小限で済むため、最も推奨される方法です。管理画面から対象のURLを入力することで実行できます。

すべてのキャッシュを一括で無効化する

サイト全体のデザイン変更や、どのファイルが影響しているか不明な場合に、全キャッシュを一度に削除します。非常に強力な手段ですが、後述するサーバー負荷のリスクが高いため、慎重に行う必要があります。

API連携による自動削除

CMS(WordPress等)の更新と連動させて、自動的にCDNキャッシュを削除する仕組みを構築することも可能です。開発工程にCI/CD(継続的インテグレーション/デリバリー)を導入している場合、デプロイ完了時に自動でパージを実行するように設定するのがWeb制作の現場では一般的です。

キャッシュ削除時に注意すべきリスク

キャッシュ削除は便利な機能ですが、頻繁に、あるいは大規模に行うと、システム全体に悪影響を及ぼす可能性があります。

オリジンサーバーへの負荷増大

キャッシュを一斉に削除すると、その直後に発生するアクセスはすべて「オリジンサーバー」へと直接届くことになります。高トラフィックのサイトで全キャッシュ削除を行うと、オリジンサーバーがリクエストを処理しきれず、サイトがダウンしたりレスポンスが極端に低下したりする恐れがあります。

反映までのタイムラグ(伝搬時間)

CDNの管理画面で削除ボタンを押しても、世界中のエッジサーバーすべてからデータが消えるまでには数十秒から数分のタイムラグが発生することがあります。Amazon CloudFrontなど、使用しているサービスによってこの伝搬時間は異なります。即座に「0秒」で反映されるわけではない点は留意しておきましょう。

コストの発生(CloudFront等の場合)

例えばAWSのCloudFrontでは「Invalidation(無効化)」のリクエストに対して料金が発生する場合があります。月に一定回数までは無料枠が設定されていますが、大量のファイルを個別に無効化し続けると運用コストが嵩むため、計画的な実行が必要です。

効率的なキャッシュ運用のための実践的Tips

手動でのキャッシュ削除に頼りすぎない、スマートなWebサイト運用方法を紹介します。

ファイル名にバージョンやハッシュを付与する

「style.css」という名前のまま中身だけを書き換えるのではなく、「style.css?v=20231027」のようにクエリパラメータを付与したり、「style-a1b2c3.css」のようにファイル名自体にハッシュ値を含めたりする方法です。ファイル名が変われば、CDNはそれを「新しいファイル」として認識するため、キャッシュ削除の操作をせずとも確実に最新版が配信されます。

TTL(保持期間)の最適化

コンテンツの性質に応じて、キャッシュの保持期間(TTL: Time To Live)を適切に設定します。頻繁に更新されるニュース一覧などは短めに、ほとんど変わらないロゴ画像などは長めに設定することで、キャッシュ削除の手間を減らしつつ、高速な配信を維持できます。

まとめ

CDNキャッシュの削除は、Webサイトの更新を確実にユーザーへ届けるために欠かせない操作です。しかし、安易な一括削除はサーバー負荷を招き、パフォーマンスを損なう原因にもなり得ます。ファイル名の工夫や適切なTTL設定を組み合わせることで、CDNのメリットを最大限に活かしながら、スムーズな更新作業が行える環境を整えることが重要です。

株式会社ドラマでは、AWS(CloudFront)を活用したインフラ構築から、パフォーマンスを最適化したWebシステム開発まで幅広くサポートしています。インフラの見直しやサイト高速化でお困りの際は、ぜひご相談ください。

関連記事