Skip to content

CDNとは

CDN(Content Delivery Network)完全ガイド

Section titled “CDN(Content Delivery Network)完全ガイド”

CDNは、Webアプリケーションのパフォーマンスと可用性を向上させる重要な仕組みです。実務での使い方を詳しく解説します。

CDN(Content Delivery Network)は、地理的に分散したサーバー(エッジサーバー)でコンテンツをキャッシュし、ユーザーに近いサーバーから配信するネットワークです。

ユーザー(東京)
CDNエッジサーバー(東京)← キャッシュから配信(高速)
↓(キャッシュなしの場合)
オリジンサーバー(米国)← 元のサーバーから取得

問題:

  • サーバーが遠いと、レイテンシが大きい
  • サーバーの負荷が集中する
  • 単一障害点になる

CDNの解決:

  • ユーザーに近いサーバーから配信(レイテンシの削減)
  • 負荷の分散
  • 冗長化による可用性の向上
オリジンサーバー(米国)
エッジサーバー(東京)← キャッシュ
エッジサーバー(ロンドン)← キャッシュ
エッジサーバー(ニューヨーク)← キャッシュ
1. ユーザーがリクエスト
2. エッジサーバーがキャッシュを確認
3. キャッシュがある場合: エッジサーバーから配信(高速)
キャッシュがない場合: オリジンサーバーから取得してキャッシュ
  • 無料プランあり
  • DDoS保護
  • SSL/TLS証明書の提供
  • AWSサービスとの統合
  • グローバルなエッジロケーション
  • 詳細な分析機能
  • リアルタイムのキャッシュ無効化
  • 高いパフォーマンス
  • エンタープライズ向け
オリジンサーバー: example.com
CDN: cdn.example.com
HTML: example.com(動的)
CSS/JS/画像: cdn.example.com(静的、CDN経由)
# 長期間キャッシュ(ファイル名にハッシュを含める)
Cache-Control: max-age=31536000, immutable
# 短いキャッシュ(頻繁に更新される)
Cache-Control: max-age=3600
URL: https://cdn.example.com/image.jpg?v=123
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
キャッシュキー(クエリパラメータを含む)
Terminal window
# CloudFrontでのキャッシュ無効化
aws cloudfront create-invalidation \
--distribution-id E1234567890 \
--paths "/*"

これで、CDNの仕組みと実務での使い方を理解できるようになりました。