Amazon CloudFront

世界 450 以上のエッジロケーションからコンテンツを低レイテンシで配信するグローバル CDN サービス

概要

Amazon CloudFront は、世界中に分散した 450 以上のエッジロケーション (PoP) を通じて、Web サイト、API、動画、静的ファイルなどのコンテンツをエンドユーザーに低レイテンシで配信するコンテンツデリバリネットワーク (CDN) サービスです。オリジンサーバー (S3、EC2、ALB、カスタムオリジンなど) のコンテンツをエッジロケーションにキャッシュし、ユーザーに最も近いエッジから配信することで、レスポンスタイムを大幅に短縮します。Lambda@Edge や CloudFront Functions を使えば、エッジロケーションでリクエスト/レスポンスの加工処理を実行でき、A/B テスト、URL リライト、ヘッダー操作などをオリジンに負荷をかけずに実現できます。AWS Shield Standard による DDoS 防御が無料で統合されており、AWS WAF と組み合わせることで Web アプリケーションのセキュリティも強化できます。

CloudFront のキャッシュ戦略

CloudFront のパフォーマンスを最大化するには、適切なキャッシュ戦略の設計が重要です。キャッシュポリシーでは、TTL (Time to Live) の設定、キャッシュキーに含めるヘッダー・クエリ文字列・Cookie の選択、圧縮 (Gzip、Brotli) の有効化を行います。静的コンテンツ (画像、CSS、JS) には長い TTL (例: 1 年) を設定し、ファイル名にハッシュを含めるバージョニング方式でキャッシュ無効化を管理するのがベストプラクティスです。動的コンテンツ (API レスポンス) にはキャッシュを無効化するか、短い TTL を設定します。オリジンリクエストポリシーを使えば、キャッシュキーとは独立してオリジンに転送するヘッダーやクエリ文字列を制御でき、キャッシュヒット率を向上させながら必要な情報をオリジンに渡すことが可能です。

Azure CDN / Azure Front Door との比較

Azure で CloudFront に対応するサービスは Azure CDN および Azure Front Door です。Azure CDN は Akamai、Verizon、Microsoft の 3 つのプロバイダーから選択でき、CloudFront は AWS 独自のネットワークのみを使用します。エッジコンピューティング機能では、CloudFront の Lambda@Edge は Node.js と Python をサポートし、最大 30 秒の実行時間で複雑な処理が可能です。Azure Front Door の Rules Engine はルールベースの処理に限定されますが、Azure Functions との統合で同等の柔軟性を実現できます。料金面では、CloudFront は最初の 1 TB のデータ転送が月額無料枠に含まれ (12 か月間)、それ以降は 1 GB あたり約 0.114 ドル (日本向け配信) です。Azure CDN Standard の日本向け配信は 1 GB あたり約 0.108 ドルで、わずかに安価ですが、CloudFront は S3 オリジンからのデータ転送が無料である点を考慮するとトータルコストで有利になるケースが多いです。