Amazon CloudFront
開発者ガイド (API バージョン 2016-09-29)

ディストリビューションを作成または更新する場合に指定する値

新しいディストリビューションの作成や、既存のディストリビューションの更新を行う場合、以下の値を指定します。CloudFront コンソールを使用してディストリビューションを作成または更新する方法については、「ディストリビューションの作成」または「ディストリビューションの更新」を参照してください。

配信方法

配信方法の指定。ウェブまたは RTMP。詳細については、「配信方法」を参照してください。

オリジンの設定

次の値は、Amazon S3 オリジンでのみサポートされています。

次の値は、ウェブサイトエンドポイントとして設定された Amazon EC2、Elastic Load Balancing、Amazon S3 バケット、または独自のウェブサーバーなど、カスタムオリジンでのみ使用できます。

以下の値はすべてのタイプのオリジンで使用できます。

キャッシュ動作の設定

ディストリビューションの詳細

Custom Error Pages (カスタムエラーページ) と Error Caching (エラーキャッシュ)

制限

配信方法

ディストリビューションを作成する場合、配信方法を指定します。Adobe Flash Media Server を RTMP で使用している場合以外は、この値は常に [Web (ウェブ)] です。既存のディストリビューションの配信方法を変更することはできません。

オリジンの設定

ディストリビューションを作成または更新する場合、ウェブコンテンツのオリジナルバージョンを保存している場所 (オリジンと呼ばれる) に関する情報を 1 つ以上指定します。CloudFront はオリジンからウェブコンテンツを取得して、エッジサーバーの世界規模のネットワーク経由でビューワーにウェブコンテンツを供給します。各オリジンは、Amazon S3 バケットまたは HTTP サーバー (ウェブサーバーなど) です。

ディストリビューションに作成できるオリジンの数に関する現在の制限について、または制限の引き上げをリクエストするには、「ウェブディストリビューションの一般的な制限」を参照してください。

オリジンを削除する場合は、まず、そのオリジンに関連付けられたキャッシュ動作を編集または削除する必要があります。

重要

オリジンを削除する場合は、そのオリジンによって以前供給されていたファイルが別のオリジンで利用可能であり、現在、そのファイルへのリクエストがキャッシュ動作によって新しいオリジンにルーティングされていることを確認します。

ディストリビューションを作成または更新する場合、オリジンごとに以下の値を指定します。

オリジンドメイン名

CloudFront がこのオリジンのオブジェクトの取得先とする Amazon S3 バケットまたは HTTP サーバーの DNS ドメイン名。以下に例を示します。

  • Amazon S3 バケットmyawsbucket.s3.amazonaws.com

  • ウェブサイトとして構成されている Amazon S3 バケットhttp://bucket-name.s3-website-us-west-2.amazonaws.com

  • MediaStore コンテナmymediastore.data.mediastore.us-west-1.amazonaws.com

  • MediaPackage エンドポイントmymediapackage.mediapackage.us-west-1.amazon.com

  • Amazon EC2 インスタンスec2-203-0-113-25.compute-1.amazonaws.com

  • Elastic Load Balancing ロードバランサーmy-load-balancer-1234567890.us-west-2.elb.amazonaws.com

  • 独自のウェブサーバーhttps://example.com

オリジンが HTTP サーバーである場合は、リソースのドメイン名を入力します。ファイルはパブリックに読み取り可能である必要があります。

オリジンが Amazon S3 バケットである場合は、CloudFront コンソールで [Origin Domain Name (オリジンドメイン名)] フィールドを選択して、現在の AWS アカウントに関連付けられている Amazon S3 バケットの一覧を表示します。次の点に注意してください。

  • バケットがウェブサイトとして構成されている場合は、バケットの Amazon S3 静的ウェブサイトホスティングエンドポイントを入力します。[Origin Domain Name (オリジンドメイン名)] フィールドのバケット一覧からバケット名を選択しないでください。静的ウェブサイトホスティングエンドポイントは、Amazon S3 コンソールの [静的ウェブサイトホスティング] の [プロパティ] ページに表示されます。詳細については、「オリジンのウェブサイトエンドポイントとして構成された Amazon S3 バケットの使用」を参照してください。

  • バケットに Amazon S3 Transfer Acceleration を設定した場合、[Origin Domain Name] に s3-accelerate エンドポイントを指定しないでください。

  • 使用しているバケットが別の AWS アカウントのものであり、そのバケットがウェブサイトとして構成されていない場合は、次の形式で名前を入力します。

    bucket-name.s3.amazonaws.com

    バケットが米国スタンダードリージョンにあり、Amazon S3 がバージニア北部の施設にリクエストをルーティングするように設定する場合は、次の形式を使用します。

    bucket-name.s3-external-1.amazonaws.com

    バケットが 欧州 (フランクフルト) リージョンにある場合は、次の形式を使用することもできます。

    bucket-name.s3.eu-central-1.amazonaws.com

  • CloudFront のオリジンアクセスアイデンティティを使用して Amazon S3 内のコンテンツを保護しない限り、ファイルをパブリックに読み出し可能とする必要があります。詳細については、「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する」を参照してください。

重要

オリジンが Amazon S3 バケットの場合、バケット名は DNS 命名要件に準拠する必要があります。詳細については、Amazon Simple Storage Service 開発者ガイド の「バケットの制約と制限」を参照してください。

オリジンの [Origin Domain Name] の値を変更すると、CloudFront は CloudFront エッジロケーションに対する変更の複製を直ちに開始します。該当するエッジロケーションでディストリビューション構成が更新されるまで、CloudFront はリクエストを以前の HTTP サーバーまたは Amazon S3 バケットに引き続き転送します。該当するエッジロケーションでディストリビューション構成が更新されると、CloudFront はリクエストを新しい HTTP サーバーまたは Amazon S3 バケットに転送し始めます。

オリジンを変更しても、CloudFront は新しいオリジンからのオブジェクトでエッジキャッシュを生成し直す必要はありません。アプリケーション内でビューワーのリクエストが変更されていない限り、各オブジェクトの TTL の有効期限が切れるか、要求頻度の低いオブジェクトが削除されるまで、CloudFront は、引き続き、エッジキャッシュに既に保持されているオブジェクトを供給します。

オリジンのパス

CloudFront が AWS リソース内またはカスタムオリジン内のディレクトリからコンテンツをリクエストするようにする場合は、スラッシュ (/) で始まるディレクトリパスを入力します。CloudFront は [Origin Domain Name (オリジンドメイン名)] の値にそのディレクトリパスを追加します (例: cf-origin.example.com/production/images)。パスの末尾にはスラッシュ (/) を付けないでください。

たとえば、特定のディストリビューションに対して次の値を指定したとします。

  • [Origin Domain Name (オリジンドメイン名)] – myawsbucket という名前の Amazon S3 バケット

  • [Origin Path (オリジンパス)] – /production

  • [Alternate Domain Names (CNAMEs) (代替ドメイン名 (CNAME))] – example.com

この場合、ユーザーがブラウザで「example.com/index.html」と入力すると、CloudFront は myawsbucket/production/index.html に対するリクエストを Amazon S3 に送信します。

ユーザーがブラウザで「example.com/acme/index.html」と入力すると、CloudFront は myawsbucket/production/acme/index.html に対するリクエストを Amazon S3 に送信します。

オリジン ID

このディストリビューション内でこのオリジンまたはオリジングループを一意に区別する文字列。デフォルトのキャッシュ動作に加えてキャッシュ動作を作成する場合、ここで指定した ID を使用して、そのキャッシュ動作のパスパターンにリクエストが一致した場合に CloudFront がリクエストをルーティングするオリジンまたはオリジングループを識別します。

詳細については、以下を参照してください。

バケットアクセスの制限

注記

Amazon S3 バケットのオリジンにのみ適用されます (ウェブサイトエンドポイントとして設定されている場合は除く)。

Amazon S3 URL ではなく CloudFront URL のみを使用して Amazon S3 バケット内のオブジェクトにアクセスするようユーザーに要求する場合は、[Yes] を選択します。次に、追加の値を指定します。

ユーザーが CloudFront URL または Amazon S3 URL を使用してオブジェクトにアクセスできるようにするには、[No] を選択します。

詳細については、「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する」を参照してください。

CloudFront URL のみ使用してカスタムオリジン内のオブジェクトにアクセスするようユーザーに求める方法については、「カスタムヘッダーを使用してカスタムオリジンのコンテンツへのアクセスを制限する」を参照してください。

オリジンアクセスアイデンティティ

注記

Amazon S3 バケットのオリジンにのみ適用されます (ウェブサイトエンドポイントとして設定されている場合は除く)。

[Restrict Bucket Access] で [Yes] を選択した場合、新しいオリジンアクセスアイデンティティを作成するか、AWS アカウントに関連付けられた既存のオリジンアクセスアイデンティティを使用するかを選択します。オリジンアクセスアイデンティティが既にある場合は、それを再利用し、メンテナンスを簡素化することをお勧めします。オリジンアクセスアイデンティティの詳細については、「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する」を参照してください。

新しいアイデンティティに関するコメント

注記

Amazon S3 バケットのオリジンにのみ適用されます (ウェブサイトエンドポイントとして設定されている場合は除く)。

[Origin Access Identity] で [Create a New Identity] を選択した場合、新しいオリジンアクセスアイデンティティを識別するコメントを入力します。このディストリビューションが作成されると、CloudFront はオリジンアクセスアイデンティティを作成します。

ID

注記

Amazon S3 バケットのオリジンにのみ適用されます (ウェブサイトエンドポイントとして設定されている場合は除く)。

[Origin Access Identity] で [Use an Existing Identity] を選択した場合、使用するオリジンアクセスアイデンティティを選択します。別の AWS アカウントに関連付けられたオリジンアクセスアイデンティティを使用することはできません。

バケットに読み取りアクセス許可を付与する

注記

Amazon S3 バケットのオリジンにのみ適用されます (ウェブサイトエンドポイントとして設定されている場合は除く)。

CloudFront で、オリジンアクセスアイデンティティに Amazon S3 バケット内のオブジェクトの読み取りアクセス許可を自動的に付与するには、[Yes, Update Bucket Policy (はい、バケットポリシーを更新します)] を選択します。

重要

[Yes, Update Bucket Policy (はい、バケットポリシーを更新します)] を選択すると、CloudFront は、指定されたオリジンアクセスアイデンティティにバケット内のオブジェクトの読み取り許可を付与するようにバケットポリシーを更新します。ただし、CloudFront がバケットポリシー内の既存のアクセス許可、または個々のオブジェクトに対するアクセス許可を削除することはありません。現在、Amazon S3 URL を使用してバケット内のオブジェクトにアクセスするための許可を持っているユーザーは、CloudFront がバケットポリシーを更新した後もそのアクセス許可を依然として持っています。既存のバケットポリシー、およびバケット内のオブジェクトに対する既存のアクセス許可を表示または変更するには、Amazon S3 から提供される方法を使用します。詳細については、「オリジンアクセスアイデンティティに Amazon S3 バケット内のファイルの読み取りアクセス許可を付与する」を参照してください。

アクセス許可を手動で更新する場合 (例: バケットの許可を更新せずにオブジェクトに対する ACL を更新する場合) は、[No, I will Update Permissions (いいえ、アクセス許可を更新します)] を選択します。

オリジン SSL プロトコル

注記

ウェブサイトエンドポイントとして設定されている場合を除き、Amazon S3 バケットには適用されません。

オリジンで HTTPS 接続を確立するときに CloudFront が使用できる SSL プロトコルを選択します。SSLv3 プロトコルの安全性が低いため、オリジンが TLSv1 以降をサポートしていない場合にのみ SSLv3 を選択することをお勧めします。

注記

SSLv3 を選択した場合、CloudFront は TLS を使用してオリジンへの接続を試みません。

オリジンが Amazon S3 バケットである場合、CloudFront は常に TLSv1.2 を使用します。

オリジンプロトコルポリシー

注記

ウェブサイトエンドポイントとして設定されている場合を除き、Amazon S3 バケットには適用されません。

CloudFront がオリジンサーバーからオブジェクトをフェッチするときに使用するプロトコルポリシー。

次のいずれかの値を選択します。

  • HTTP Only: CloudFront は、オリジンへのアクセスに HTTP のみを使用します。

    重要

    オリジンが、ウェブサイトエンドポイントとして設定されている Amazon S3 バケットの場合は、このオプションを選択します。Amazon S3 では、ウェブサイトエンドポイントの HTTPS 接続をサポートしていません。

  • HTTPS Only: CloudFront は、オリジンへのアクセスに HTTPS のみを使用します。

  • [Match Viewer (ビューワーに合わせる)]: CloudFront は、ビューワーリクエストのプロトコルに応じて HTTP または HTTPS を使用してオリジンと通信します。ビューワーが HTTP と HTTPS の両方のプロトコルを使用してリクエストを行った場合でも、CloudFront がオブジェクトをキャッシュするのは 1 回だけです。

    重要

    CloudFront がこのオリジンに転送する HTTPS ビューアリクエストの場合、オリジンサーバーの SSL 証明書のドメイン名のうち 1 つは、[Origin Domain Name] で指定したドメイン名に一致する必要があります。一致しない場合、CloudFront は、ビューワーリクエストに対して、リクエストされたオブジェクトではなく、HTTP ステータスコード 502 (不正なゲートウェイ) を返します。詳細については、「CloudFront で SSL/TLS の証明書を使用するための要件」を参照してください。

オリジン応答タイムアウト

注記

ウェブサイトエンドポイントとして設定されている場合を除き、Amazon S3 バケットには適用されません。

オリジン応答タイムアウト (オリジンの読み取りタイムアウトまたはオリジンリクエストタイムアウトとも呼ばれる) は、次の両方の値に適用されます。

  • CloudFront がリクエストをカスタムオリジンに転送してからレスポンスを受け取るまでの待機時間 (秒)

  • CloudFront がオリジンからレスポンスのパケットを受け取ってから次のパケットを受け取るまでの待機時間 (秒)

デフォルトのタイムアウトは 30 秒です。この値は、4~60 秒の範囲で変更できます。この範囲外のタイムアウト値が必要な場合は、制限の変更を申請してください。

ヒント

ビューワーで HTTP 504 ステータスコードエラーが発生しているために、タイムアウト値を引き上げる必要がある場合は、タイムアウト値を変更する前に、それらのエラーを回避するその他の方法を検討します。「HTTP 504 ステータスコード (Gateway Timeout)」でトラブルシューティングのヒントを参照してください。

CloudFront の動作は、ビューワーリクエストの HTTP メソッドによって決まります。

  • GET リクエストと HEAD リクエスト – 読み取りタイムアウトが経過するまでにオリジンが応答しないか、または設定されているタイムアウト内に応答を停止した場合、CloudFront は接続を中断して、オリジンに対する接続をさらに 2 回試みます。3 回目の試みでもオリジンが読み取りタイムアウトの経過前に応答しない場合、CloudFront は同じオリジンのコンテンツに対する別のリクエストを受け取るまで接続を試みません。

  • DELETEOPTIONSPATCHPUTPOST の各リクエスト – 読み取りタイムアウトが経過するまでにオリジンが応答しない場合、CloudFront は接続を中断し、オリジンへの接続は再試行しません。クライアントは、必要に応じてリクエストを再送信できます。

オリジンのキープアライブタイムアウト

注記

ウェブサイトエンドポイントとして設定されている場合を除き、Amazon S3 バケットには適用されません。

CloudFront がレスポンスの最後のパケットを取得した後にカスタムオリジンへの接続を維持する時間 (秒)。持続的接続を維持すると、TCP 接続の再構築に必要な時間と後続のリクエストに対する別の TLS ハンドシェイクの実行に必要な時間を節約できます。キープアライブタイムアウトを増やすと、ディストリビューションの接続あたりのリクエストメトリクスの改善に役立ちます。

注記

[Origin Keep-alive Timeout (オリジンキープアライブタイムアウト)] の値が有効になるためには、永続接続を許可するようにオリジンが設定されている必要があります。

デフォルトのタイムアウトは 5 秒です。この値は、1~60 秒の範囲で変更できます。キープアライブタイムアウトを 60 秒より長くする必要がある場合は、制限の変更を申請してください。

HTTP ポート

注記

ウェブサイトエンドポイントとして設定されている場合を除き、Amazon S3 バケットには適用されません。

省略可能。カスタムオリジンがリッスンしている HTTP ポート。有効な値には、ポート 80、443、および 1024 ~ 65535 が含まれます。デフォルト値はポート 80 です。

HTTPS ポート

注記

ウェブサイトエンドポイントとして設定されている場合を除き、Amazon S3 バケットには適用されません。

省略可能。カスタムオリジンがリッスンしている HTTPS ポート。有効な値には、ポート 80、443、および 1024 ~ 65535 が含まれます。デフォルト値はポート 443 です。

オリジンのカスタムヘッダー

リクエストをオリジンに転送するときに CloudFront が常にカスタムヘッダーを含めるようにする場合は、次の値を指定します。

ヘッダー名

CloudFront がオリジンに転送するヘッダーの名前。

[Custom Header (カスタムヘッダー)] フィールドで指定したヘッダーの値。

詳細については、「カスタムヘッダーをオリジンへ転送する」を参照してください。

現在のように、オリジンに転送できるカスタムヘッダーの最大数、カスタムヘッダー名と値の最大長、およびすべてのヘッダー名と値の全長に対する現在の制限については、「制限」を参照してください。

キャッシュ動作の設定

キャッシュ動作を使用すると、ウェブサイトにあるファイルの特定の URL パスパターンに応じてさまざまな CloudFront 機能を設定できます。たとえば、CloudFront のオリジンサーバーとして使用しているウェブサーバーの images ディレクトリ内にあるすべての .jpg ファイルに 1 つのキャッシュ動作を適用します。キャッシュ動作ごとに構成可能な機能には以下のようなものがあります。

  • パスパターン。

  • CloudFront ディストリビューションに対して複数のオリジンを設定している場合に、CloudFront でリクエストをどのオリジンに転送するか。

  • クエリ文字列をオリジンに転送するかどうか。

  • 指定したファイルへのアクセスに署名付き URL を必要とするかどうか。

  • これらのファイルへのアクセスに HTTPS を使用するようユーザーに要求するかどうか。

  • オリジンがファイルに追加する Cache-Control ヘッダーの値に関係なく、これらのファイルを CloudFront キャッシュに保持する最小時間。

新しいディストリビューションを作成する場合、デフォルトのキャッシュ動作の設定を指定します。デフォルトのキャッシュ動作では、ディストリビューションの作成時に指定されたオリジンにすべてのリクエストが自動的に転送されます。ディストリビューションを作成した後に、パスパターン (例: *.jpg) に一致するオブジェクトのリクエストを受け取ったときに CloudFront がどのように応答するかを定義する、追加のキャッシュ動作を作成できます。追加のキャッシュ動作を定義した場合、デフォルトのキャッシュ動作は常に最後に処理されます。他のキャッシュ動作は、CloudFront コンソールに表示されている順序で処理されるか、または、CloudFront API が使用されている場合は、ディストリビューションの DistributionConfig 要素に示されている順序で処理されます。詳細については、「パスパターン」を参照してください。

キャッシュ動作を作成するときに、CloudFront がオブジェクトの取得先とするオリジンを 1 つ指定します。結果として、CloudFront がすべてのオリジンからオブジェクトを配信する場合、少なくともオリジンと同じ数のキャッシュ動作 (デフォルトのキャッシュ動作を含む) が必要です。たとえば、2 つのオリジンとデフォルトのキャッシュ動作のみがある場合、デフォルトのキャッシュ動作によって、CloudFront は 1 つのオリジンからオブジェクトを取得します。その他のオリジンは一切使用されません。

ディストリビューションに追加できるキャッシュ動作の数に関する現在の制限について、または制限の引き上げをリクエストするには、「ウェブディストリビューションの一般的な制限」を参照してください。

パスパターン

パスパターン (例: images/*.jpg) を使用して、このキャッシュ動作をどのリクエストに割り当てるかを指定します。CloudFront がエンドユーザーリクエストを受け取ると、要求されたパスが、ディストリビューションに含まれているキャッシュ動作の順序でパスパターンと照合されます。最初の一致によって、そのリクエストに適用されるキャッシュ動作が決まります。たとえば、以下の 3 つのパスパターンを持つ 3 つのキャッシュ動作がこの順序で設定されているとします。

  • images/*.jpg

  • images/*

  • *.gif

注記

/images/*.jpg」のように、パスパターンの先頭にスラッシュ (/) を含めることもできます。先頭にスラッシュがあってもなくても CloudFront の動作は変わりません。

ファイル images/sample.gif のリクエストは 1 番目のパスパターンを満たさないため、関連付けられたキャッシュ動作はこのリクエストに適用されません。ファイルは 2 番目のパスパターンを満たします。リクエストは 3 番目のパスパターンにも一致しますが、2 番目のパスパターンに関連付けられたキャッシュ動作が適用されます。

注記

新しいディストリビューションを作成すると、デフォルトのキャッシュ動作の [Path Pattern (パスパターン)] の値は * (すべてのファイル) に設定され、この値は変更できません。この値によって、CloudFront は、オブジェクトに対するすべてのリクエストを、オリジンドメイン名 フィールドで指定されているオリジンに転送します。オブジェクトのリクエストが、他のどのキャッシュ動作のパスパターンにも一致しない場合、CloudFront は、デフォルトのキャッシュ動作に指定された動作を適用します。

重要

パスパターンとその順序を慎重に定義します。適切に定義されていない場合、コンテンツへの意図されないアクセスがユーザーに与えられる場合があります。たとえば、リクエストが、2 つのキャッシュ動作のパスパターンに一致したと仮定します。最初のキャッシュ動作は署名付き URL を要求しませんが、2 番目のキャッシュ動作は署名付き URL を要求します。ユーザーは署名付き URL を使用せずにオブジェクトにアクセスできます。これは、CloudFront が、最初の一致に関連付けられたキャッシュ動作を処理するためです。

MediaPackage チャネルを使用する場合は、オリジンのエンドポイントタイプに対して定義するキャッシュ動作に特定のパスパターンを含める必要があります。たとえば、DASH エンドポイントの場合は、[Path Pattern (パスパターン)] に「*.mpd」と入力します。詳細と具体的な手順については、「AWS Elemental MediaPackage でフォーマットされたライブビデオのストリーミング」を参照してください。

指定したパスは、指定されたディレクトリ内のすべてのファイル、および指定されたディレクトリ以下のサブディレクトリ内のすべてのファイルに対するリクエストに適用されます。CloudFront はパスパターンを評価する際にクエリ文字列や Cookie を考慮しません。たとえば、images ディレクトリに product1 および product2 サブディレクトリが含まれる場合、パスパターン images/*.jpg は、imagesimages/product1、および images/product2 ディレクトリ内のあらゆる .jpg ファイルのリクエストに適用されます。異なるキャッシュ動作を、images/product1 および images ディレクトリのファイルではなく images/product2 ディレクトリのファイルに割り当てる場合、images/product1 用の独立したキャッシュ動作を作成し、そのキャッシュ動作を images ディレクトリ用のキャッシュ動作の上 (前) の位置に移動します。

パスパターンには、以下のワイルドカード文字を使用できます。

  • * は、0 個以上の文字に一致します。

  • ? は、正確に 1 個の文字に一致します。

以下の例を使用して、ワイルドカード文字がどのように機能するかを示します。

パスパターン パスパターンに一致するファイル

*.jpg

すべての .jpg ファイル。

images/*.jpg

images ディレクトリ内、および images ディレクトリ下のサブディレクトリ内のすべての .jpg ファイル。

a*.jpg

  • ファイル名が a で始まるすべての .jpg ファイル (例: apple.jpgappalachian_trail_2012_05_21.jpg)。

  • ファイルパスが a で始まるすべての .jpg ファイル (例: abra/cadabra/magic.jpg)。

a??.jpg

ファイル名が a で始まり、ファイル名の後に正確に他の 2 文字が続くすべての .jpg ファイル (例: ant.jpgabe.jpg)。

*.doc*

ファイル名拡張子が .doc で始まるすべてのファイル (例: .doc.docx.docm ファイル)。この場合、パスパターン *.doc? を使用することはできません。このパスパターンは .doc ファイルのリクエストに適用されないためです。? ワイルドカード文字は正確に 1 個の文字を置き換えるものです。

パスパターンの最大長は 255 文字です。値には以下の文字を含めることができます。

  • A ~ Z、a ~ z

    パスパターンでは大文字と小文字が区別されるので、パスパターン *.jpg はファイル LOGO.JPG には適用されません。

  • 0-9

  • _ - . * $ / ~ " ' @ : +

  • & (& として受け渡しされます)

オリジン (既存のディストリビューションのみ)

既存のオリジンの [Origin ID (オリジン ID)] の値を入力します。これは、リクエスト (http://example.com/logo.jpg など) がキャッシュ動作 (*.jpg) またはデフォルトキャッシュ動作 (*) のパスパターンに一致するときに、CloudFront にリクエストをルーティングさせる宛先となるオリジンです。

ビューワープロトコルポリシー

CloudFront エッジロケーションのコンテンツへのアクセスに使用するビューワーのプロトコルポリシーを選択します。

  • [HTTP and HTTPS (HTTP と HTTPS)]: ビューワーは両方のプロトコルを使用できます。

  • [Redirect HTTP to HTTPS (HTTP を HTTPS にリダイレクト)]: ビューワーは両方のプロトコルを使用できますが、HTTP リクエストは自動的に HTTPS リクエストにリダイレクトされます。

  • [HTTPS Only (HTTPS のみ)]: ビューワーは HTTPS を使用している場合にのみコンテンツにアクセスできます。

詳細については、「 ビューワーと CloudFront との通信で HTTPS を必須にする」を参照してください。

フィールドレベル暗号化

特定のデータフィールドにフィールドレベル暗号化を適用する場合は、ドロップダウンリストからフィールドレベル暗号化の設定を選択します。

詳細については、「フィールドレベル暗号化を使用した機密データの保護」を参照してください。

許可される HTTP メソッド

CloudFront が処理してオリジンに転送する HTTP メソッドを指定します。

  • [GET, HEAD (GET、HEAD)]: CloudFront を使用して、オブジェクトまたはオブジェクトヘッダーのいずれかのみをオリジンから取得できます。

  • [GET, HEAD, OPTIONS (GET、HEAD、OPTIONS)]: CloudFront を使用して、オブジェクト、オブジェクトヘッダー、またはオリジンサーバーがサポートしているオプションのリストのいずれかのみをオリジンから取得できます。

  • [GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE (GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE)]: CloudFront を使用して、オブジェクトを取得、追加、更新、削除、およびオブジェクトヘッダーを取得できます。また、ウェブフォームからのデータの送信など、その他の POST 操作も実行できます。

    注記

    CloudFront は GET リクエストおよび HEAD リクエスト、およびオプションで OPTIONS リクエストに対するレスポンスをキャッシュしますが、CloudFront はそれ以外のメソッドを使用するリクエストに対するレスポンスはキャッシュしません。

ディストリビューションのオリジンとして Amazon S3 バケットを使用し、CloudFront オリジンアクセスアイデンティティを使用する場合、POST リクエストは一部の Amazon S3 リージョンではサポートされていないため、それらリージョンの PUT リクエストでは追加のヘッダーが必要です。詳細については、「署名バージョン 4 のみをサポートする Amazon S3 リージョンでのオリジンアクセスアイデンティティの使用」を参照してください。

重要

[GET, HEAD, OPTIONS (GET、HEAD、OPTIONS)] または [GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE (GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE)] を選択した場合は、望ましくない操作がユーザーによって実行されないように、Amazon S3 バケットまたはカスタムオリジンへのアクセスを制限する必要が生じることがあります。以下の例は、アクセスを制限する方法を示しています。

  • ディストリビューションのオリジンとして Amazon S3 を使用している場合: Amazon S3 へのアクセスを制限するための CloudFront オリジンアクセスアイデンティティを作成し、そのオリジンアクセスアイデンティティにアクセス許可を付与します。たとえば、PUT を使用したいというだけの理由で上記のメソッドを受け付けて転送するように CloudFront を設定する場合は、DELETE リクエストを適切に処理するように Amazon S3 バケットポリシーまたは ACL を引き続き設定する必要があります。詳細については、「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する」を参照してください。

  • カスタムオリジンを使用している場合: すべてのメソッドを処理するようにオリジンサーバーを設定します。たとえば、POST を使用したいというだけの理由で、上記のメソッドを受け付けて転送するように CloudFront を設定する場合は、DELETE リクエストを適切に処理するようにオリジンサーバーを引き続き設定する必要があります。

キャッシュされる HTTP メソッド

ビューワーから OPTIONS リクエストが送信されたときに、オリジンからのレスポンスを CloudFront がキャッシュするかどうかを指定します。CloudFront は、GET および HEAD リクエストに対するレスポンスは常にキャッシュします。

選択されたリクエストヘッダーに基づいたキャッシュ

指定したヘッダーの値に基づいてオブジェクトを CloudFront でキャッシュするかどうかを指定します。

  • [None (improves caching) (なし (キャッシュを改善))] – CloudFront はヘッダー値に基づいたオブジェクトのキャッシュを行いません。

  • [Whitelist (ホワイトリスト)] – CloudFront は、指定されたヘッダー値のみに基づいてオブジェクトをキャッシュします。[Whitelist Headers (ホワイトリストヘッダー)] を使って、CloudFront がキャッシュ対象とするヘッダーを選択します。

  • [All (すべて)] – CloudFront は、このキャッシュ動作に関連付けられているオブジェクトをキャッシュしません。代わりに、CloudFront はすべてのリクエストをオリジンに送信します。(Amazon S3 オリジンには推奨されません。)

選択したオプションにかかわらず、CloudFront は特定のヘッダーをオリジンに転送し、転送するヘッダーに基づいて特定のアクションを実行します。CloudFront がヘッダーの転送を処理する方法の詳細については、「HTTP リクエストヘッダーと CloudFront の動作 (カスタムオリジンおよび S3 オリジン)」を参照してください。

リクエストヘッダーを使用した CloudFront でのキャッシュの設定方法の詳細については、「リクエストヘッダーに基づくコンテンツのキャッシュ」を参照してください。

Whitelist Headers

オブジェクトをキャッシュする際に CloudFront が考慮するヘッダーを指定します。使用可能なヘッダーのリストからヘッダーを選択し、[Add (追加)] を選択します。カスタムヘッダーを転送するには、フィールドにそのヘッダーの名前を入力して [Add Custom (カスタムの追加)] を選択します。

キャッシュ動作ごとにホワイトリストに登録できるヘッダーの数に関する現在の制限について、または制限の引き上げをリクエストするには、「カスタムヘッダーの制限 (ウェブディストリビューションのみ)」を参照してください。

オブジェクトキャッシュ

オリジンサーバーが Cache-Control ヘッダーをオブジェクトに追加して、オブジェクトを CloudFront キャッシュに保持する期間を制御している場合、Cache-Control の値を変更しないときは、[Use Origin Cache Headers (オリジンキャッシュヘッダーの使用)] を選択します。

Cache-Control ヘッダーに関係なくオブジェクトを CloudFront キャッシュに保持する最小および最大期間を指定するには、また、オブジェクトに Cache-Control ヘッダーがないときにオブジェクトを CloudFront キャッシュに保持するデフォルトの期間を指定するには、[Customize (カスタマイズ)] を選択します。次に、[Minimum TTL (最小 TTL)]、[Default TTL (デフォルト TTL)]、[Maximum TTL (最大 TTL)] の各フィールドで値を指定します。

詳細については、「コンテンツがエッジキャッシュに保持される期間の管理 (有効期限)」を参照してください。

最小 TTL

オブジェクトが更新されたかどうかを調べるために CloudFront がオリジンに別のリクエストを送るまでに、オブジェクトを CloudFront キャッシュに保持する最小期間 (秒) を指定します。[Minimum TTL (最小 TTL)] のデフォルト値は 0 (秒) です。

重要

キャッシュ動作のためにすべてのヘッダーをオリジンに転送するように CloudFront を設定した場合、CloudFront は関連付けられたオブジェクトをキャッシュしません。その代わり、CloudFront はそのオブジェクトに関するすべてのリクエストをオリジンに転送します。その構成では、[Minimum TTL (最小 TTL)] の値を 0 にする必要があります。

[Minimum TTL (最小 TTL)] の値を指定するには、[Object Caching (オブジェクトキャッシュ)] 設定で [Customize (カスタマイズ)] オプションを選択する必要があります。

詳細については、「コンテンツがエッジキャッシュに保持される期間の管理 (有効期限)」を参照してください。

最大 TTL

オブジェクトが更新されたかどうかを CloudFront がオリジンにクエリするまでに、オブジェクトを CloudFront キャッシュに保持する最大期間 (秒) を指定します。[Maximum TTL (最大 TTL)] に指定する値は、オリジンが Cache-Control max-ageCache-Control s-maxageExpires などの HTTP ヘッダーをオブジェクトに追加するときにのみ適用されます。詳細については、「コンテンツがエッジキャッシュに保持される期間の管理 (有効期限)」を参照してください。

[Maximum TTL (最大 TTL)] の値を指定するには、[Object Caching (オブジェクトキャッシュ)] 設定で [Customize (カスタマイズ)] オプションを選択する必要があります。

[Maximum TTL (最大 TTL)] のデフォルト値は 31,536,000 (秒)、つまり 1 年です。[Minimum TTL (最小 TTL)] または [Default TTL (デフォルト TTL)] の値を 31,536,000 (秒) より大きい値に変更する場合は、[Maximum TTL (最大 TTL)] のデフォルト値を [Default TTL (デフォルト TTL)] の値に変更します。

デフォルト TTL

オブジェクトが更新されたかどうかを調べるために CloudFront がオリジンに別のリクエストを送るまでオブジェクトを CloudFront キャッシュに保持するデフォルト期間 (秒) を指定します。[Default TTL (デフォルト TTL)] に指定する値は、オリジンが Cache-Control max-ageCache-Control s-maxageExpires などの HTTP ヘッダーをオブジェクトに追加しないときにのみ適用されます。詳細については、「コンテンツがエッジキャッシュに保持される期間の管理 (有効期限)」を参照してください。

[Default TTL (デフォルト TTL)] の値を指定するには、[Object Caching (オブジェクトキャッシュ)] 設定で [Customize (カスタマイズ)] オプションを選択する必要があります。

[Default TTL (デフォルト TTL)] のデフォルト値は 86,400 (秒)、つまり 1 日です。[Minimum TTL (最小 TTL)] の値を 86,400 (秒) より大きい値に変更する場合は、[Default TTL (デフォルト TTL)] のデフォルト値を [Minimum TTL (最小 TTL)] の値に変更します。

Cookie の転送

注記

ウェブサイトエンドポイントとして設定されている場合を除き、Amazon S3 バケットには適用されません。

CloudFront からオリジンサーバーに Cookie を転送するかどうかと、転送する場合にどれを転送するかを指定します。選択された Cookie (Cookie のホワイトリスト) のみを転送するように選択した場合、Cookie 名を [Whitelist Cookies (ホワイトリスト Cookie)] フィールドに入力します。[All (すべて)] を選択した場合、アプリケーションで使用されている Cookie の数に関係なく、CloudFront はすべての Cookie を転送します。

Amazon S3 は、Cookie を処理しません。オリジンに Cookie を転送するとキャッシュ性能が低下します。リクエストを Amazon S3 オリジンに転送するキャッシュ動作の場合は、[Forward Cookies (Cookie の転送)] で [None (なし)] を選択します。

オリジンへの Cookie の転送の詳細については、「Cookie に基づくコンテンツのキャッシュ」を参照してください。

ホワイトリスト Cookie

注記

ウェブサイトエンドポイントとして設定されている場合を除き、Amazon S3 バケットには適用されません。

[Forward Cookies (Cookie の転送)] リストで [Whitelist (ホワイトリスト)] を選択した場合は、このキャッシュ動作に応じて CloudFront がオリジンサーバーに転送する Cookie の名前を [Whitelist Cookies (ホワイトリスト Cookie)] フィールドに入力します。各 Cookie 名を新しい行に入力します。

以下のワイルドカード文字を使用して Cookie 名を指定することができます。

  • * は、Cookie 名に含まれる 0 個以上の文字に一致します。

  • ? は、Cookie 名に含まれる 1 文字に一致します。

たとえば、オブジェクトに対するビューワーリクエストに、次の名前の Cookie が含まれているとします。

userid_member-number

member-number は各ユーザーに割り当てられている一意の値です。各メンバーについて、個別バージョンのオブジェクトを CloudFront でキャッシュするものとします。そのためにすべての Cookie をオリジンに転送することもできますが、ビューワーリクエストには、CloudFront でキャッシュすることが望ましくない Cookie も含まれています。これに代わる方法として、Cookie 名に以下の値を指定できます。その場合、CloudFront は userid_ から始まるすべての Cookie をオリジンに転送します。

userid_*

キャッシュ動作ごとにホワイトリストに登録できる Cookie 名の数に関する現在の制限について、または制限の引き上げをリクエストするには、「ホワイトリスト登録済み Cookie の制限 (ウェブディストリビューションのみ)」を参照してください。

クエリ文字列の転送とキャッシュ

CloudFront は、クエリ文字列パラメータの値に基づいて、コンテンツのさまざまなバージョンをキャッシュできます。次のいずれかのオプションを選択します。

None (Improves Caching)

オリジンがクエリ文字列パラメータの値に関係なくオブジェクトの同じバージョンを返す場合、このオプションを選択します。これにより、CloudFront がキャッシュからリクエストを処理できる可能性が高くなり、パフォーマンスが向上し、オリジンの負荷が低下します。

Forward all, cache based on whitelist

オリジンサーバーが 1 つ以上のクエリ文字列パラメータに基づいてオブジェクトの異なるバージョンを返す場合、このオプションを選択します。次に、キャッシュ条件として CloudFront が使用するパラメータを [クエリ文字列のホワイトリスト] フィールドで指定します。

Forward all, cache based on all

オリジンサーバーがすべてのクエリ文字列パラメータについてオブジェクトの異なるバージョンを返す場合、このオプションを選択します。

パフォーマンスを向上する方法を含む、クエリ文字列パラメータに基づくキャッシュについて詳しくは、「クエリ文字列パラメータに基づくコンテンツのキャッシュ」を参照してください。

クエリ文字列のホワイトリスト

クエリ文字列の転送とキャッシュ で [Forward all, cache based on whitelist (すべて転送 - ホワイトリストに基づいてキャッシュ)] を選択した場合、CloudFront がキャッシュ条件として使用するクエリ文字列パラメータを選択します。

スムーズストリーミング

Microsoft Smooth Streaming 形式のメディアファイルを配信するが、IIS サーバーがない場合は、[Yes (はい)] を選択します。

Microsoft Smooth Streaming 形式のメディアファイルを配信するためのオリジンとして使用する Microsoft IIS サーバーがある場合、または Smooth Streaming メディアファイルを配信しない場合は、[No (いいえ)] を選択します。

注記

[Yes (はい)] を指定した場合でも、他のコンテンツが [Path Pattern (パスパターン)] の値と一致すれば、このキャッシュ動作を使用してそのコンテンツを配信できます。

詳細については、「オンデマンド Microsoft Smooth Streaming の設定」を参照してください。

ビューワーのアクセス制限 (署名付き URL の使用)

このキャッシュ動作の PathPattern に一致するオブジェクトのリクエストでパブリック URL を使用する場合、[No (いいえ)] を選択します。

このキャッシュ動作の PathPattern に一致するオブジェクトのリクエストで署名付き URL を使用する場合、[Yes (はい)] を選択します。次に、署名付き URL の作成に使用する AWS アカウントを指定します。このアカウントは信頼された署名者として知られています。

信頼された署名者の詳細については、「署名付き URL と署名付き Cookie (信頼された署名者) の作成が可能な AWS アカウントの指定」を参照してください。

信頼された署名者

このキャッシュ動作の信頼された署名者として使用する AWS アカウントを選択します。

  • Self: 信頼された署名者として AWS マネジメントコンソール へのサインインに現在使用しているアカウントを使用します。現在、IAM ユーザーとしてサインインしている場合は、関連付けられた AWS アカウントを、信頼された署名者として追加します。

  • Specify Accounts: 信頼された署名者のアカウント番号を [AWS Account Numbers] フィールドに入力します。

署名付き URL を作成するには、AWS アカウント番号に少なくとも 1 つのアクティブな CloudFront キーペアが必要です。

重要

コンテンツの配信で既に使用されているディストリビューションを更新する場合は、オブジェクトの署名付き URL の生成を開始する準備ができたときにのみ、信頼された署名者を追加します。信頼された署名者がディストリビューションに追加されると、ユーザーは、このキャッシュ動作の PathPattern に一致するオブジェクトへのアクセスに、署名付き URL を使用する必要があります。

AWS アカウント番号

現在のアカウントに加えて、または現在のアカウントの代わりに、AWS アカウントを使用して署名付き URL を作成する場合、このフィールドの行ごとに 1 つの AWS アカウント番号を入力します。次の点に注意してください。

  • 指定するアカウントに少なくとも 1 つのアクティブな CloudFront キーペアが必要です。詳細については、「信頼された署名者の CloudFront キーペアを作成する」を参照してください。

  • IAM ユーザーの CloudFront キーペアを作成できないため、信頼された署名者として IAM ユーザーを使用することはできません。

  • アカウントの AWS アカウント番号を取得する方法については、アマゾン ウェブ サービス全般のリファレンス の「セキュリティ認証情報の取得方法」を参照してください。

  • 現在のアカウントのアカウント番号を入力した場合、CloudFront は、自動的に [Self] チェックボックスをオンにして、[AWS Account Numbers] リストからアカウント番号を削除します。

オブジェクトを自動的に圧縮する

ビューワーリクエストのリクエストヘッダーに Accept-Encoding: gzip が含まれる場合に、特定のタイプのファイルを CloudFront で自動的に圧縮するには、[Yes (はい)] を選択します。CloudFront がコンテンツを圧縮する際、ファイルが小さいためダウンロードはより高速に行われ、ウェブページは高速にレンダリングされます。詳細については、「圧縮ファイルの供給」を参照してください。

イベントタイプ

次の CloudFront イベントが 1 つ以上発生したときに Lambda 関数を実行するように選択できます。

  • CloudFront がビューワーからリクエストを受信したとき (ビューワーリクエスト)

  • CloudFront がリクエストをオリジンに転送する前 (オリジンリクエスト)

  • CloudFront がオリジンからレスポンスを受信したとき (オリジンレスポンス)

  • CloudFront がビューワーにレスポンスを返す前 (ビューワーレスポンス)

詳細については、「Lambda 関数をトリガーするために使用する CloudFront イベントを決定する方法」を参照してください。

Lambda 関数 ARN

トリガーを追加する Lambda 関数の Amazon リソースネーム (ARN) を指定します。関数の ARN を取得する方法については、「CloudFront コンソールを使ってトリガーを追加する」の手順のステップ 1 を参照してください。

ディストリビューションの詳細

以下の値はディストリビューション全体に適用されます。

価格クラス

CloudFront サービスに支払う上限価格に対応する価格クラスを選択します。デフォルトでは、CloudFront は、すべての CloudFront リージョンのエッジロケーションからオブジェクトを供給します。

価格クラスの詳細、および選択した価格クラスがディストリビューションの CloudFront パフォーマンスに与える影響の詳細については、「CloudFront ディストリビューションの価格クラスを選択する」を参照してください。価格クラスと CloudFront リージョンのマッピングを含め、CloudFront 料金表の詳細については、「Amazon CloudFront 料金表」を参照してください。

AWS WAF ウェブ ACL

AWS WAF を使用して、指定した条件に基づいてリクエストを許可したりブロックしたりする場合は、このディストリビューションに関連付けられたウェブ ACL を選択します。

AWS WAF は、CloudFront に転送される HTTPS リクエストおよび HTTP をモニタリングするを転送可能にし、コンテンツへのアクセスをコントロール可能にする Web アプリケーションファイアウォールです。クエリ文字列からの実行またはクエリ文字列の値をリクエストする IP アドレスのような、指定した条件に基づいて、CloudFront はリクエストされたコンテンツまたは HTTP 403 ステータスコード (禁止) のリクエストのいずれかに対応します。CloudFront を設定して、リクエストがブロックされたときにカスタムエラーを返すこともできます。AWS WAF の詳細については、AWS WAF 開発者ガイドを参照してください。

代替ドメイン名 (CNAME)

オプション。ディストリビューションを作成するときに CloudFront が割り当てるドメイン名ではなく、オブジェクトの URL に使用するドメイン名を 1 つ以上指定します。たとえば、次のオブジェクトの URL があります。

/images/image.jpg

この URL を次のように表示します。

http://www.example.com/images/image.jpg

次のようには指定しません。

http://d111111abcdef8.cloudfront.net/images/image.jpg

この場合、www.example.com の CNAME を追加します。

重要

www.example.com の CNAME をディストリビューションに追加する場合、DNS サービスを使用して CNAME レコードを作成 (または更新) し、www.example.com のクエリを d111111abcdef8.cloudfront.net にルーティングする必要もあります。ドメインの DNS サービスプロバイダのある CNAME レコードを作成する許可が必要です。通常、これはドメインを所有していることを指しますが、ドメイン所有者向けにアプリケーションを開発している場合にも当てはまります。

ディストリビューションに追加できる代替ドメイン名の数に関する現在の制限について、または制限の引き上げをリクエストするには、「ウェブディストリビューションの一般的な制限」を参照してください。

代替ドメイン名の詳細については、「代替ドメイン名 (CNAME) を追加してカスタム URL を使用する」を参照してください。CloudFront URL の詳細については、「CloudFront でファイルの URL の形式をカスタマイズする」を参照してください。

SSL 証明書

ビューワーが HTTPS を使用してオブジェクトにアクセスするようにする場合は、それをサポートしている設定を選択します。さらに、[Custom SSL Certificate (独自 SSL 証明書)] を選択している場合は、使用する証明書を選択します。

  • [Default CloudFront Certificate (デフォルトの CloudFront 証明書) (*.cloudfront.net)] – オブジェクトの URL で https://d111111abcdef8.cloudfront.net/image1.jpg のような CloudFront ドメイン名を使用する場合は、このオプションを選択します。また、ビューワーが HTTP を使用してオブジェクトにアクセスする場合も、このオプションを選択します。

  • [Custom SSL Certificate (独自 SSL 証明書)] – オブジェクトの URL で https://example.com/image1.jpg のような独自のドメイン名を使用する場合は、このオプションを選択し、使用する証明書を選択します。このリストには、AWS Certificate Manager によって提供された証明書、およびサードパーティーの認証機関から購入して ACM または IAM 証明書ストアにアップロードした証明書を含めることができます。詳細については、「代替ドメイン名と HTTPS の使用」を参照してください。

    この設定を選択した場合、オブジェクト URL でのみ代替ドメイン名を使用することをお勧めします (https://example.com/logo.jpg)。CloudFront のディストリビューションドメイン名 (https://d111111abcdef8.cloudfront.net/logo.jpg) を使用している場合、ビューワーが SNI をサポートしていれば、CloudFront は正常に動作します。しかし、ビューワーが SNI をサポートしていない場合は、[Clients Supported (サポートされるクライアント)] の値に応じてビューワーに次のいずれかの動作が示されます。

    • [All Clients (すべてのクライアント)]: ビューワーが SNI をサポートしていない場合、CloudFront ドメイン名が SSL 証明書のドメイン名と一致していないため、警告が表示されます。

    • [Only Clients that Support Server Name Indication (SNI) (Server Name Indication (SNI) をサポートしているクライアントのみ)]: CloudFront はオブジェクトを返さずにビューワーとの接続を中断します。

Clients Supported (サポートされるクライアント)

代替ドメイン名を指定し、IAM 証明書ストア内の SSL 証明書を指定した場合、CloudFront が HTTPS リクエストを処理する方法を、すべてのクライアントで動作する方法にするか、それともほとんどのクライアントで動作する方法にするかを選択します。

  • [All Clients (すべてのクライアント)]: どのクライアントもコンテンツにアクセスできます。ただし、この機能を使用するには許可を得る必要があり、追加の月額料金が発生します。

  • [Only Clients that Support Server Name Indication (SNI) (Server Name Indication (SNI) をサポートしているクライアントのみ)]: 最新のブラウザはすべて SNI をサポートしているため、コンテンツにアクセスできます。しかし、まだ使用されている一部のブラウザは SNI をサポートしていません。このようなブラウザのユーザーは、他の方法を使用して、たとえばオリジンからオブジェクトを直接取得することで、コンテンツにアクセスする必要があります。

詳細については、「代替ドメイン名と HTTPS の使用」を参照してください。

セキュリティポリシー

HTTPS 接続のために CloudFront が使用するセキュリティポリシーを指定します。セキュリティポリシーは 2 通りの設定を決定します。

  • ビューワーと通信するために CloudFront が使用する最低限の SSL/TLS プロトコール

  • ビューワーに返すコンテンツを暗号化するために CloudFront が使用する暗号化方式

利用可能なセキュリティポリシーは、[SSL Certificate (SSL 証明書)] および [Custom SSL Client Support (カスタム SSL クライアントサポート)] で指定する値によって異なります。

  • [SSL Certificate (SSL 証明書)] が [Default CloudFront Certificate (デフォルトの CloudFront 証明書) (*.cloudfront.net)] である場合、CloudFront は [Security Policy (セキュリティポリシー)] の値を自動的に [TLSv1] に設定します。

  • [SSL Certificate (SSL 証明書)] が [Custom SSL Certificate (独自 SSL 証明書) (example.com)] であり、[Custom SSL Client Support (カスタム SSL クライアントサポート)] が [Only Clients that Support Server Name Indication (SNI) (Server Name Indication (SNI) をサポートしているクライアントのみ)] である場合は、TLSv1 以降を使用する必要があります。ユーザーが TLSv1.1 以降をサポートしていないブラウザまたはデバイスを使用している場合以外は、[TLSv1.1_2016] を選択することをお勧めします。

  • [SSL Certificate (SSL 証明書)] が [Custom SSL Certificate (独自 SSL 証明書) (example.com)] であり、[Custom SSL Client Support (カスタム SSL クライアントサポート)] が [All Clients (すべてのクライアント)] である場合は、[TLSv1] を選択することをお勧めします。この構成では、[TLSv1_2016]、[TLSv1.1_2016]、および [TLSv1.2_2018] のセキュリティポリシーは利用できません。

選択したセキュリティポリシーと CloudFront がビューワーとの通信に使用するプロトコルおよび暗号化方式の関係については、「ビューアと CloudFront 間の通信用にサポートされる SSL/TLS プロトコル」を参照してください。

SSL プロトコルの最低バージョン

セキュリティポリシー」を参照してください。

サポートされる HTTP バージョン

ビューワーが CloudFront との通信に使用する HTTP バージョンを選択します。ビューワーは、CloudFront で使用するよう設定した最新バージョンを使用します。HTTP/2 をサポートしないビューワーは、自動的に以前のバージョンを使用します。

ビューワーと CloudFront が HTTP/2 を使用するには、ビューワーが TLS 1.2 以降と Server Name Identification (SNI) をサポートしている必要があります。

一般的には、CloudFront とビューワーによる HTTP/2 を使った通信を設定するとレイテンシーが短縮されます。また、HTTP/2 の最適化によってパフォーマンスを向上できます。詳細については、「http/2 最適化」でインターネット検索してください。

デフォルトのルートオブジェクト

省略可能。ビューワーがディストリビューション内のオブジェクト (http://www.example.com/product-description.html) ではなくディストリビューションのルート URL (http://www.example.com/) を要求するときに、CloudFront が要求する、オリジンからのオブジェクト (index.html など)。デフォルトのルートオブジェクトを指定すると、ディストリビューションのコンテンツが公開されなくなります。

名前の最大長は 255 文字です。名前には以下の文字を含めることができます。

  • A ~ Z、a ~ z

  • 0-9

  • _ - . * $ / ~ " '

  • & (& として受け渡しされます)

デフォルトのルートオブジェクトを指定する場合、オブジェクト名のみを指定します (例: index.html)。オブジェクト名の前に / を追加しないでください。

詳細については、「デフォルトのルートオブジェクトの指定」を参照してください。

ログ記録

CloudFront がオブジェクトに対する各リクエストの情報をログに記録し、ログファイルを Amazon S3 バケットに保存するかどうか。ログ作成はいつでも有効または無効にできます。ログ作成を有効にしても追加料金はかかりませんが、Amazon S3 バケットにおけるファイルの保存とファイルへのアクセスについては通常の Amazon S3 料金が発生します。ログの削除はいつでも行うことができます。CloudFront アクセスログの詳細については、「アクセスログの設定および使用」を参照してください。

ログ用のバケット

[Logging] で [On] を選択した場合に、CloudFront がアクセスログを保存する Amazon S3 バケット (例: myawslogbucket.s3.amazonaws.com)。ログ作成を有効にした場合、CloudFront はオブジェクトに対する各エンドユーザーリクエストの情報を記録し、ファイルを、指定された Amazon S3 バケットに保存します。ログ作成はいつでも有効または無効にできます。CloudFront アクセスログの詳細については、「アクセスログの設定および使用」を参照してください。

注記

Amazon S3 バケット ACL を取得して更新するための権限が必要です。また、バケットの S3 ACL から FULL_CONTROL が付与される必要があります。これによって、CloudFront から awsdatafeeds アカウントに、バケットにログファイルを保存するための権限が付与されます。詳細については、「ロギングの設定およびログファイルへのアクセスに必要なアクセス許可」を参照してください。

ログのプレフィックス

オプション。[Logging] で [On] を選択した場合、このディストリビューションのアクセスログファイル名の先頭に CloudFront が追加する文字列 (ある場合) を指定します (例: exampleprefix/)。末尾のスラッシュ (/) はオプションですが、ログファイルの参照を容易にするためにこれを使用することをお勧めします。CloudFront アクセスログの詳細については、「アクセスログの設定および使用」を参照してください。

Cookie のログ作成

CloudFront で Cookie をアクセスログに含めるようにするには、[On (オン)] を選択します。Cookie をログに含めるように選択した場合、CloudFront はすべての Cookie をログに記録します。このディストリビューションのキャッシュ動作がどのように構成されているか (オリジンにすべての Cookie を転送するか、Cookie を転送しないか、指定された一連の Coolie を転送するか) は関係ありません。

Amazon S3 は Cookie を処理しません。したがって、ディストリビューションに Amazon EC2 または他のカスタムオリジンも含まれていない限り、[Cookie Logging (Cookie ログ記録)] の値に [Off (オフ)] を選択することをお勧めします。

Cookie の詳細については、「Cookie に基づくコンテンツのキャッシュ」を参照してください。

IPv6 を有効にする

IPv6 は、IP プロトコルの新しいバージョンです。これは IPv4 に今後取って代わるものであり、より大きなアドレス空間が使用されています。CloudFront は IPv4 リクエストに対して常に応答します。CloudFront が、IPv4 の IP アドレス (192.0.2.44 など) からのリクエストおよび IPv6 のアドレス (2001:0db8:85a3:0000:0000:8a2e:0370:7334 など) からのリクエストに応答するようにするには、[Enable IPv6 (IPv6 の有効化)] を選択します。

一般的に、IPv6 ネットワークのユーザーがいてコンテンツにアクセスする場合は、IPv6 を有効にする必要があります。ただし、コンテンツへのアクセスを制限するために署名付き URL または署名付き Cookie を使用していて、コンテンツへのアクセスが可能な IP アドレスを制限する IP アドレスを含む IpAddress パラメータを使用している場合、IPv6 は有効にしません。一部のコンテンツへのアクセスを IP アドレスで制限し、他のコンテンツへのアクセスを制限しない場合 (またはアクセスを制限するが IP アドレスでは行わない場合)、2 つのディストリビューションを作成します。カスタムポリシーを使用して署名付き URL を作成する方法については、カスタムポリシーを使用して署名付き URL を作成するを参照してください。カスタムポリシーを使用して署名付き Cookie を作成する方法については、カスタムポリシーを使用した署名付き Cookie の設定を参照してください。

CloudFront ディストリビューションにトラフィックをルーティングするために Route 53 エイリアスリソースレコードセットを使用していて、次の両方に該当する場合は、2 つ目のエイリアスリソースレコードセットを作成する必要があります。

  • ディストリビューションで IPv6 を有効にする

  • オブジェクトの URL で代替ドメイン名を使用している

詳細については、Amazon Route 53 開発者ガイド の「ドメイン名を使用したトラフィックの Amazon CloudFront ウェブディストリビューションへのルーティング」を参照してください。

Route 53 または別の DNS サービスで CNAME リソースレコードセットを作成した場合、変更を行う必要はありません。ビューワーリクエストの IP アドレスフォーマットに関係なく、CNAME レコードはトラフィックをディストリビューションにルーティングします。

IPv6 と CloudFront アクセスログを有効にしている場合は、c-ip 列に IPv4 形式と IPv6 形式の値が含まれます。詳細については、「アクセスログの設定および使用」を参照してください。

注記

お客様に対する優れた可用性を維持するために、データによって IPv4 がより優れたユーザーエクスペリエンスを提供することが判明している場合、CloudFront は IPv4 を使用してビューワーリクエストに応じます。CloudFront が IPv6 で供給しているリクエストの割合を知るには、ディストリビューションで CloudFront ログ記録を有効にし、リクエストを行ったビューワーの IP アドレスが含まれている c-ip 列を解析します。この割合 (%) は時間とともに大きくなりますが、IPv6 は世界中のすべてのビューワーネットワークでサポートされているわけではないため、過半数のトラフィックになることはないでしょう。ビューワーネットワークによっては IPv6 が十分にサポートされていますが、IPv6 をまったくサポートしないものもあります(ビューワーネットワークは、ホームインターネットやワイヤレスキャリアに似ています)。

IPv6 のサポートの詳細については、「CloudFront に関するよくある質問」を参照してください。アクセスログを有効にする方法の詳細については、ログ記録ログ用のバケット、および ログのプレフィックス のフィールドを参照してください。

Comment

オプション。ディストリビューションを作成するときに、最大で 128 文字のコメントを含めることができます。コメントの更新はいつでも行うことができます。

ディストリビューションの状態

ディストリビューションがデプロイされた後にディストリビューションを有効または無効のどちらにするかを示します。

  • Enabled (有効): ディストリビューションが完全にデプロイされると、ディストリビューションのドメイン名を使用するリンクをデプロイでき、ユーザーはコンテンツを取得できます。ディストリビューションを有効にすると、CloudFront はそのディストリビューションに関連付けられたドメイン名を使用するコンテンツへのエンドユーザーリクエストを受け付けて処理することができます。

    CloudFront ディストリビューションの作成、変更、削除を行った場合、その変更が CloudFront データベースに伝達されるまで時間がかかります。変更直後に出したディストリビューションに関する情報のリクエストには、変更が反映されていない可能性があります。通常、伝達は数分以内で完了しますが、システムの高負荷またはネットワークパーティションによっては、それより時間がかかる可能性があります。

  • Disabled (無効): ディストリビューションがデプロイされていて、使用準備ができていても、ユーザーはディストリビューションを使用できません。ディストリビューションが無効である場合、CloudFront はそのディストリビューションに関連付けられているドメイン名を使用しているエンドユーザーリクエストを受け付けません。(ディストリビューションの構成を更新することで) ディストリビューションを無効から有効に切り替えるまで、誰もディストリビューションを使用できません。

ディストリビューションの無効と有効は何度でも切り替えることができます。ディストリビューションの構成を更新するプロセスに従います。詳細については、「ディストリビューションの更新」を参照してください。

Custom Error Pages (カスタムエラーページ) と Error Caching (エラーキャッシュ)

Amazon S3 またはカスタムオリジンが HTTP 4xx または 5xx のステータスコードを CloudFront に返した場合に、CloudFront がビューワーにオブジェクト (HTML ファイルなど) を返すようにできます。オリジンまたはカスタムエラーページからのエラーレスポンスを CloudFront エッジキャッシュにキャッシュする期間を指定することもできます。詳細については、「特定の HTTP ステータスコードのカスタムエラーページを作成する」を参照してください。

注記

以下の値は [Create Distribution] ウィザードに含まれていないため、ディストリビューションを更新するときにのみ、カスタムエラーページを構成することができます。

エラーコード

CloudFront がカスタムエラーページを返す HTTP ステータスコード。CloudFront がキャッシュする HTTP ステータスコードの全部または一部に対してカスタムエラーページを返すように、または全く返さないように、CloudFront を構成できます。

Response Page Path (レスポンスページのパス)

[Error Code (エラーコード)] で指定した HTTP ステータスコード (403 など) がオリジンから返されたときに、CloudFront がビューワーに返すカスタムエラーページのパス (例: /4xx-errors/403-forbidden.html)。オブジェクトとカスタムエラーページを別の場所に保存する場合は、次の状況に該当するときに適用されるキャッシュ動作をディストリビューションに組み込む必要があります。

  • [Path Pattern (パスパターン)] の値が、カスタムエラーメッセージのパスと一致している。たとえば、4xx エラー用のカスタムエラーページを Amazon S3 バケットの /4xx-errors というディレクトリに保存しているとします。このとき、パスパターンによってカスタムエラーページのリクエストのルーティング先である場所に対するキャッシュ動作を、ディストリビューションに組み込む必要があります (例: /4xx-errors/*)。

  • [Origin (オリジン)] の値は、カスタムエラーページが含まれているオリジンの [Origin ID (オリジン ID)] の値を指定しています。

Response Code (応答コード)

CloudFront からカスタムエラーページとともにビューワーに返す HTTP ステータスコード。

Error Caching Minimum TTL (エラーキャッシュ最小 TTL)

CloudFront がオリジンサーバーからのエラーレスポンスをキャッシュする最小時間。

制限

特定の国のユーザーをコンテンツにアクセスできなくする必要がある場合は、ホワイトリストに指定した国のユーザーだけにコンテンツへのアクセスを許可するか、またはブラックリストに指定した国のユーザーにはコンテンツへのアクセスを許可しないように、CloudFront ディストリビューションを設定できます。詳細については、「コンテンツの地理的ディストリビューションの制限」を参照してください。

注記

以下の値は [Create Distribution] ウィザードに含まれていないため、ディストリビューションを更新するときにのみ、地域制限を構成できます。

Enable Geo Restriction (地域制限の有効化)

特定の国のユーザーをコンテンツにアクセスできなくするかどうか。地域制限の構成に追加料金は発生しません。

Restriction Type (制限タイプ)

どの国のユーザーがコンテンツにアクセスできるかを指定する方法。

  • Whitelist (ホワイトリスト): [Countries (国)] リストには、その国のユーザーはコンテンツにアクセスできると指定するすべての国が含まれます。

  • Blacklist (ブラックリスト): [Countries (国)] リストには、その国のユーザーはコンテンツにアクセスできないと指定するすべての国が含まれます。

Countries (国)

ホワイトリストまたはブラックリストに追加する国。国を追加するには、左のリストで国を選択して、[Add (追加)] を選択します。次の点に注意してください。

  • 連続する複数の国を追加するには、最初の国を選択し、Shift キーを押したまま最後の国を選択してから [Add (追加)] を選択します。

  • 連続しない複数の国を追加するには、最初の国を選択し、Ctrl キーを押したまま残りの国を選択してから [Add (追加)] を選択します。

  • 左のリストで国を見つけるには、国のフルネームの最初の数文字を入力します。

  • 各国名の前にある 2 文字のコードは、CloudFront API を使用してディストリビューションを作成または更新する場合に入力する値です。国際標準化機構の国コードが使用されています。コード順および国順に並べ替えることのできる使いやすい一覧については、Wikipedia の ISO 3166-1 alpha-2 の項目を参照してください。