Amazon CloudFront
Amazon CloudFront は AWS が提供するコンテンツデリバリーネットワーク(CDN)サービスです。世界中のエッジロケーションからコンテンツをキャッシュ配信することで、ユーザーへの低遅延な配信を実現します。
概要
CDN(Content Delivery Network)とは、世界各地に分散したサーバーにコンテンツのコピー(キャッシュ)を置き、ユーザーから最も近いサーバーからコンテンツを配信する仕組みです。東京のユーザーが米国のサーバーに直接アクセスするよりも、東京のエッジロケーションからキャッシュを受け取る方がはるかに高速です。
CloudFront は AWS の グローバルインフラストラクチャ として提供される 400 以上のエッジロケーションを活用して動作します。コンテンツの種類を問わず、HTML・CSS・画像・動画・API レスポンスなどを高速に配信できます。
CP試験で押さえるポイント
- CloudFront は CDN サービスで、エッジロケーションからキャッシュを配信して低レイテンシーを実現する
- オリジン(コンテンツの元となるサーバー)には S3・ELB・EC2・カスタムオリジンを指定できる
- AWS Shield との組み合わせで DDoS 攻撃への耐性が高まる
- キャッシュにより、オリジンサーバーへのリクエスト数を減らしてコストと負荷を下げられる
- HTTPS(SSL/TLS)による暗号化通信をデフォルトでサポートする
キャッシュの仕組み
ユーザーがコンテンツをリクエストすると、CloudFront はまず最寄りのエッジロケーションにキャッシュがあるかを確認します。キャッシュが存在する場合(キャッシュヒット)はエッジロケーションから即座に返します。キャッシュがない場合(キャッシュミス)はオリジン(元サーバー)からコンテンツを取得してエッジにキャッシュしたうえでユーザーに返します。
キャッシュには有効期限(TTL: Time To Live)を設定でき、コンテンツを更新した場合はキャッシュを無効化(インバリデーション)することもできます。
定番のアーキテクチャ構成
CP 試験でよく問われる CloudFront の定番構成を確認しましょう。
| オリジン | ユースケース |
|---|---|
| Amazon S3 | 静的 Web サイト・画像・動画ファイルの配信。S3 を直接公開しなくても CloudFront 経由でセキュアに配信できる |
| ALB(Application Load Balancer) | 動的コンテンツを提供するアプリケーションサーバーの手前に置いてグローバル配信を高速化する |
| EC2 インスタンス | Web サーバーを直接オリジンに指定する構成 |
| カスタムオリジン(HTTP サーバー) | AWS 外部のオンプレミスサーバーも指定可能 |
S3 + CloudFront の組み合わせは「静的 Web サイトのグローバル配信」としてCP試験でも頻出の構成です。S3 バケットを直接公開する代わりに CloudFront 経由で配信することで、セキュリティ向上・高速化・コスト削減を同時に達成できます。
関連サービスとの違い・使い分け
AWS Shield との連携: CloudFront は AWS Shield(DDoS 保護サービス)と統合されています。すべての CloudFront ディストリビューションには Shield Standard が自動適用され、一般的な DDoS 攻撃から保護されます。より高度な保護が必要な場合は Shield Advanced を有効化できます。
AWS Global Accelerator との違い: CloudFront はコンテンツのキャッシュ配信を主な目的とします。一方、Global Accelerator はキャッシュを行わず、AWS のグローバルネットワーク経由でトラフィックをルーティングして低レイテンシーを実現するサービスです。主に TCP/UDP ベースのアプリケーションや IP アドレスの固定が必要な場合に適しています(その他のネットワークサービスも参照)。
Route 53 との連携: CloudFront ディストリビューションのドメインを Route 53 でカスタムドメインにマッピングすることで、独自ドメインでの CDN 配信が実現できます。
確認問題
付録:公式ドキュメント・Black Belt 動画
さらに深く学びたい方は、AWS公式の以下のリソースを参照してください(いずれも外部サイトが開きます)。