本文へスキップ
BecomeCoder

AWSコース · 第6章 ネットワーク · レッスン31

CloudFront ― CDN

導入

東京にあるサーバーのコンテンツを、ブラジルの利用者がそのまま読み込むと、地球の裏側までデータが往復するため表示が遅くなります。世界中の誰にとっても速く見せるにはどうすればよいでしょうか。

説明

Amazon CloudFrontは、AWSが提供するCDN(Content Delivery Network・コンテンツ配信ネットワーク)サービスです。画像・動画・Webページといったコンテンツを、世界中に多数配置されたエッジロケーションキャッシュ(一時保存)しておき、利用者から見て最も近い拠点から配信することで、表示速度を高速化します。

コンテンツの本来の保存元はオリジンと呼ばれ、S3・EC2・ALB(ロードバランサー)などを指定できます。

sequenceDiagram
    participant U as 利用者(ブラジル)
    participant E as 最寄りのエッジロケーション
    participant O as オリジン(東京のS3)
    U->>E: コンテンツを要求
    alt キャッシュ済み
        E-->>U: キャッシュから即座に返す
    else 未キャッシュ
        E->>O: オリジンへ取りに行く
        O-->>E: コンテンツを返す
        E-->>U: 配信+以降のためにキャッシュ
    end

CloudFrontを使う利点は、単なる高速化だけではありません。

  • オリジンの負荷軽減 … 多くのリクエストをエッジ側のキャッシュで処理できるため、オリジンサーバーへのアクセスが減る。
  • TLSによる暗号化配信 … 利用者との通信をHTTPSで保護できる。
  • DDoS対策との連携 … AWS Shieldと組み合わせることで、大量アクセスによる攻撃(DDoS攻撃)の影響を緩和できる。

読んでみよう

「CloudFront=世界中のエッジロケーションでキャッシュ配信するCDN」「オリジンはS3やEC2などコンテンツの本体を持つ場所」という関係を押さえておきましょう。