CDNとは
CDN(Content Delivery Network)完全ガイド
Section titled “CDN(Content Delivery Network)完全ガイド”CDNは、Webアプリケーションのパフォーマンスと可用性を向上させる重要な仕組みです。実務での使い方を詳しく解説します。
1. CDNとは
Section titled “1. CDNとは”CDNの役割
Section titled “CDNの役割”CDN(Content Delivery Network)は、地理的に分散したサーバー(エッジサーバー)でコンテンツをキャッシュし、ユーザーに近いサーバーから配信するネットワークです。
ユーザー(東京) ↓CDNエッジサーバー(東京)← キャッシュから配信(高速) ↓(キャッシュなしの場合)オリジンサーバー(米国)← 元のサーバーから取得なぜCDNが必要か
Section titled “なぜCDNが必要か”問題:
- サーバーが遠いと、レイテンシが大きい
- サーバーの負荷が集中する
- 単一障害点になる
CDNの解決:
- ユーザーに近いサーバーから配信(レイテンシの削減)
- 負荷の分散
- 冗長化による可用性の向上
2. CDNの仕組み
Section titled “2. CDNの仕組み”エッジサーバー
Section titled “エッジサーバー”オリジンサーバー(米国) ↓エッジサーバー(東京)← キャッシュエッジサーバー(ロンドン)← キャッシュエッジサーバー(ニューヨーク)← キャッシュキャッシュの動作
Section titled “キャッシュの動作”1. ユーザーがリクエスト ↓2. エッジサーバーがキャッシュを確認 ↓3. キャッシュがある場合: エッジサーバーから配信(高速) キャッシュがない場合: オリジンサーバーから取得してキャッシュ3. 主要なCDNプロバイダー
Section titled “3. 主要なCDNプロバイダー”Cloudflare
Section titled “Cloudflare”- 無料プランあり
- DDoS保護
- SSL/TLS証明書の提供
AWS CloudFront
Section titled “AWS CloudFront”- AWSサービスとの統合
- グローバルなエッジロケーション
- 詳細な分析機能
Fastly
Section titled “Fastly”- リアルタイムのキャッシュ無効化
- 高いパフォーマンス
- エンタープライズ向け
4. 実務でのCDN設定
Section titled “4. 実務でのCDN設定”静的コンテンツの配信
Section titled “静的コンテンツの配信”オリジンサーバー: example.comCDN: cdn.example.com
HTML: example.com(動的)CSS/JS/画像: cdn.example.com(静的、CDN経由)キャッシュの設定
Section titled “キャッシュの設定”# 長期間キャッシュ(ファイル名にハッシュを含める)Cache-Control: max-age=31536000, immutable
# 短いキャッシュ(頻繁に更新される)Cache-Control: max-age=36005. CDNの最適化
Section titled “5. CDNの最適化”キャッシュキーの設定
Section titled “キャッシュキーの設定”URL: https://cdn.example.com/image.jpg?v=123 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ キャッシュキー(クエリパラメータを含む)キャッシュの無効化
Section titled “キャッシュの無効化”# CloudFrontでのキャッシュ無効化aws cloudfront create-invalidation \ --distribution-id E1234567890 \ --paths "/*"これで、CDNの仕組みと実務での使い方を理解できるようになりました。