Amazon CloudFront
世界中のエッジロケーションからコンテンツを高速配信する CDN サービス
何ができるか
Amazon CloudFront は、Web サイトのページ、画像、動画、API レスポンスなどのコンテンツを、世界中に分散配置されたエッジロケーション (配信拠点) からユーザーに最も近い場所で配信する CDN (Content Delivery Network) サービスです。オリジンサーバー (S3 や EC2) からのコンテンツをエッジにキャッシュすることで、表示速度の向上とオリジンサーバーの負荷軽減を同時に実現します。
どのような場面で使うか
静的 Web サイトの高速配信、動画ストリーミング、API のレスポンス高速化、ソフトウェアのダウンロード配信、ライブイベントの配信、グローバル展開するアプリケーションのレイテンシ削減など、コンテンツを高速に届けたいあらゆる場面で利用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
コンビニの配送網に例えるとわかりやすいでしょう。工場 (オリジンサーバー) から直接商品を届けると時間がかかりますが、全国のコンビニ (エッジロケーション) に商品を配置しておけば、お客さんは最寄りの店舗ですぐに商品を手に入れられます。人気商品は各店舗に在庫 (キャッシュ) を持ち、売れたら工場から補充します。
CloudFront とは
Amazon CloudFront は、AWS が提供するグローバルな CDN サービスです。世界中に 400 以上のエッジロケーションを持ち、ユーザーからのリクエストを地理的に最も近いエッジロケーションにルーティングします。これにより、東京のユーザーは東京のエッジから、ニューヨークのユーザーはニューヨークのエッジからコンテンツを受け取るため、物理的な距離による遅延を最小限に抑えられます。
主な特徴
CloudFront はキャッシュ機能に加え、HTTPS の自動対応、DDoS 攻撃からの保護 (AWS Shield Standard が無料で統合)、アクセス制御、リアルタイムログなど、多彩な機能を備えています。Lambda@Edge や CloudFront Functions を使えば、エッジロケーションでカスタムロジックを実行することも可能です。たとえば、URL のリライト、ヘッダーの追加、A/B テストの振り分けなどをエッジで処理できます。
オリジンの種類
CloudFront のオリジン (コンテンツの取得元) には、S3 バケット、EC2 インスタンス、Elastic Load Balancing、API Gateway、さらには AWS 外の任意の HTTP サーバーを指定できます。S3 をオリジンにする場合、OAC (Origin Access Control) を設定することで、CloudFront 経由でのみ S3 にアクセスできるよう制限し、S3 バケットを非公開に保つことができます。
はじめかた
CloudFront を使い始めるには、CloudFront コンソールで「ディストリビューションを作成」をクリックします。オリジン (S3 バケットや EC2 など) を指定し、キャッシュポリシーを選択すれば、数分でディストリビューションが作成されます。発行される CloudFront ドメイン名 (xxx.cloudfront.net) でコンテンツにアクセスできます。独自ドメインを使う場合は、Route 53 で DNS を設定します。
Azure・オンプレミスとの比較
AWS の優位点
- 世界 400 以上のエッジロケーションを持ち、AWS Shield Standard による DDoS 防御が無料で統合されている
- Lambda@Edge や CloudFront Functions によりエッジでカスタムロジックを実行でき、オリジンサーバーの負荷を軽減しつつ柔軟な処理が可能
- S3、ALB、API Gateway などの AWS オリジンとの統合がシームレスで、OAC によるセキュアなオリジンアクセス制御を標準で提供する
注意点
- キャッシュの TTL 設定を誤ると、コンテンツ更新後も古い内容が配信され続けるため、適切なキャッシュ戦略を設計すること
- データ転送量に応じた従量課金のため、大量のトラフィックがある場合はコストを事前に見積もること
- 開発環境ではキャッシュを無効化し、変更が即座に反映されるよう設定すると便利
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。