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