CloudFrontとは?
以下を実現するCDN
・高い安全性
・高い性能
・プログラム可能
動作
・ユーザーを一番近いエッジロケーションに誘導 ※低レイテンシで判断。EDNS Client Subnet情報も利用。
・エッジサーバでコンテンツキャッシュ
・AWS WAF、AWS Shield連携しセキュリティ対策
・AWS Certficate Manager(ACM)の証明書利用
用語
Viewer
Webブラウザ等のクライアント
Behaviour設定
・リクエストパスパターン毎にキャッシュTTL設定
・サーバレスポンスにCache-Control:no-cache、no-store、privateディレクティブを付けた場合、CloudFrontでキャッシュされない。
設定ミスると以下のようなトラブル事例もあり。
CDN切り替え作業における、Web版メルカリの個人情報流出の原因につきまして | メルカリエンジニアリング
証明書
・標準で「cloudfront.net」ドメイン証明書
・独自ドメイン証明書も利用可能。以下のCNAMEレコード登録が必要
独自ドメインFQDN → cloudfront.netドメインFQDN
※ディストリビューション設定の以下に"独自ドメインFQDN"を設定する必要あり。これを設定しないとCloudfrontは"cloudfront.netドメインFQDN"の証明書を提示してくる。
関連情報
CloudFront の無効なリクエストのエラーを解決する
代替ドメイン名 (CNAME) を追加することによるカスタム URL の使用 - Amazon CloudFront
プロトコルポリシー
・クライアント→Cloudfront間
HTTP or HTTPS/Redirect HTTP to HTTPS/HTTPS Only
・Cloudfront→オリジン間
HTTPS Only/Match Viewer(Viewer→Cloudfronと同じプロトコル利用)
署名付きURL、Cookie
URLもしくは、Cookieにコンテンツへの資格情報を含めて認証OKの場合にアクセスを許可する機能
公開鍵認証で認証をする。
アプリケーションで認証し、認証OKの場合にURLもしくはCookieに秘密鍵で暗号化したデータを含め、Cloudfrontは公開鍵で復号できれば認証OKの判断をする。
使い分けは、コンテンツが単一ファイルの場合はURL、複数ファイルある場合はCookie
仕組みの詳細は以下参照
署名付き URL の使用 - Amazon CloudFront
署名付き Cookie の使用 - Amazon CloudFront
オリジンアクセスアイデンティティ(OAI)
オリジンに直接アクセス不可にし、Cloudfron経由のみ許可する
※S3のみ。
オリジンフェイルオーバ
複数オリジンを作成し、片系異常時に正常系にフェイルオーバする機能
Geographical Restriction
特定の国からのアクセスを制限する機能
Price Class
利用するエッジロケーションを制限