CDNキャッシュ: CloudFrontディストリビューション戦略
この記事では、CloudFront CDNを使用してコンテンツをキャッシュし、グローバルなパフォーマンスを向上させる方法について説明します。
問題: グローバルな遅延
ユーザーは世界中から当社のウェブサイトにアクセスします:
-
インド: 50ms 遅延
-
アメリカ: 200ms 遅延
-
ヨーロッパ: 250ms 遅延
-
アジア: 150ms 遅延
すべてのトラフィックをインドから配信すると、国際的なユーザーにとってページの読み込みが遅くなります。
解決策: CloudFront CDN
CloudFront: AWSコンテンツデリバリーネットワーク
エッジロケーション: 世界中に400以上のロケーション
メリット: 最寄りのロケーションからコンテンツを配信
キャッシュされるもの
静的アセット (長いTTL)
コンテンツ: 画像、CSS、JavaScript、フォント
TTL: 1年
パス: /s/*
メリット: 変更が稀なため、積極的にキャッシュ
商品ページ (中程度のTTL)
コンテンツ: 商品仕様、画像
TTL: 1時間
パス: /p/*
メリット: 鮮度とパフォーマンスのバランス
クエリページ (短いTTL)
コンテンツ: 検索結果、フィルター適用ビュー
TTL: 5分
パス: /q/*
メリット: 頻繁に更新されるため、短いキャッシュ
記事 (長いTTL)
コンテンツ: 技術文書
TTL: 24時間
パス: /a/*
メリット: 変更が稀
キャッシュされないもの
動的コンテンツ:
-
検索結果 (
/q/?q=<query>) -
ユーザー固有のコンテンツ (カート、アカウント)
-
APIエンドポイント (
/api/*)
理由: 新鮮でなければならず、ユーザー固有であるため
キャッシュの動作
キャッシュキー
CloudFrontはURLをキャッシュキーとして使用します:
同じURL: キャッシュから配信
異なるURL: 新しいキャッシュエントリ
クエリパラメータ: キーに含まれる (トラッキングパラメータを除く)
キャッシュヘッダー
オリジンサーバーがキャッシュヘッダーを設定します:
Cache-Control: public, max-age=3600
public: CDNによるキャッシュが可能
max-age: キャッシュ期間 (秒単位)
キャッシュ無効化
手動: 無効化リクエストを作成
自動: TTLの期限切れを待つ
コスト: 月間最初の1,000パスは無料
参照: ポリシーについては CACHE_INVALIDATION_RULE.md を参照
オリジン保護
CDNはオリジンサーバーを保護します:
トラフィック吸収: CDNがトラフィックスパイクを処理
DDoS緩和: 悪意のあるトラフィックをフィルタリング
レート制限: オリジンの過負荷を防止
メリット: オリジンの応答性を維持
SSL/TLS
証明書: AWS Certificate Manager
プロトコル: TLS 1.2+
メリット: 暗号化されたトラフィック、無料証明書
圧縮
Gzip: テキストコンテンツに対して有効
Brotli: モダンブラウザに対して有効
メリット: ダウンロードの高速化、帯域幅の削減
地理的制限
なし: 世界中で利用可能
メリット: グローバルなリーチ
モニタリング
メトリクス:
-
キャッシュヒット率
-
オリジンへのリクエスト数
-
エラー率
-
地域ごとの遅延
CloudWatch: AWSのモニタリングサービス
コスト最適化
キャッシュヒット率: 高い = コスト低減
オリジンへのリクエスト数: 少ない = コスト低減
データ転送: キャッシュ済み = より安価
メリット: CDNはインフラストラクチャコストを削減
参考文献
AWSサービス
-
CloudFront - AWS CDNドキュメント
-
Certificate Manager - SSL証明書
関連記事
- マルチサーバーアーキテクチャ - アーキテクチャにおけるCDN
まとめ
CloudFront CDNはグローバルなパフォーマンスを向上させます:
キャッシュされるコンテンツ:
-
✅ 静的アセット (1年 TTL)
-
✅ 商品ページ (1時間 TTL)
-
✅ クエリページ (5分 TTL)
-
✅ 記事 (24時間 TTL)
キャッシュされないコンテンツ:
-
✅ 動的検索
-
✅ ユーザー固有のコンテンツ
-
✅ APIエンドポイント
メリット:
-
✅ 低遅延 (エッジロケーション)
-
✅ オリジン保護 (トラフィック吸収)
-
✅ DDoS緩和
-
✅ コスト削減 (オリジンへのリクエスト数減少)
機能:
-
✅ SSL/TLS暗号化
-
✅ Gzip/Brotli圧縮
-
✅ グローバルな可用性
このCDN戦略は、パフォーマンス、鮮度、コストのバランスを取ります。