[AWS] 「CloudFront」設定方法

CloudFrontはCDN(Contents Delivery Network)サービスです。

  • 「サービス」→「ネットワーキングとコンテンツ配信」→「CloudFront
  • 「Amazon CloudFront Getting Started」が表示されます。

1. ディストリビューションの作成

  • 「Create Distribution」ボタンをクリックします。
  • 「Select a delivery method for your content.」画面が表示されます。
  • ディストリビューションにはWebとRTMPの2種類がありますが、 通常はWebを選択します。
    ※S3をオリジンサーバとしてRTMPによるストリーミング動画配信を行う場合のみ、RTMPを選択します。
  • ここで「Web」の「Get Started」ボタンをクリックします。
(1) Origin Settings
■Origin Domain Name
「Origin Domain Name」のフィールドをクリックすると、現在のAWSアカウントに関連付けられているAWSリソースのリストが表示されますので、オリジンのドメイン名を指定します。
ここでは、CloudFrontがウェブコンテンツを取得するウェブサーバ
■Origin Path
オプションです。
S3バケットなどのディレクトリからコンテンツをリクエストする場合には、「/」で始まるディレクトリ名をここに入力します。(※ディレクトリ名の末尾に「/」を含めないこと。)
WEBサーバの場合は、空白のままで良いです。
■Origin ID
オリジンの説明を入力します。
デフォルトで、「Origin Domain Name」で入力した名称を元に自動的に入力されますので、そのままで構いません。
■Minimum Origin SSL Protocol
オリジンへのHTTPS接続を確立するときに使用するCloudFrontの最小SSLプロトコルを選択します。
■Origin Protocol Policy
HTTPのみを使用するか、HTTPSのみを使用するか、それともどちらも使用するかを選択します。
ここでは、「Match Viewer」を選択します。
■Origin Response Timeout
CloudFrontが応答を待つ時間(秒)を指定します。
有効な値は4~60秒です。
■Origin Keep-alive Timeout
接続を閉じる前に、CloudFrontがアイドル接続を維持する時間(秒)です。
有効な値は1~60秒です。
■HTTP Port
HTTPポート番号。デフォルトの「80」にします。
■HTTPS Port
HTTPSポート番号。デフォルトの「443」にします。
■Origin Custom HeadersHeader NameValue
カスタムヘッダーを指定したい場合には、ここにキーと値を入力します。
通常は空白で構いません。

(2) Default Cache Behavior Settings

デフォルトのキャッシュ動作設定を行います。
■Path Pattern
デフォルトのキャッシュ動作では、「*」のパスパターンのみが許可され、変更できません。
■Viewer Protocol Policy
CloudFrontがすべてのHTTPリクエストをHTTPSにリダイレクトするようにするため、「Redirect HTTP to HTTPS」を選択します。
■Allowed HTTP Methods
キャッシュ動作を許可するHTTPメソッドを選択します。
  • GET, HEAD
  • GET, HEAD, OPTIONS
  • GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
※プログラムを動作させる場合には、「GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE」の方が良いかもしれません。
■Field-level Encryption Config
フィールドレベル暗号化では、HTTPSと共にセキュリティのレイヤーが追加されます。これにより、システムの処理中に特定のデータに特定のアプリケーションのみがアクセスできるように、そのデータを保護できます。
ここでは、空白で構いません。
■Cached HTTP Methods
「Allowed HTTP Methods」で「GET, HEAD, OPTIONS」もしくは「GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE」を選択した場合には、「OPTIONS」チェックボックスが表示されます。
「OPTIONS」メソッドもキャッシュを行う場合には、チェックを付けます。
■Cache Based on Selected Request Headers
CloudFrontがヘッダー値に基づいてオブジェクトをキャッシュするかどうかを選択します。
リストボックスの内、
  • None (Improves Caching)
  • Whitelist
  • All
のいずれかを指定します。
ここでは、「Whitelist」を選択します。
■Whitelist Headers
CloudFrontがキャッシュのベースにするヘッダーを指定します。
「Cache Based on Selected Request Headers」項目で「Whitelist」を選択すると表示されます。
左側のヘッダリストから、ヘッダを選択して「Add >>」をクリックすると右側のキャッシュ対象ヘッダリストに登録されます。
右側のヘッダリストからヘッダを選択して「<< Remove」をクリックすると、キャッシュ対象ヘッダリストから削除されます。
※登録できるヘッダは10個までです。

【ヘッダリスト】
Accept
Accept-Charset
Accept-Datetime
Accept-Encoding
Accept-Language
Authrization
CloudFront-Forwaded-Proto
Host
Origin
Referer
CloudFront-Is-Desktop-Viewer
CloudFront-Is-Mobile-Viewer
CloudFront-Is-SmartTV-Viewer
CloudFront-Is-Tablet-Viewer
CloudFront-Viewer-Country
■Object Caching
どちらかを指定します。
Use Origin Cache Headers Cache-Controlヘッダーを追加して、オブジェクトがCloudFrontキャッシュに保持される期間を制御
Customize Cache-Controlヘッダーに関係なく、オブジェクトがCloudFrontキャッシュに保持される期間を制御
■Minimum TTL
オブジェクトが更新されたかどうかを判断するまで、オブジェクトをCloudFrontキャッシュに保持する最小時間(秒)。
最小TTLは、Cache-Control max-age、Cache-Control s-maxage、ExpiresなどのHTTPヘッダーと、デフォルトTTLおよび最大TTLと対話します。
デフォルトは0秒。
■Maximum TTL
オブジェクトが更新されたかどうかを判断するまで、オブジェクトをCloudFrontキャッシュに保持する最大時間(秒)。
指定した値は、オリジンがCache-Control max-age、Cache-Control s-maxage、ExpiresなどのHTTPヘッダーをオブジェクトに追加する場合にのみ適用されます。
デフォルトは、31536000秒(210240日/576年)。
■Default TTL
オブジェクトが更新されたかどうかを判断するまで、オブジェクトをCloudFrontキャッシュに保持するデフォルトの時間(秒)。
指定する値は、オリジンがCache-Control max-age、Cache-Control s-maxage、ExpiresなどのHTTPヘッダーをオブジェクトに追加しない場合にのみ適用されます。
デフォルトは、86400秒(24時間24/1日)
■Forward Cookies
CloudFrontが転送するリクエストURLにCookieを含めるかどうかを選択します。
  • All(すべてのユーザーCookieを含める)、
  • Whitelist(選択したCookieのみを含める)
  • None(Improves Caching)(Cookieを含めない)
ここで、「Whitelist」を選択した場合は、「Whitelist Cookies」フィールドが表示されますので、Cookieの名前を追加します。
※「All」にした場合、Cookieをアクセス日時によって更新する処理を行っているサービスを登録していると、毎回cookieが変動するため、CloudFrontがページを更新されていると判断して、キャッシュが行われないことがあります。その場合には、「None(Improves Caching)」もしくは「Whitelist」を選択して下さい。
■Query String Forwarding and Caching
クエリー文字をキャッシングする場合に設定を行います。
  • None(Improves Caching)(Cookieを含めない)
  • Forward all, chache based on whitelist
  • forward all, cache based on all
なお、「Forward all, chache based on whitelist」を選択すると、「Query String Whitelist」項目が表示されますので、キャッシュのベースにする各クエリ文字列パラメーターを入力します。
※「forward all, cache based on all」にした場合、クエリー文字が変動する場合、キャッシュが行われないことがあります。その場合には、「None(Improves Caching)」もしくは「Forward all, chache based on whitelist」を選択して下さい。
■Smooth Streaming
ビデオをオンデマンドでストリーミングする場合に有効にします。
※ただし、Microsoft IISサーバーを使用している場合は、有効にしないで下さい。
■Restrict Viewer Access (Use Signed URLs or Signed Cookies)
ユーザーに署名付きURLまたは署名付きCookieを使用してコンテンツにアクセスすることを要求するかどうかを選択します。
■Compress Objects Automatically
リクエストヘッダーにAccept-Encoding:gzipを含むウェブリクエストのコンテンツをCloudFrontで自動的に圧縮するかどうかを選択します。 CloudFrontは、Amazon S3とカスタムオリジンの両方の特定のタイプのファイルを圧縮します。
■Lambda Function Associations
Lambda関数のARNを指定して、特定のイベントタイプ(イベントタイプごとに最大1つのARN)に関連付けます。
リストからイベントタイプを選択します。
  • Viewer Request
  • Viewer Response
  • Origin Request
  • Origin Response

(3) Distribution Settings

■Price Class
CloudFrontを適用するエリアを選択します。指定するエリアにより価格が異なります。
  • Use Only U.S., Canada and Europe
  • Use U.S., Canada, Europe, Asia, Middle East and Africa
  • Use All Edge Locations (Best Perfomance)
■AWS WAF Web ACL
AWS WAFを使用して、指定した条件に基づいてリクエストを許可またはブロックする場合、このディストリビューションに関連付けるウェブACLを選択します。
■Alternate Domain Names(CNAMEs)
CloudFrontのデフォルトドメイン(cloudfront.net)ではなく、独自ドメインを利用する場合に、ドメイン名を指定します。(最大100個まで指定できます。)
■SSL Certificate
独自ドメインを利用する場合には、「Custom SSL Certificate (example.com):」を選択します。
そして、「Certificate Manager」に登録済みのSSLサーバ証明書を指定します。
※「CNAMEs」を使用する場合には、「米国東部(バージニア北部)」リージョンにSSLサーバ証明書が登録されていないとSSLサーバ証明書が選択できず、エラーとなります。
■Custom SSL Client Support
「Clients that Support Server Name Indication (SNI) - (Recommended)」選択して下さい。
■Security Policy
通常「TLSv1.1_2016」を指定します。
■Supported HTTP Versions
CloudFrontが受け入れるHTTPプロトコルのバージョンを選択します。
  • HTTP/2, HTTP/1.1, HTTP/1.0
  • HTTP/1.1, HTTP/1.0
「HTTP/2」の方が高速なので、このプロトコルをサポートしているシステムの場合には、「HTTP/2, HTTP/1.1, HTTP/1.0」選択します。
■Default Root Object




最終更新:2019年11月05日 10:50