文書基準: 2026年8月
Webサービスのユーザーは世界中に分散していますが、オリジンサーバーは特定のリージョンにあります。離れたリージョンのユーザーには、物理的な距離の分だけ遅延が発生します。
CDN(Content Delivery Network)は、世界中のエッジロケーションにコンテンツをキャッシュし、ユーザーに最も近い場所から高速に配信するサービスです。オリジンサーバーまで到達せずエッジで応答するため、レイテンシが大幅に短縮され、オリジンの負荷も軽減されます。
sequenceDiagram
participant User as ユーザー
participant Edge as CDNエッジ
participant Origin as オリジンサーバー
User->>Edge: リクエスト
alt キャッシュヒット
Edge-->>User: 即時応答(高速)
else キャッシュミス
Edge->>Origin: オリジンへリクエスト
Origin-->>Edge: 応答 + キャッシュ
Edge-->>User: 応答
end
| 概念 |
説明 |
| オリジン(Origin) |
元のコンテンツがあるサーバー。オブジェクトストレージ、VM、ロードバランサーなど |
| エッジ(Edge/PoP) |
ユーザーに近いキャッシュサーバー。世界中に数百拠点 |
| キャッシュヒット/ミス |
エッジにコンテンツがあればヒット(高速)、なければミス(オリジンから取得) |
| TTL(Time To Live) |
キャッシュの有効期間。期限切れになるとオリジンから再取得 |
| キャッシュ無効化(Invalidation) |
TTL満了前に強制的にキャッシュを削除。世界的な伝播に時間がかかる |
クラウドCDNはHTTPSを標準推奨しており、無料のTLS証明書が統合提供されるため、別途証明書を購入せずにSSL/TLSを適用できます。HTTPにも対応していますが、セキュリティ上HTTPS専用構成を推奨します。
CDNは静的ファイルだけでなく、さまざまなワークロードに適用できます。
| 対象 |
説明 |
| 静的ファイル |
画像、CSS、JS。最も基本的なCDN活用 |
| API応答 |
変更頻度の低いAPI応答をエッジでキャッシュ。オリジンの負荷軽減 |
| 動画ストリーミング |
MP4ダウンロード、HLS/DASHアダプティブストリーミング。大容量転送に必須 |
| 動的コンテンツ / API |
キャッシュはできないが、エッジでのTCP/TLS終端 + ベンダーバックボーン経由でレイテンシを削減。オリジンコネクションの再利用によりハンドシェイクコストを削減 |
| 階層 |
位置 |
制御方法 |
| ブラウザキャッシュ |
ユーザーデバイス |
Cache-Control、ETagヘッダー |
| CDNエッジキャッシュ |
ベンダーのエッジロケーション |
TTLポリシー、キャッシュキー設定 |
| オリジンキャッシュ |
オリジンサーバーの前段(任意) |
リバースプロキシ、オリジンシールド |
| 戦略 |
方法 |
TTL設定 |
| ハッシュファイル名 |
app.a3f2c1.js(ビルド時にハッシュを挿入) |
非常に長く(1年)。無効化不要 |
| バージョンクエリ |
app.js?v=2 |
中程度。一部のCDNではキャッシュキーとして認識されない場合あり |
| 短いTTL |
同一URL、TTL 5分 |
API応答など頻繁に変わるコンテンツに適合 |
| 無効化 |
手動Invalidationリクエスト |
緊急修正時のみ。コストが発生する場合あり |
| パターン |
説明 |
CDNの効果 |
| 単一リージョンオリジン + グローバルユーザー |
DB/アプリが1つのリージョンにのみあり、ユーザーは世界中 |
エッジキャッシングによりオリジンリージョンまでの遅延を排除 |
| 1対多配信 |
同一コンテンツを数万~数百万のユーザーに配信 |
オリジンの負荷をエッジに分散。オリジン1台でも大規模サービングが可能 |
| トラフィックスパイクの吸収 |
イベント/ニュースなど急激なトラフィック急増 |
エッジがほとんどを吸収し、オリジンは通常の負荷を維持 |
| 静的サイトホスティング |
SPA/静的サイトをオブジェクトストレージから配信 |
CDN + オブジェクトストレージのみでサーバーレス運用 |
CDNを通じて配信しながらもアクセスを制限する必要がある場合(有料コンテンツ、認証済みユーザーのみアクセス可):
| 方法 |
説明 |
AWS |
Azure |
Google Cloud |
| Signed URL |
時間制限付きの署名済みURL |
CloudFront Signed URL |
Front Door Private Link |
Cloud CDN Signed URL |
| Signed Cookie |
Cookieベースの認証。複数ファイルへの同時適用 |
CloudFront Signed Cookie |
— |
— |
| Token認証 |
エッジでのトークン検証 |
CloudFront Functions |
Front Door Rules Engine |
— |
| 地域制限 |
特定の国/地域の許可またはブロック |
対応 |
対応 |
対応 |
| WAF連携 |
IP制限、レートリミット、ボットブロック |
CloudFront + WAF |
Front Door + WAF |
Cloud Armor |
| ベンダー |
製品 |
備考 |
| AWS |
CloudFront |
400以上のエッジロケーション。Origin Shield(オリジン保護キャッシュ層) |
| Azure |
Azure CDN / Front Door |
Front DoorにCDN + WAF + グローバルLBを統合 |
| Google Cloud |
Cloud CDN |
Cloud Load Balancingと統合。キャッシュ無効化が高速 |
| OCI |
OCI CDN(Akamai/Fastlyパートナーシップ) |
グローバルCDNはパートナー連携。Edge ServicesでWAF/DDoSを統合 |
- AWS CloudFront — エッジロケーション数が多く、Lambda@Edge/CloudFront Functionsでエッジ上でコードを実行できます。Origin Shieldでオリジンの負荷をさらに軽減できます。
- Azure Front Door — CDN、グローバルロードバランサー、WAFを1つのサービスに統合します。別途CDN設定なしでFront Door単体で全トラフィックを管理できます。
- Google Cloud Cloud CDN — Cloud Load Balancingでチェックボックス1つで有効化でき、設定が簡単です。キャッシュ無効化が数秒以内に伝播します。
- OCI — 自社CDNサービスの代わりに、Akamai、Fastlyなど専門CDNとのパートナーシップを通じてグローバル配信をサポートします。Edge ServicesでWAFとDDoS保護を提供します。
CDNはコンテンツをキャッシュして高速に配信しますが、キャッシュが不可能なワークロード(ゲームサーバー、IoT、リアルタイムAPI)にはネットワークアクセラレーターが必要です。アクセラレーターはキャッシュなしでTCP/TLS接続をエッジで終端し、ベンダーバックボーンネットワークを通じてオリジンまで転送することで遅延を削減します。
| 区分 |
CDN |
ネットワークアクセラレーター |
| 目的 |
コンテンツキャッシング + エッジサービング |
TCP/TLS接続経路の最適化 |
| キャッシング |
対応 |
— |
| 対象プロトコル |
HTTP/HTTPS |
TCP/UDP全プロトコル |
| 動作 |
キャッシュヒット時はオリジン不要 |
常にオリジンへ転送、経路のみ最適化 |
| 使用例 |
静的ファイル、ストリーミング、APIキャッシング |
ゲームサーバー、IoT、グローバルAPI(キャッシュ不可) |
| ベンダー |
サービス |
アクセラレーション対象 |
制約 |
| AWS |
Global Accelerator |
TCP/UDP |
L4のみ。HTTPルーティングが必要な場合はALBと組み合わせ |
| Azure |
Front Door |
HTTP + TCP |
L7統合。TCPプロキシはPremium層 |
| Google Cloud |
Cloud LB(Premium Tier) |
HTTP/TCP/UDP |
デフォルトでグローバル。Standard Tierはリージョン限定 |
| 要件 |
選択 |
| HTTPコンテンツキャッシングが主目的 |
CDN |
| TCP/UDPアプリのグローバル遅延削減(ゲーム、IoT) |
グローバルアクセラレーター |
| HTTP + グローバル分散 + WAF統合 |
Azure Front Door / CloudFront + GAの組み合わせ |
| 固定Anycast IPが必要(IPホワイトリスト) |
Global Accelerator |
CDNエッジでコードを実行してリクエスト/レスポンスを変換したり、シンプルなロジックをオリジンなしで処理したりできます。
| ベンダー |
製品 |
備考 |
| AWS |
CloudFront Functions |
軽量(リクエスト/レスポンスヘッダー変換、リダイレクト)。ミリ秒以内 |
| AWS |
Lambda@Edge |
フル機能(オリジンリクエスト/レスポンス変換、認証)。数ミリ秒 |
| Azure |
Front Door Rules Engine |
ルールベースのルーティング/変換 |
| Google Cloud |
Cloud CDN + Cloud Functions |
別途組み合わせ |
index.htmlに長いTTLを設定 — 静的ファイルのハッシュが変わってもユーザーが旧バージョンのHTMLを受け取り続けます。index.htmlは短いTTL(数分)、残りの静的ファイルはハッシュファイル名 + 長いTTLで運用してください。
- キャッシュ無効化(Invalidation)をデプロイのルーティンとして使用 — 世界的な伝播に時間がかかり、コストも発生します。ハッシュファイル名戦略が正解です。
- 認証が必要なAPIにCDNキャッシングを適用 — 他のユーザーの個人データがキャッシュから返される可能性があります。
Cache-Control: no-storeを明示するか、キャッシュキーに認証トークンを含めてください。