クラウド・インフラセキュリティ

CDN (コンテンツデリバリーネットワーク)

約 3 分で読めます

CDN とは

CDN (Content Delivery Network) とは、世界各地に分散配置されたエッジサーバーにコンテンツをキャッシュし、ユーザーに最も近いサーバーから配信する仕組みです。物理的な距離によるネットワーク遅延 (レイテンシ) を削減し、Web サイトの表示速度を向上させます。

CDN の基本的な動作は、ユーザーのリクエストを DNS で最寄りのエッジサーバーに誘導し、キャッシュがあればエッジから直接応答、なければオリジンサーバーから取得してキャッシュした上で応答するというものです。静的ファイル (画像、CSS、JavaScript) だけでなく、API レスポンスや動的コンテンツのキャッシュにも対応する CDN が増えています。

CDN のセキュリティ効果

CDN は高速化だけでなく、セキュリティの観点でも重要な役割を果たします。

  • DDoS 攻撃の緩和: CDN のエッジネットワークは大規模なトラフィックを吸収する能力を持つ。攻撃トラフィックがオリジンサーバーに到達する前にエッジで分散・遮断されるため、オリジンの可用性を保護できる
  • オリジンの隠蔽: CDN を経由させることで、オリジンサーバーの IP アドレスを外部から隠蔽できる。攻撃者がオリジンを直接攻撃することを困難にする
  • TLS/SSL の終端: CDN のエッジで TLS を終端し、証明書の管理を一元化できる。HSTS ヘッダーの付与もエッジで行える
  • WAF との統合: 多くの CDN プロバイダーは WAF 機能を統合しており、SQL インジェクションや XSS などの攻撃をエッジで遮断できる。CloudFront + AWS WAF、Cloudflare WAF が代表例

CDN 導入時の注意点

CDN は万能ではなく、導入時に考慮すべき点があります。

  • キャッシュの一貫性: コンテンツを更新してもキャッシュの TTL (Time to Live) が切れるまで古いコンテンツが配信される。キャッシュパージ (無効化) の仕組みを運用に組み込む必要がある
  • 機密情報のキャッシュ防止: 個人情報や認証トークンを含むレスポンスがエッジにキャッシュされないよう、Cache-Control ヘッダーを適切に設定する。Cache-Control: no-store で機密レスポンスのキャッシュを確実に防止する
  • オリジンへの直接アクセス制限: CDN を導入しても、オリジンサーバーへの直接アクセスが可能な状態では DDoS 緩和の効果が半減する。オリジンのセキュリティグループで CDN の IP レンジからのアクセスのみを許可する
  • DNS の設定: CDN を利用するにはドメインの DNS レコードを CDN のエンドポイントに向ける必要がある。CNAME または ALIAS レコードの設定と、DNS 伝播時間を考慮した切り替え計画が必要

CDN の仕組みとキャッシュ戦略

CDN のキャッシュ動作を正しく理解し、適切な戦略を設計することがパフォーマンス最適化の鍵です。

エッジロケーションの階層構造: 大規模な CDN は、ユーザーに最も近い「エッジ PoP (Point of Presence)」と、エッジとオリジンの間に位置する「オリジンシールド (中間キャッシュ層)」の 2 層構造を持ちます。オリジンシールドを有効にすると、複数のエッジ PoP からのキャッシュミスがオリジンシールドに集約され、オリジンサーバーへのリクエスト数を大幅に削減できます。

Cache-Control ヘッダーの設計: キャッシュ戦略はコンテンツの種類ごとに使い分けます。

  • Cache-Control: public, max-age=31536000, immutable - ハッシュ付きファイル名の静的アセット (CSS、JS、画像)。1 年間キャッシュし、ファイル名が変わるまで再検証しない
  • Cache-Control: public, max-age=3600, s-maxage=86400 - HTML ページ。ブラウザキャッシュは 1 時間、CDN キャッシュは 24 時間に設定し、CDN 側でより長くキャッシュする
  • Cache-Control: no-store - 認証済みレスポンスや個人情報を含むページ。一切キャッシュしない

キャッシュ無効化 (パージ): コンテンツ更新時にキャッシュを即座に反映させる方法は 2 つあります。パス指定のパージ (特定 URL のキャッシュを削除) と、全体パージ (全キャッシュを削除) です。デプロイパイプラインにパージを組み込み、コンテンツ更新とキャッシュ更新を連動させるのが運用のベストプラクティスです。

CDN のセキュリティ機能の詳細

現代の CDN は単なるキャッシュ層を超え、包括的なセキュリティプラットフォームとして機能します。

DDoS 緩和の仕組み: CDN のエッジネットワークは数十 Tbps 規模の帯域を持ち、ボリューム型 DDoS 攻撃を吸収します。レイヤー 3/4 の攻撃 (SYN フラッド、UDP フラッド) はエッジで自動的にドロップされ、レイヤー 7 の攻撃 (HTTP フラッド) はレートリミットと異常検知で対処します。オリジンサーバーが直接攻撃を受けることがないため、小規模なインフラでも大規模攻撃に耐えられます。

ボット管理: 正規のクローラー (Googlebot 等) と悪意のあるボット (スクレイパー、クレデンシャルスタッフィングボット) を識別し、悪意のあるボットのみをブロックします。JavaScript チャレンジ、CAPTCHA、行動分析などの手法を組み合わせて判定します。

エッジでの TLS 終端: CDN のエッジで TLS を終端することで、ユーザーとエッジ間の通信を暗号化しつつ、エッジとオリジン間は内部ネットワークとして効率的に通信できます。最新の TLS 1.3 や HTTP/2、HTTP/3 (QUIC) への対応もエッジ側で一括管理でき、オリジンサーバーの設定を変更せずにプロトコルのアップグレードが可能です。

地理的アクセス制御: CDN のエッジでユーザーの地理情報 (国、地域) を判定し、特定の国からのアクセスをブロックまたはリダイレクトできます。制裁対象国からのアクセス遮断や、ライセンス地域の制限に活用されます。

よくある誤解

CDN を導入すればオリジンサーバーのセキュリティ対策は不要になる
CDN はオリジンの前段に位置する防御層ですが、CDN を迂回してオリジンに直接アクセスされる可能性があります。オリジンサーバー自体のセキュリティ (パッチ適用、アクセス制御、暗号化) は引き続き必要です。
CDN は大規模サイトだけが必要なもの
小規模サイトでも CDN の恩恵は大きいです。DDoS 緩和、TLS 証明書の自動管理、グローバルな配信速度の向上は、サイト規模に関わらず有効です。Cloudflare の無料プランのように、コストゼロで導入できる CDN もあります。

関連用語

関連記事