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関数に関する設定
- など
おすすめ書籍
リンク