CloudFront構築時のパラメータ説明

記事タイトルとURLをコピーする

はじめに

こんにちは。技術三課の三木宏昭です。
ついに、今年も例の季節がやってきました。早速目がかゆく、くしゃみと共に悩まされております。
(ただ、在宅勤務でも花粉症に悩まされるのは、想定外でした。家の中なら平気だと思っていたんですが…。)

CloudFront構築

CloudFrontを構築する際に設定できるパラメータが多く、見慣れない項目も多いです。
このブログでは、CloudFront構築における各パラメータがどういった内容を指すのか、簡易的な説明と共に一覧化したいと思います。

CloudFrontに関するそのほかの情報は以下をご参照ください。
サーバーワークスブログ - Amazon CloudFront

各パラメータと説明

Origin Settings 

項目 説明
Origin Domain Name オリジンとなるEC2/ELBやAmazon S3バケットを指定
Origin Path オリジン内の特定のディレクトリをオリジンとしたい場合に指定(任意設定)
Enable Origin Shield CloudFront Origin Shieldを利用する場合にYesを指定、利用しない場合はNoを指定
Origin Shield Region Origin ShieldをYesにした場合設定可能
Origin Shieldのリージョン(オリジンに対するレイテンシが最も低いリージョン)を指定
Origin ID オリジンの名称を記載(可読性の高い命名を推奨)
Restrict Bucket Access Origin Domain NameでS3を選択した場合に設定可能
S3バケットへの直接アクセスを禁止したい場合はYesを指定
禁止しない場合はNoを指定
Origin Access Identity
(以下、「OAI」)
Restrict Bucket AccessをYesにした場合に設定可能
OAI を新規に作成する場合はCreate a New identityを設定、既存のものを利用する場合はUse an Existing Identityを設定
Comment OAIでCreate a New identityを選択した場合に設定可能
OAIの説明文(コメント)を入力
Your Identities OAIでUse an Existing Identityを選択した場合に設定可能
既存のOAIから、利用するものを選択
Grant Read Permissions on Bucket OAIにS3バケット内のオブジェクト読み取り許可を自動的に付与したい場合はYes、手動で付与する場合はNoを選択
Minimum Origin SSL Protocol Origin Domain NameでEC2/ELB等を選択した場合に設定可能
オリジンにHTTPS接続する際のプロトコル
Origin Protocol Policy Origin Domain NameでEC2/ELB等を選択した場合に設定可能
オリジンへのアクセス方法を選択 Match Viewerを選択すると、ビューワーのリクエストに応じてHTTP/HTTPSを利用
Origin Connection Attempts CloudFrontがオリジンへの接続を試行する回数 1~3回の範囲で指定可能(省略した場合、3回で設定)
Origin Connection Timeout CloudFrontがオリジンへの接続を確立する際の待機時間 1~10秒の範囲で設定可能(省略した場合、10で設定)
Origin Response Timeout Origin Domain NameでEC2/ELB等を選択した場合に設定可能
CloudFrontとオリジンの間におけるタイムアウト値 1~60秒の範囲で設定可能
Origin Keep-alive Timeout Origin Domain NameでEC2/ELB等を選択した場合に設定可能
CloudFrontがレスポンスの最後のパケットを取得した後にオリジンへの接続を維持する時間 1~60秒の範囲で設定可能
HTTP Port Origin Domain NameでEC2/ELB等を選択した場合に設定可能
オリジンがリッスンしているHTTPポートを選択(省略した場合、80で設定)
HTTPS Port Origin Domain NameでEC2/ELB等を選択した場合に設定可能
オリジンがリッスンしているHTTPSポートを選択(省略した場合、443で設定)
Origin Custom Headers リクエストをオリジンに転送する際に付与するカスタムヘッダーを指定(任意設定)

Default Cache Behavior Settings

項目 説明
Path Pattern リクエストのパスパターン
 CloudFront構築時は変更出来ないため、変更したい場合はDistribution作成後に変更する必要あり
Viewer Protocol Policy CloudFront経由でコンテンツにアクセスする際のプロトコルポリシー
Allowed HTTP Methods CloudFront経由でコンテンツを操作する際に使用可能な HTTP メソッドを指定
Field Level Encryption Allow HTTP Methodsを「GET,HEAD,OPTIONS,PUT,POST,PATCH,DELETE」を選択した場合に設定可能
フィールドレベル暗号化を使用した機密データの保護を実施したい場合に設定
Cached HTTP Methods Allowed HTTP Methodsで「OPTIONS」を含む選択をした場合に設定可能
OPTIONSリクエストが送信された時に、オリジンからの応答をキャッシュするかどうかを指定 キャッシュさせる場合はチェックを入れ、キャッシュさせない場合はチェックを外す
(Allowed HTTP Methodsの選択が「OPTIONS」を含まない場合、チェックボックスが非表示)
Cache and origin request settings Amazon CloudFront キャッシュポリシーとオリジンリクエストポリシーを発表により追加された項目
どちらの項目を選択しても良い(AWSはキャッシュポリシー&オリジンリクエストポリシーの利用を推奨)
Cache Policy Cache and origin request settingsでUse a cache policy and origin request policyを選択した場合に設定可能
CloudFrontがコンテンツをキャッシュする方法を管理
 マネージドポリシーから適するものを選択しても良いし、自分で作成しても良い
Origin Request Policy Cache and origin request settingsでUse a cache policy and origin request policyを選択した場合に設定可能
オリジンへのリクエストが行われた時に、CloudFrontがリクエストタイムメタデータをオリジンに送信する方法を管理
マネージドポリシーから選択しても良いし、自分で作成しても良い
Cache Based on Selected Request Headers Cache and origin request settingsでUse legacy cache settingsを選択した場合に設定可能
リクエストヘッダーの値に基づく CloudFront 上でのキャッシュ有無を指定
Whitelist Headers Cache Based on Selected Request Headersで Whitelistを選択した場合に設定可能
CloudFrontにオブジェクトをキャッシュさせたいヘッダーを指定
Object Caching Cache and origin request settingsでUse legacy cache settingsを選択した場合に設定可能
CloudFrontのキャッシュ保持期間の設定
オリジンサーバがCache-Controlヘッダーを追加してキャッシュ期間を制御している場合はUse Origin Cache Headersを選択
Cache-Controlヘッダーに関係なくキャッシュ期間を指定するにはCustomizeを選択
Minimum TTL Object CachingでCustomizeを選択した場合に設定可能
オリジンがオブジェクトに追加したCache-Controleヘッダー値と、Minimum TTL、Maximum TTLの値を元にキャッシュ期間が計算される デフォルト値は0秒
詳細はコンテンツがキャッシュに保持される期間の管理を参照
Maximum TTL Object CachingでCustomizeを選択した場合に設定可能
オリジンがオブジェクトに追加したCache-Controleヘッダー値と、Minimum TTL、Maximum TTLの値を元にキャッシュ期間が計算される デフォルト値は31536000秒(1年)
詳細はコンテンツがキャッシュに保持される期間の管理を参照
Default TTL Object CachingでCustomizeを選択した場合に設定可能
基本的にこの値に従いキャッシュが保持 デフォルト値は86400秒(1日)
Forward Cookies Cache and origin request settingsでUse legacy cache settingsを選択した場合に設定可能
オリジンに対して転送するCookieを設定
Whitelist Cookie Forward CookiesでWhitelistを選択した場合に設定可能
オリジンに対して転送するCookieを設定
Query String Forwarding and Caching CloudFrontがクエリ文字列のパラメータに基づいて、オリジンから返却されるオブジェクトをキャッシュするかどうかを設定
Query String Whitelist Query String Forwarding and CachingでForward all, cache based on whitelistを選択した場合に設定可能
キャッシュ条件として使用するクエリ文字列パラメータを設定
Smooth Streaming Microsoft Smooth Streaming形式のメディアファイルを配信するが、IIS サーバーがない場合に「Yes」を選択
Restrict Viewer Access (Use Signed URLs or Signed Cookies) 署名付きURL/署名付きCookieによるアクセス制限を行う場合に「Yes」を選択
Trusted Key Groups or Trusted Signer Restrict Viewer AccessでYesを選択した場合に設定可能
署名付きURL・署名付きCookieを使用する際の署名者を、KeyGroupもしくはAWSアカウントのいずれかで選択(AWSはKeyGroupの使用を推奨)
Trusted Key Groups Trusted Key Groups or Trusted SignerでTrusted Key Groupsを選択した場合に設定可能
署名付きURL/署名付きCookieにおける信頼された署名者となる信頼されたキーグループを選択
Trusted Signers Trusted Key Groups or Trusted SignerでTrusted Signerを選択した場合に設定可能
署名付きURL/署名付きCookieにおける署名者として指定するAWSアカウントを指定
Compress Objects Automatically CloudFrontで特定タイプのファイルを自動的に圧縮する場合は、Yesを選択
Lambda Function Associations - CloudFront Event CloudFrontでのイベントを契機にLambdaを実行したい場合に設定
契機となるイベントを指定
Lambda Function Associations - Lambda Function ARN CloudFrontでのイベントを契機にLambdaを実行したい場合に設定
実行するLambdaのARNを指定
Lambda Function Associations - Include Body HTTPメソッドのリクエストボディに、Lambda関数でアクセスさせるかどうか
Enable Real-time Logs リアルタイムログを有効にする場合はYes、しないばあいはNoを選択
Real-time Log Configuration Enable Real-time LogsでYesを選択した場合に設定可能
作成済のリアルタイムログ設定を選択する(未作成の場合、横にあるCreate new configurationボタンから作成可能)

Distribution Settings

項目 説明
Price Class CloudFrontの価格クラス(配信エッジロケーション)を選択
AWS WAF Web ACL AWS WAFを関連付ける場合、ここで作成したウェブ ACLを選択
Alternate Domain Names (CNAMEs) オブジェクトのURLに指定するドメイン名を指定 複数設定やワイルドカード設定も可能 (任意設定)
SSL Certificate CloudFrontで利用するSSL証明書を設定
CloudFrontドメイン以外を利用する場合、Custom SSL Certificateにて設定(事前にACMにて発行orインポートする必要あり)
Custom SSL Client Support SSL CertificateでCustom SSL Certificateを選択した場合に設定可能
CloudFrontがHTTPSリクエストを処理する方法を選択
基本的にはClient that Support Server Name Indicationを選択して良い
Security Policy CloudFrontがHTTPS接続に使用するSSL/TLSプロトコルを指定
Supported HTTP Versions CloudFrontがサポートする HTTPバージョンを指定
Default Root Object ルートURL(http://www.example.com/)がリクエストされた際、特定のオブジェクトを返すようにする設定(任意設定)
Standard Logging CloudFrontでオブジェクトに対するリクエストをS3バケットに保存するかどうか
保存する場合はOn、保存しない場合はOffを選択
Bucket for Logs Standard LoggingでOnを選択した場合に設定可能
ログを格納するAmazon S3バケットを指定
Log Prefix Standard LoggingでOnを選択した場合に設定可能
ログを格納する際、ファイル名の先頭に追加する文字列(プレフィクス)を指定(任意設定)
Cookie Logging Standard LoggingでOnを選択した場合に設定可能
Cookieをアクセスログに含める場合はOnを設定
Enable IPv6 IPv6のアドレスからのリクエストに応答出来るようにする場合はチェックを入れる
Comment Distributionに付与する任意のコメント(任意設定)
Distribution State Distribution作成時、デプロイ後に即座に利用可能とするかどうか

おわりに

いかがでしょうか。皆さんの構築にお役に立てれば幸いです。
※2021年2月25日時点のデータをもとに作成しております。アップデートにより項目に差異がある場合がありますので、ご注意ください。

三木 宏昭 (執筆記事の一覧)

クラウドインテグレーション部 技術1課

紅茶と親子丼とAWSが好き

2021年の目標:毎日リングフィットアドベンチャーのコントローラーを持つ

2021 APN ALL AWS Certifications Engineers