Amazon CloudFront入門

2025-03-05

Amazon CloudFront は、 エッジサービスを提供するサービスです。
この記事では、Amazon CloudFront をざっくり理解できる概要と使い方を記載します。

Amazon CloudFront の概要

Amazon CloudFront は、ユーザへの静的および動的なウェブコンテンツ (.html、.css、.js、イメージファイルなど) の配信を高速化するウェブサービスで、エッジロケーションと呼ぶデータセンターの世界的ネットワークを経由してコンテンツを配信します。
エッジロケーションには以下の種類があります。

用語

  • Viewer(ビューワー) :クライアント/Webブラウザ
  • Distribution(ディストリビューション) :コンテンツ配信の設定単位で、CloudFrontドメイン名、代替ドメイン名毎に作成
  • Origin(オリジン) :コンテンツ提供元のWebサーバ毎に作成
    • カスタムオリジン:Amazon VPCやオンプレミスのWebサーバ
    • S3オリジン:静的コンテンツを提供する S3 バケット
  • Behavior(ビヘイビア) :キャッシュの動作設定で、URLパスパターン毎に作成

Distribution

  • Distribution毎にOrigin、Behaviorの設定を行う
  • HTTP/1.0、HTTP/1.1、HTTP/2、WebSocketに対応
    • HTTP/2 使用時はクライアントが TLS 1.2以降および SNI(Servier Name Identification)に対応している必要がある
  • TLS 1.3 クライアントに対応しており、デフォルトで有効
  • IPv6に対応
  • [ランダム文字列].cloudfront.net がドメイン名として割り当てられる
  • CNAME エイリアスを利用して代替ドメイン名を指定可能(Route53やACMと連携)
  • AWS WAFと連携可能
  • アクセスログを S3 に保存可能

Origin

オリジンはカスタムオリジンとS3 オリジンを指定可能です。

  • カスタムオリジン:クラウド、オンプレに関わらない任意のWebサーバ
  • S3オリジン:S3バケット
  • VPCオリジン:VPCのプライベートサブネットにホストされているWebサーバ

S3をオリジンとする場合、OAI(Origin Access Identity)とOAC(Origin Access Control)の 2 種類から選択可能ですが、 OAI はレガシーで OAC を使用することを推奨します。
カスタムオリジンの指定の際は OAI や OAC は使用せず、オリジンの Web サーバのドメイン名を直接指定することになります。(ALB であれば ALB のドメイン名)
また、VPCオリジンを使用することで、パブリックに公開されていない VPC プライベートサブネットからのコンテンツも配信可能になります。プライベートサブネットの Application Load Balancer (ALB)、Network Load Balancer (NLB)、EC2 インスタンスを VPC オリジンとして使用できるということです。

Behavior

以下のような設定が可能です。

  • キャッシュコントロールに関する設定
  • 許可するプロトコル(HTTP/HTTPS)やリダイレクト、HTTPメソッドなどの指定
  • Lambda@Edge関数に関する設定
  • など

おすすめ書籍

おすすめ記事