STATUS IS UPウェブサイト最適化ウィキ
21堅牢化
パフォーマンスと配信 / 堅牢化

ウェブサイトオーナーのためのCDNガイド

キャッシュ、セキュリティ、リリースの誤りを修正しにくくしない、実践的でベンダーニュートラルなコンテンツ配信ネットワークの使い方。

ウェブサイトオーナーのためのCDNガイド — ビジュアルガイド
読む
8 分
出典
7
再検証
2027-03-27
レビュー済み
Webパフォーマンスおよびアプリケーションセキュリティレビュー担当者
短い答え

まず決断から始める。

コンテンツ配信ネットワーク(CDN)は来訪者とオリジンサーバーの間に分散レイヤーを置く仕組みです。再利用可能なファイルやレスポンスを近隣のキャッシュから配信できるため、オリジンへの往復を短縮し、オリジンの負荷を減らせます。効果は自動ではありません:共有可能な対象を定義し、オリジンを保護し、公開経路をテストしてください。

稼働率を積極的に最適化するには、まずオリジンで最も作業を生むページやアセットから始め、実際の訪問者経路を検証してからトラフィック範囲を広げます。キャッシュ設定、TLS、オリジンアクセスを配信の基本線として扱ってください。そうすることで誤ったルールや古いリリースの修復が容易になります。CDNはレイテンシとオリジン負荷を下げ得ますが、誤ったレスポンス、利用不能なオリジン、または安全でないキャッシュルールを自動的に修正するものではありません。

ビジュアルガイド

作業をシステムとして見る。

個別の戦術に取り掛かる前に、この記事の意思決定をこのマップで結び付けてください。

SIU堅牢化
01CDNが配信すべきものを決める
02コンテンツの挙動からキャッシュポリシーを決める
03無効化(パージ)は例外にし、リリース計画にしない
04オリジンを配信レイヤーの裏に置く
01

CDNが配信すべきものを決める

まずはインベントリを作成します。画像、スタイルシート、スクリプト、フォント、ダウンロードなどのバージョン管理されたアセットと、HTML、API、アカウントページ、チェックアウト、管理画面を分離してください。CDNはオンデマンドでキャッシュを埋めることが多く、最初のリクエストはオリジンに到達する一方、その後の一致するリクエストはエッジで配信される可能性があります。近隣のエッジとキャッシュヒットは別個の利点です。

オリジン

各パスにファイルを供給するホスト、アプリケーション、ストレージバケット、またはロードバランサーを書き留めてください。キャッシュミス時に応答できる必要があります。

キャッシュ可能な公開コンテンツ

すべての訪問者で同一のアセットから始め、宣言された寿命が切れるまで安全に利用可能であるものに長めの寿命を与えてください。

プライベートまたは機密コンテンツ

個人用ダッシュボード、セッションに紐づくページ、顧客データは、資格のあるエンジニアが分離を設計・テストしていない限り共有しないでください。

02

コンテンツの挙動からキャッシュポリシーを決める

HTTPレスポンスヘッダーはキャッシュ挙動を表現します。Cache-Controlはレスポンスが保存可能かどうかとどれだけ新鮮であるか(TTL:time to live)を示します。ブラウザはプライベートキャッシュであり、CDNは通常共有キャッシュです。明示的なヘッダーを使ってください。HTTP標準では s-maxage により共有キャッシュの寿命を max-age と別に設定できます。

バージョン管理されたアセット

内容が変わるときは新しい URL を公開してください(例:コンテンツハッシュを含むファイル名)。不変のバージョンには長めの寿命を与えます。

HTML と変化するデータ

古いコンテンツのコストに基づいて短い寿命か検証ベースの挙動を選んでください。価格、在庫、アカウント状態に対してアセットルールを使い回さないでください。

パーソナライゼーション

一人のユーザー向けレスポンスには private を使ってください。クッキーだけでは共有キャッシュで安全とはなりません。

03

無効化(パージ)は例外にし、リリース計画にしない

無効化(パージ)は管理されたCDNに保存された特定のオブジェクトを通常の有効期限前に破棄する指示です。修正時に使い、すべてのデプロイで使うべきではありません。パージする前にオリジンが既に置換物を返すことを確認してください。そうしないとリフィルで古い誤ったレスポンスが残る可能性があります。ブラウザキャッシュはCDNのパージ制御外なので、変更ファイルにはURLバージョン管理が確実です。

対象を狭くする

サイト全体のパージより、特定のパス、リリースグループ、プロバイダがサポートするキャッシュタグを優先してください。広範なミスは突然オリジンへ負荷をかけます。

伝搬の限界を知る

分散パージはすべてのエッジに一度に到達しないことがあります。プロバイダの完了意味論を確認し、代表的な URL をテストしてください。

リリース記録を残す

古いと新しい URL、キャッシュルール、パージ範囲、想定結果、逆戻し手順を記録してください。

04

オリジンを配信レイヤーの裏に置く

オリジンへ直接アクセスされるとCDNのキャッシュやエッジ制御をバイパスできます。CDNだけ、または意図した経路のみが到達できるように制限してください。使用するスタックによってはクラウドのオリジンアクセス制御、CDNのエグレス範囲を記載したファイアウォールルール、プライベートネットワーク、署名付きオリジンリクエスト、または相互TLS(mTLS)のように両側が証明書で認証する方法を使います。

直接アクセスを検証する

許可されたテストロケーションから、オリジンが公開リクエストを拒否し、CDNホスト名が機能することを確認してください。

例外経路を保護する

ヘルスチェック、デプロイツール、内部アクセスは広い公開ルールではなく、アイデンティティとネットワークでスコープしてください。

プロバイダ差を考慮する

オリジン認証はCDNとオリジンによって異なります。最新のプロバイダ設定ガイダンスとセキュリティレビューを使ってください。

05

TLSは二つの接続として扱う

エッジでのHTTPSは来訪者とCDN間を保護しますが、CDNとオリジン間の接続も保護する必要があります。両方の区間で暗号化を要求し、CDNモードに応じてオリジン証明書を検証し、ホスト名と更新の所有権を割り当ててください。OWASPはデフォルトで TLS 1.3 を推奨し、互換性のために TLS 1.2 を許容し、TLS 1.0 と 1.1 は無効にすべきだと述べています。規制データ、支払いフロー、または特殊なクライアント互換性がある場合は資格あるレビューを受けてください。

証明書の所有者

エッジとオリジンの証明書所有者、更新経路、失敗時の対応を列挙してください。

リダイレクト挙動

HTTP→HTTPS、正規ホスト、深いリンクのリダイレクトでループやパス喪失が起きないかテストしてください。

機密レスポンス

暗号化はレスポンスをキャッシュして安全にするものではありません。認証済み・個人化・支払いに関連するページには別個にキャッシュルールを設定してください。

06

トラフィックを切り替える前に実際の配信経路をテストする

ステージングホスト名や狭いプロダクション経路から始め、オリジンだけでなくCDNホスト名をテストしてください。Chrome DevTools の Network パネルはステータス、ドメイン、タイミング、サイズ、ヘッダーを表示します。初回訪問を近似するために空のキャッシュでハードリロードを実施し、その後の再訪問で再利用を確認してください。見た目が速いだけでなく期待するヘッダーとコンテンツを比較してください。受信者が広い地域に分散している場合は代表的な地域から繰り返しテストしてください。

ヘッダーチェック

Cache-Control とプロバイダの cache-status ヘッダーを検査してください。公開アセットが再利用され、機密ページが誤って共有されていないことを確認します。

障害時チェック

ミス、古いコンテンツの修正、オリジンエラー、単一アセットやルートのロールバックを広範な展開前に実行してください。

証拠の保全

テストしたURL、ヘッダーキャプチャ、ルートルールのバージョン、変更前後のタイミングを変更記録と一緒に保存してください。

07

運用ニーズでCDNを選び、証明する

PoP数(ポイント・オブ・プレゼンス)や一般的な速度主張だけでCDNを選ばないでください。パフォーマンスは地理、時間、トラフィック分布、ルーティング、キャッシュヒット率で変わります。候補は代表的な経路、アセット、地域で比較してください。各社が必要なキャッシュ制御、ターゲット無効化、オリジン制限、証明書ワークフロー、ログ、アクセス役割、価格、サポート、変更プロセスをサポートするか確認してください。

同等性テストを実施する

候補ごとに同一のキャッシュヘッダー、オリジン挙動、ページを使い、初回訪問と再訪問の結果を別々に記録してください。

障害パスのコストを見積もる

リクエスト、転送、無効化、ログ、サポート費用に加え、キャッシュミス急増時のコストを検討してください。価格と制御はプランによって異なります。

変更に備える設計

エクスポート可能な設定、最小権限、テスト済みロールバック、明確な所有権をクリティカルなルートに適用することを要求してください。

実行 / 検証

実践的なTo‑Doガイド。

  1. 01

    リクエスト経路をマップする

    公開アセット、HTML、API、認証ページ、オリジンホスト、所有者を一覧化してください。

    検証: レビュアーが共有すべきパスと共有すべきでないパスを識別できること。
  2. 02

    明示的なキャッシュルールを書く

    ルートグループごとに Cache-Control を設定し、個人化レスポンスには private 処理を含めてください。

    検証: 代表的なヘッダーが書かれたポリシーと一致すること。
  3. 03

    変更可能なアセットにバージョンを付ける

    コンテンツ変更ごとに新しいアセットURLを用意してください。

    検証: デプロイが通常の広範なパージなしに新しいファイル名をロードすること。
  4. 04

    パージ手順を定義する

    狭い無効化を認可し、オリジン確認と逆戻しアクションを記録してください。

    検証: 低リスクなテストで1つのオブジェクトを削除し、その置換を確認できること。
  5. 05

    オリジンアクセスを制限する

    CDNトラフィックと記載された内部例外のみを受け入れるようにしてください。

    検証: 直接の公開オリジンアクセスが失敗し、CDN配信が成功すること。
  6. 06

    両方のTLS区間を強化する

    エッジとオリジンの証明書、暗号化、ホスト名範囲、更新、プロトコルポリシーを確認してください。

    検証: 拡張前にTLSとCDN→オリジンのチェックが合格すること。
  7. 07

    初回訪問と再訪問をテストする

    コアページとアセットについてハードリロードと再リクエストを検査してください。

    検証: ヘッダー、コンテンツ、タイミングがキャッシュ計画に一致すること。
  8. 08

    ロールバックに備える

    以前のルート、オリジン、キャッシュ設定を所有者と復元手順付きで保管してください。

    検証: チームが以前の挙動を復元する正確な変更を述べられること。
議論のテーマ

トレードオフを比較し、非公開データは共有しないでください。

これらのプロンプトをチームやサイトオーナーコミュニティで使ってください。手法や学びは共有して構いませんが、認証情報や顧客データ、非公開インフラの詳細を貼り付けないでください。

  1. 01

    あなたのサイトで見た目は公開向けだが実際はユーザー、通貨、在庫ロケーション、または同意の選択によって変わるページはどれで、それらが安全でない共有レスポンスにならないようにどう防いでいますか?

  2. 02

    CDNルール変更後に、別のオーナーが遅いページがオリジン問題かキャッシュポリシーかアセットリリースの問題かを判別できるように、どんな証拠を保管していますか?

  3. 03

    今日パージを強いられるようなリリース変更はどれで、次回にそのパージを狭くできるようにするためのURLバージョニングやコンテンツモデルの変更は何ですか?

人気/信頼できる資料

出典資料を開く。

web.devContent delivery networks (CDNs) ↗

プラットフォームに依存しないCDN配信、キャッシュ、パージ、選定、性能トレードオフの解説。

レビュー日 2026-09-27
IETF / RFC EditorRFC 9111: HTTP Caching ↗

新鮮さ、検証、共有キャッシュ、private、s-maxage のための主要なHTTPキャッシュ規則。

レビュー日 2026-09-27
MDN Web DocsHTTP caching ↗

プライベートおよび管理されたキャッシュに関する実践的な Cache-Control ガイダンス。

レビュー日 2026-09-27
Google CloudCache invalidation overview ↗

ターゲットパージの公式ガイダンス(リフィル、ブラウザキャッシュの制限、ミス急増リスクを含む)。

レビュー日 2026-09-27
Cloudflare DevelopersAuthenticated Origin Pulls (mTLS) ↗

オリジンがCDNトラフィックと直接リクエストを区別できるようにする mTLS の例。

レビュー日 2026-09-27
OWASPTransport Layer Security Cheat Sheet ↗

TLSプロトコル、証明書、構成テスト、セキュリティレビューに関するガイダンス。

レビュー日 2026-09-27
Chrome for DevelopersInspect network activity ↗

ヘッダー、ハードリロード、タイミング、キャッシュ挙動の検査に使うブラウザワークフロー。

レビュー日 2026-09-27

出典ポリシー このガイドは可能な場合に一次標準と公式ドキュメントを使用しています。プロバイダ固有の資料は実装パターンを示すものであり、普遍的な機能や推奨を意味するものではありません。実運用で変更を行う前に、ベンダーの設定、価格、サポート条件、セキュリティ要件を最新のドキュメントで再確認してください。

簡単な補足

よくある質問

CDNは私のサイト全体を自動的にキャッシュしますか?

いいえ。CDNはキャッシュされていないトラフィックを転送する場合があり、キャッシュ挙動はオリジンヘッダーとCDNルールに依存します。公開で再利用可能なアセットから始め、HTMLやAPIは慎重に分類してください。ログイン不要で到達できるからといって共有して安全だと仮定しないでください。

デプロイするたびにCDNをパージすべきですか?

通常、バージョン管理されたアセットには不要です。新しいURLにより新しいページが新しいファイルを要求でき、古いキャッシュは自然に期限切れになります。例外的な修正時にはオリジンに正しい置換があることを確認してから狭いパージを使ってください。パージは既に訪問者のブラウザに保存されたファイルを削除できません。

CDNでHTTPSを有効にすればオリジンも安全になりますか?

それだけでは不十分です。CDN→オリジン接続も暗号化して検証し、直接オリジンアクセスを制限する必要があります。具体的な制御はCDNとホスティングプラットフォームで異なるため、経路全体をテストし、機密データや規制対象のワークロードには資格あるセキュリティレビューを受けてください。

Status Is UP Editorial Team · Uptime Enablement 編集者

レビュー: Webパフォーマンスおよびアプリケーションセキュリティレビュー担当者。公開 2026-09-27、更新 2026-09-30。