はじめに
このドキュメントの目的
本書は、CDN(コンテンツ配信ネットワーク)にキャッシュされたコンテンツを安全かつ確実にクリアする方法を分かりやすく解説します。管理画面での操作やコマンド、確認手順まで幅広く扱います。実務で使える具体例を重視しています。
対象読者
- ウェブサイトの管理者や運営担当者
- デプロイ後に表示が更新されないと困っている方
- 技術者で、CDN運用の基本を押さえたい方
本書で学べること
- CDNキャッシュクリアの基本手順
- 主要CDNごとの実際の操作方法
- キャッシュ無効化とパージの違い
- クリア後の確認やトラブル対処
- ブラウザ側のキャッシュ対応と上級者向け手法
読み方のガイド
順に読めば基礎から応用まで学べます。まず第2章で基本を押さし、必要に応じて該当CDNの章を参照してください。操作前は必ずバックアップや影響範囲の確認を行ってください。
CDNキャッシュクリアの基本手順
はじめに
CDNは配信を速くするためにコンテンツを保存します。そのため、更新が反映されない時はキャッシュをクリア(パージ)します。基本的な流れを押さえれば安心して作業できます。
準備
- どのファイルやパスを消すか明確にする。
- 管理者アカウントでCDNの管理画面にログインする。
- 作業時刻や影響範囲をチームに共有する。
管理画面での全体クリア手順
- CDNのダッシュボードを開く。
- 「キャッシュ管理」や「Purge Cache」を選ぶ。
- 「全てクリア(Purge All)」を実行する。
- 完了メッセージやジョブIDを確認する。反映に数秒〜数分かかります。
特定URL/パスをクリアする方法
- 個別URLを指定(例: /assets/css/style.css)。
- パスやワイルドカードで部分的に消す(サービス依存)。
- 変更が少ない場合は部分クリアで負荷を減らす。
APIやCLIでの自動化
- トークンを用意してAPIにパージリクエストを送る。
- デプロイ時に自動パージする仕組みが便利です。
実行後の確認
- ブラウザのシークレットモードやcurlで最新表示を確認。
- まだ古い表示なら再度パージやTTL設定を見直す。
注意点
- 不要な全パージは避ける。頻繁に行うと配信に負荷がかかります。
- ファイル名にバージョンを付けるとパージ回数を減らせます。
(章内の説明はサービスごとに操作が異なります。次章で主要CDN別の手順を詳しく説明します。)
主要CDNサービス別のキャッシュクリア方法
Cloudflare
- ダッシュボードにログインし対象ドメインを選択します。
- 上部メニューから「Caching」→「Configuration」→「Purge Cache」を開きます。
- 「Purge Everything」で全てをクリア、または「Custom Purge」で特定のURLを入力して削除します。
- APIトークンを使えば自動化できます。特定パスやタグでのパージはプランにより制限があります。
Amazon CloudFront
- AWSコンソールでCloudFrontを開き、対象のディストリビューションを選択します。
- 「Invalidations(キャッシュ削除)」タブで「Create Invalidation」をクリックします。
- 削除したいパス(例: /images/logo.png)やワイルドカード(例: /*)を指定して作成します。
- 実行に数分かかることがあります。APIやAWS CLIでも実行可能です。
その他のCDNサービス
多くのCDNは管理画面に同様の「キャッシュクリア」機能を備えています。特定URL、フォルダ、全削除などオプションを確認してください。公式ドキュメントに手順とAPI例が載っています。
API・自動化のポイント
手動での操作は簡単ですが、リリース作業にはAPIでの自動化が便利です。トークン管理やCI連携を設定するとヒューマンエラーを減らせます。
注意点
キャッシュ削除はCDN上のコピーを消す操作で、ブラウザ側のキャッシュは別です。削除後もしばらく古い内容が残る場合がありますので、ヘッダ確認やキャッシュバスターも併用してください。
キャッシュの無効化と明示的パージの違い
概要
キャッシュの無効化はHTTPヘッダー(例:Cache-ControlやExpires)で保存期間(TTL)を決める方法です。期間が過ぎると自動で古いキャッシュを使わなくなります。一方、明示的パージは管理画面やAPIで対象のキャッシュを即座に削除する操作です。
実際の違い(具体例付き)
- 無効化の例:Cache-Control: max-age=3600 と設定すれば、1時間は古いファイルを使います。すぐ反映させたい作業には向きません。
- 明示的パージの例:CDNのダッシュボードやcurlでのAPI呼び出しで/css/style.cssだけを削除すると、次のリクエストで新しいファイルが配信されます。
長所と短所
- 無効化の長所:サーバー負荷を平準化でき、仕組みが単純です。運用コストも低めです。短所は即時反映に弱い点です。
- 明示的パージの長所:確実に即時反映できます。緊急更新や修正に有効です。短所は削除後にオリジンサーバーへ同時アクセスが集中し、負荷が一時的に増えることです。
使い分けの目安
- 日常の更新:無効化(TTL調整)を基本にします。負荷やキャッシュ効率を重視する場合は長めのTTLを設定します。
- 緊急の修正や重要な見た目の変更:明示的パージを使います。可能なら個別ファイルだけをパージし、全体のパージは避けて負荷を抑えてください。
補足のテクニック
- 全削除は負荷が高いため、ファイル単位のパージを推奨します。クエリ文字列でキャッシュバスター(例:style.css?v=20251029)を使う方法も便利です。
キャッシュクリア後の確認とトラブルシューティング
確認の基本手順
- ブラウザをシークレット(プライベート)ウィンドウで開き、該当ページを表示します。別端末や別ネットワークでも確認します。これでブラウザ側の影響を切り分けできます。
- CDNの管理画面でパージ(クリア)履歴やステータスを確認します。処理中や失敗の表示がないか見ます。
よくある原因と対処
- サーバー側キャッシュが残っている場合:PHPのオブジェクトキャッシュやサーバーキャッシュを再起動またはクリアします。例:ホスティング管理画面やキャッシュプラグインで操作します。
- テーマやプラグイン独自のキャッシュ:CMSのキャッシュ機能を無効化して再度確認します。
- TTL(有効期限)が長い:CDNやサーバーのキャッシュ設定で短くしてから再パージします。
- 反映遅延:CDN内部で伝播に時間がかかる場合があります。数分〜数十分待って再確認します。
反映確認のための簡単なコマンド
- curlでヘッダー確認:curl -I https://example.com
返るヘッダー(Cache-Control、Age、Via)でどの層がキャッシュしているかを判断できます。
うまくいかないときの対応
- 同じパージを複数回試す。2. 個別URLのパージとワイルドカードでのパージを使い分ける。3. キャッシュバスター(ファイル名やクエリの変更)で一時回避する。
ログ取得とサポートへの連絡
問題が残る場合は、パージのタイムスタンプ、対象URL、管理画面のエラーログを保存してCDNやホスティングのサポートに連絡します。状況を具体的に伝えると対応が早まります。
チェックリスト
- CDNパージ実行済み/成功
- サーバー・アプリのキャッシュクリア済み
- ブラウザで確認済み
- curl等でヘッダー確認済み
- 必要ならサポートに連絡済み
上記を順に確認すると、多くの反映トラブルを解決できます。
ブラウザキャッシュのクリアも忘れずに
なぜ必要か
サーバーやCDNのキャッシュを更新しても、ユーザーのブラウザに古いファイルが残ると最新の表示になりません。特にCSSやJavaScriptを更新したときは、ブラウザキャッシュをクリアしてもらう必要があります。
ブラウザ別の簡単な手順
- Chrome(Windows/Mac): 設定 > プライバシーとセキュリティ > 閲覧履歴データの削除 > 「キャッシュされた画像とファイル」を選んで消去。
- Firefox: 設定 > プライバシーとセキュリティ > 履歴 > 最近の履歴を消去 > キャッシュにチェック。
- Edge: 設定 > プライバシー、検索、サービス > 閲覧データをクリア > キャッシュした画像とファイル。
- Safari(Mac): Safari > 環境設定 > 詳細で“メニューバーに“開発”メニューを表示”を有効化し、開発 > キャッシュを空にする。またはSafari > 履歴 > 履歴を消去。
強制リロード(すぐ確認したいとき)
- Windows/Linux: Ctrl + F5 または Ctrl + Shift + R
- Mac: Command + Shift + R
この操作はページを再読み込みしてキャッシュを無視します。
ユーザー向け案内文の例
“最新の表示にするために、ブラウザのキャッシュをクリアしてください。方法が分からない場合は、強制リロード(Ctrl/Cmd+Shift+R)をお試しください。”
注意点
キャッシュを消すと一時的に読み込みが遅くなることがあります。ログインやフォーム入力中のデータは消える恐れがあるため、事前に保存を促してください。
上級者向け:手動でのキャッシュ削除
前提
手動でサーバー上のキャッシュを削除する方法を説明します。FTP/SFTPで接続して直接ファイルを操作しますが、誤削除でサイトが動かなくなるリスクが高いので、十分な知識とバックアップを用意してください。
準備
- サイト全体のバックアップを取得します。ファイルとデータベース両方を保存してください。
- メンテナンスモードにして訪問者への影響を抑えます。
- 接続情報(ホスト名・ユーザー名・鍵/パスワード)を確認します。
一般的なキャッシュ場所(例)
- WordPress: wp-content/cache、wp-content/advanced-cache.php など
- PHPフレームワーク: var/cache や tmp
- アプリの一時フォルダ: /tmp や storage/cache
手順(安全な順序)
- SFTPで接続し、対象ディレクトリをローカルにダウンロードして保管します。
- 本当にキャッシュだけか確認します。*.php や .htaccess を誤って削除しないでください。
- まずはディレクトリ名を変更してサイト動作を確認します(例: cache -> cache_disabled)。問題なければ中身を削除します。
- コマンドを使う場合は慎重に。rm -rf は強力なのでパスを二重に確認してください。
追加処置
- OPCacheなどのPHP実行キャッシュがある場合は、PHP-FPMの再起動や管理画面でのクリアが必要です。
- CDNを使っている場合はエッジ側のパージも行ってください。
トラブル時の対処
- 動作がおかしい場合は、名前を元に戻すか、ダウンロードしたバックアップを戻します。
- エラーログ(サーバーのエラーログやアプリのログ)を確認して原因を特定します。
手動削除は強力ですが慎重に行ってください。慣れていなければホスティング事業者や開発者に相談することをおすすめします。
注意点とベストプラクティス
はじめに
キャッシュクリアは有効ですが、乱用するとパフォーマンス低下や制限に達する可能性があります。ここでは安全で効率的な運用方法を具体例で説明します。
1) 必要最小限で実行する
頻繁に全体パージを行うとCDNの制限に触れる場合があります。例えば、数枚の画像だけ差し替えるなら該当ファイルのみをパージしてください。
2) 対象を絞る
URL単位やタグ単位でのパージを使います。ワイルドカードや全体パージは最後の手段にしてください。例:/assets/images/logo.png だけを指定して削除。
3) ヘッダーでキャッシュを制御する
短時間だけキャッシュさせたくないAPIや管理画面は、Cache-Control: no-store や max-age=0 を付けます。これによりクリア頻度を減らせます。
4) バージョニングを使う
ファイル名にバージョンやハッシュを付けると、更新時に新しいURLを配信できます。例:style.v202510.js や logo.abc123.png。
5) 自動化とテスト
WordPress等のCMSは公開時に自動でパージするプラグインがあります。ステージング環境で動作確認してから運用してください。
6) ログと権限管理
パージ操作のログを残し、APIキーや権限を限定します。問題発生時に誰が何をしたか追跡できます。
短くまとめると、狙いを明確にして最小限の範囲でクリアし、ヘッダー制御やバージョニングで頻度を減らす運用が効果的です。
まとめ
CDNキャッシュクリアは、Webサイトの変更を確実にユーザーへ届けるために欠かせない作業です。ここでは要点と実践的なチェックリストを短くまとめます。
-
事前確認:利用中のCDNサービス名、パージ方法(全体/個別)、影響範囲を把握します。管理画面やドキュメントを確認して、適切な手順を選んでください。
-
実行時の注意:管理画面・CLI・APIのいずれかで正しいオブジェクトを指定してパージします。大量のパージは一時的に負荷や誤動作を招くことがあるため、必要最小限に留めます。
-
周辺キャッシュの確認:ブラウザキャッシュやサーバー側(リバースプロキシ、アプリキャッシュ)も並行して確認すると反映漏れを防げます。具体的には、別回線からアクセスしたり、curlでヘッダーを確認してください。
-
トラブル対処:反映されない場合は多重キャッシュ、DNS TTL、設定漏れ、権限不足を順にチェックします。ログやステータスコードを確認し、必要ならCDNサポートへ問い合わせます。
実践チェックリスト:
1) CDNとパージ対象を確認
2) 影響範囲を通知(社内やユーザーへ)
3) パージ実行(管理画面/CLI/API)
4) ブラウザ/サーバーキャッシュを確認
5) 反映状況をログや別回線で検証
落ち着いて手順を踏めば、安全に更新を反映できます。何か不明点があれば、利用中のCDN名と状況を教えてください。












