ディストリビューション設定リファレンス - Amazon CloudFront

ディストリビューション設定リファレンス

CloudFront コンソールを使用して新しいディストリビューションの作成や、既存のディストリビューションの更新を行う場合、以下の値を指定します。

CloudFront コンソールを使用してディストリビューションを作成または更新する方法の詳細については、「ディストリビューションを作成する」または「ディストリビューションを更新する」を参照してください。

オリジンの設定

CloudFront コンソールを使用してディストリビューションを作成または更新する場合、1 つ以上のロケーションに関する情報を指定します。これは、オリジンと呼ばれるものであり、ウェブコンテンツのオリジナルバージョンを保存する場所です。CloudFront はオリジンからウェブコンテンツを取得し、世界中のエッジサーバーネットワークを経由してビューワーにウェブコンテンツを供給します。

ディストリビューションに対して作成できるオリジンの現在の最大数について、またはクォータの引き上げを要求するには、「ディストリビューションの一般的なクォータ」を参照してください。

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

重要

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

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

オリジンドメイン

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

  • Amazon S3 バケットDOC-EXAMPLE-BUCKET.s3.us-west-2.amazonaws.com

    注記

    S3 バケットを最近作成した場合、CloudFront ディストリビューションは最大 24 時間以内に HTTP 307 Temporary Redirect レスポンスを返す可能性があります。S3 バケット名がすべての AWS リージョンに反映されるまでに、最大 24 時間かかることがあります。反映が完了すると、ディストリビューションは自動的にこれらのリダイレクトレスポンスの送信を停止します。何もする必要はありません。詳細については、「Why am I getting an HTTP 307 Temporary Redirect response from Amazon S3?」と「一時的なリクエストのリダイレクト」を参照してください。

  • ウェブサイトとして設定された Amazon S3 バケットDOC-EXAMPLE-BUCKET.s3-website.us-west-2.amazonaws.com

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

  • MediaPackage エンドポイントexamplemediapackage.mediapackage.us-west-1.amazonaws.com

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

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

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

[Origin Domain Name] (オリジンドメイン名) フィールドでドメイン名を選択するか、名前を入力します。ドメイン名では、大文字と小文字が区別されません。

オリジンが Amazon S3 バケットの場合は、次の点に注意してください。

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

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

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

    bucket-name.s3.region.amazonaws.com

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

    bucket-name.s3.us-east-1.amazonaws.com

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

重要

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

オリジンの [Origin domain] (オリジンドメイン) の値を変更すると、CloudFront は CloudFront エッジロケーションに対する変更の複製を直ちに開始します。該当するエッジロケーションでディストリビューション構成が更新されるまで、CloudFront はリクエストを以前のオリジンに引き続き転送します。該当のエッジロケーションでディストリビューション構成が更新されると、CloudFront は新しいオリジンへのリクエストの転送を直ちに開始します。

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

プロトコル (カスタムオリジンのみ)

注記

これは、カスタムオリジンにのみ適用されます。

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

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

  • [HTTP only] (HTTP のみ): CloudFront は HTTP のみを使用してオリジンにアクセスします。

    重要

    Amazon S3 は静的ウェブサイトホスティングエンドポイントをサポートしていないため、オリジンが Amazon S3 の静的ウェブサイトホスティングエンドポイントの場合、[HTTPS only] (HTTP のみ) がデフォルト設定です。CloudFront コンソールは、エンドポイントをホストする Amazon S3 の静的ウェブサイトのこの設定の変更をサポートしていません。

  • [HTTPS only] (HTTPS のみ): CloudFront は HTTPS のみを使用してオリジンにアクセスします。

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

    重要

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

HTTP ポート

注記

これは、カスタムオリジンにのみ適用されます。

(オプション) カスタムオリジンがリスンする HTTP ポートを指定できます。有効な値には、ポート 80、443、および 1024~65535 が含まれます。デフォルト値はポート 80 です。

重要

オリジンが Amazon S3 の静的ウェブサイトホスティングエンドポイントの場合、ポート 80 がデフォルト設定です。Amazon S3 は、静的ウェブサイトホスティングエンドポイントではポート 80 のみサポートするためです。CloudFront コンソールは、エンドポイントをホストする Amazon S3 の静的ウェブサイトのこの設定の変更をサポートしていません。

HTTPS ポート

注記

これは、カスタムオリジンにのみ適用されます。

(オプション) カスタムオリジンがリスンする HTTPS ポートを指定できます。有効な値には、ポート 80、443、および 1024~65535 が含まれます。デフォルト値はポート 443 です。[Protocol] (プロトコル) は、[HTTP only] (HTTP のみ) に設定されます。[HTTPS port] (HTTPS ポート) の値を指定することはできません。

最小限のオリジン SSL プロトコル

注記

これは、カスタムオリジンにのみ適用されます。

オリジンに HTTPS 接続を設立する場合には、CloudFront が使用できる最小限の TLS/SSL プロトコルを選択します。より低い TLS プロトコルは安全性が低いため、オリジンがサポートする最新の TLS を使用することが推奨されます。[Protocol] (プロトコル) は、[HTTP only] (HTTP のみ) に設定されます。[Minimum origin SSL protocol] (最小限のオリジン SSL プロトコル) の値を指定することはできません。

CloudFront が使用する TLS/SSL プロトコルを CloudFront API を使用して設定する場合は、最小プロトコルを設定することはできません。代わりに、CloudFront がオリジンで使用できるすべての TLS/SSL プロトコルを指定します。詳細については、Amazon CloudFront API リファレンスの「OriginSslProtocols」を参照してください。

オリジンのパス

CloudFront がオリジンのディレクトリにコンテンツがリクエストされるようにするには、スラッシュ (/) 以降のディレクトリパスを入力します。CloudFront は、[Origin domain] (オリジンドメイン) の値にディレクトリ名を追加します。例えば、cf-origin.example.com/production/images などです。パスの末尾にはスラッシュ (/) を付けないでください。

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

  • [Origin domain] (オリジンドメイン) - DOC-EXAMPLE-BUCKET と名前の付いた Amazon S3 バケット

  • オリジンのパス - /production

  • 代替ドメイン名 (CNAME)example.com

ユーザーがブラウザに example.com/index.html と入力すると、CloudFront が DOC-EXAMPLE-BUCKET/production/index.html のリクエストを Amazon S3 に送信します。

ユーザーがブラウザに example.com/acme/index.html と入力すると、CloudFront が DOC-EXAMPLE-BUCKET/production/acme/index.html のリクエストを Amazon S3 に送信します。

名前

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

オリジンアクセス (Amazon S3 オリジンのみ)

注記

これは、Amazon S3 バケットオリジン (S3 静的ウェブサイトエンドポイントを使用していないオリジン) にのみ適用されます。

Amazon S3 バケットオリジンへのアクセスを特定の CloudFront ディストリビューションのみに制限できるようにする場合は、[オリジンアクセスコントロール設定 (推奨)] を選択します。

Amazon S3 バケットオリジンがパブリックにアクセス可能な場合は、[パブリック] を選択します。

詳しくは、「Amazon Simple Storage Service オリジンへのアクセスを制限する」を参照してください。

CloudFront URL のみ使用してカスタムオリジン内のオブジェクトにアクセスするよう要求する方法の詳細については、「カスタムオリジンのファイルへのアクセスを制限する」を参照してください。

カスタムヘッダーを追加する

CloudFront がリクエストをオリジンに転送するごとにカスタムヘッダーを追加するようにする場合は、ヘッダー名とその値を指定します。詳細については、「オリジンリクエストにカスタムヘッダーを追加する」を参照してください。

現在、追加できるカスタムヘッダーの最大数、カスタムヘッダー名と値の最大長、すべてのヘッダー名と値の全長の最大長については、クォータ を参照してください。

Origin Shield を有効にする

[Yes] (はい) を選択して、CloudFront の Origin Shield を有効にします。Origin Shield の詳細については、Amazon CloudFront Origin Shield の使用 を参照してください。

接続の試行

CloudFront がオリジンへの接続を試行する回数を設定できます。試行回数として 1、2、または 3 を指定できます。デフォルト値 (特に指定しない場合) は 3 です。

この設定を [Connection timeout] (接続タイムアウト) とともに使用すると、セカンダリオリジンに接続しようとしたり、ビューワーにエラーレスポンスを返したりするまでに CloudFront が待機する時間の長さを指定できます。デフォルトでは、CloudFront はセカンダリオリジンへの接続を試行したり、エラーレスポンスを返したりする前に 30 秒 (それぞれ 10 秒間の試行が 3 回) 待機します。試行回数を減らすか、接続タイムアウトを短くするか、その両方を行うことで、この時間を短縮できます。

接続試行が指定した回数失敗した場合、CloudFront は次のいずれかを実行します。

  • オリジンがオリジングループの一部である場合、CloudFront はセカンダリオリジンへの接続を試みます。セカンダリオリジンへの接続試行が指定された回数失敗した場合、CloudFront はビューワーにエラーレスポンスを返します。

  • オリジンがオリジングループの一部でない場合、CloudFront はビューワーにエラーレスポンスを返します。

カスタムオリジン (静的ウェブサイトホスティングで設定された Amazon S3 バケットを含む) では、この設定は、CloudFront がオリジンからレスポンスを待機する回数も指定します。詳細については、「応答タイムアウト (カスタムオリジンのみ)」を参照してください。

接続タイムアウト

接続タイムアウトは、オリジンへの接続を確立しようとしたときに CloudFront が待機する秒数です。1 ~ 10 (両端の値を含む) の秒数を指定できます。デフォルトのタイムアウト (特に指定しない場合) は 10 秒です。

この設定を [Connection attempts] (接続の試行) とともに使用すると、セカンダリオリジンに接続しようとしたり、ビューワーにエラーレスポンスを返したりするまでに CloudFront が待機する時間の長さを指定できます。デフォルトでは、CloudFront はセカンダリオリジンへの接続を試行したり、エラーレスポンスを返したりする前に 30 秒 (それぞれ 10 秒間の試行が 3 回) 待機します。試行回数を減らすか、接続タイムアウトを短くするか、その両方を行うことで、この時間を短縮できます。

CloudFront が指定した秒数以内にオリジンへの接続を確立しない場合、CloudFront は次のいずれかを実行します。

  • 指定した [Connection attempts] (接続の試行) が 1 を超える場合、CloudFront は接続の確立を再試行します。CloudFront は、[Connection attempts] (接続の試行) の値に従って最大 3 回試行します。

  • すべての接続試行が失敗した場合で、オリジンがオリジングループの一部である場合、CloudFront はセカンダリオリジンへの接続を試みます。セカンダリオリジンへの接続試行が指定された回数失敗した場合、CloudFront はビューワーにエラーレスポンスを返します。

  • すべての接続試行が失敗した場合で、オリジンがオリジングループの一部でない場合、CloudFront はエラーレスポンスをビューワーに返します。

応答タイムアウト (カスタムオリジンのみ)

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

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

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

ヒント

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

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

  • GET および HEAD リクエスト ― 応答タイムアウトの期間内にオリジンが応答しない場合、または応答を停止した場合、CloudFront は接続を中断します。CloudFront は 接続の試行 の値に従って接続を再試行します。

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

キープアライブタイムアウト (カスタムオリジンのみ)

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

注記

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

レスポンスとキープアライブのタイムアウトクォータ

注記

これは、カスタムオリジンにのみ適用されます。

AWS アカウント についてタイムアウトの増加をリクエストした後、ディストリビューションオリジンを更新して、必要なレスポンスタイムアウト値とキープアライブタイムアウト値になるようにします。アカウントのクォータを増やしても、オリジンは自動的に更新されません。例えば、Lambda@Edge 関数を使用してキープアライブタイムアウトを 90 秒に設定する場合、オリジンにはすでに 90 秒以上のキープアライブタイムアウトが必要です。そうしないと、Lambda@Edge 関数の実行に失敗することがあります。

ディストリビューションクォータの詳細については、「ディストリビューションの一般的なクォータ」を参照してください。

キャッシュ動作の設定

キャッシュ動作を設定すると、ウェブサイトにあるファイルの特定の URL パスパターンに応じてさまざまな CloudFront 機能を設定できます。たとえば、CloudFront のオリジンサーバーとして使用しているウェブサーバーの .jpg ディレクトリ内にあるすべての images ファイルに 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 の動作は先頭のスラッシュ (/) の有無で変化しません。パスの先頭に / を指定しなくても、この文字は自動的に暗黙で使用されます。CloudFront は、先頭に / があってもなくても、パスを同じように扱います。例えば、CloudFront は /*product.jpg*product.jpg と同じように扱います。

ファイル 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

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

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

パスの正規化

CloudFront は RFC 3986 に従って URI パスを正規化し、そのパスを正しいキャッシュビヘイビアと照合します。キャッシュビヘイビアが一致すると、CloudFront は未加工の URI パスをオリジンに送信します。一致しない場合、リクエストは代わりにデフォルトのキャッシュビヘイビアと照合されます。

複数のスラッシュ (//) やピリオド (..) など、一部の文字は正規化されてパスから削除されます。これにより、CloudFront が使用する URL が意図したキャッシュビヘイビアに合わせて変更される場合があります。

キャッシュビヘイビアの /a/b* パスと /a* パスを指定します。

  • /a/b?c=1 パスを送信するビューワーは、/a/b* キャッシュビヘイビアと一致します。

  • /a/b/..?c=1 パスを送信するビューワーは、/a* キャッシュビヘイビアと一致します。

パスの正規化を回避するには、リクエストパスまたはキャッシュビヘイビアのパスパターンを更新できます。

オリジンまたはオリジングループ

この設定は、既存のディストリビューションのキャッシュ動作を作成または更新する場合のみ適用されます。

既存のオリジンまたはオリジングループの値を入力します。これは、リクエスト (https://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]: CloudFront を使用して、オリジンからのオブジェクトの取得またはオブジェクトヘッダーの取得のみを行うことができます。

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

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

    注記

    CloudFront は、GET リクエスト、HEAD リクエスト、および (オプションで) OPTIONS リクエストに対する応答をキャッシュします。OPTIONS リクエストへのレスポンスは、GET および HEAD リクエストへのレスポンスとは別にキャッシュされます (OPTIONS メソッドは、OPTIONS リクエストの [cache key] (キャッシュキー) 内にあります)。CloudFront はその他のメソッドを使用するリクエストへのレスポンスをキャッシュしません。

重要

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

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

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

フィールドレベル暗号化の設定

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

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

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

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

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

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

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

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

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

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

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

許可リストヘッダー

これらの設定は、[選択されたリクエストヘッダーに基づくキャッシュ] で [許可リスト] を選択した場合にのみ適用されます。

オブジェクトをキャッシュする際に 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 キャッシュに保持しておきたい最小時間 (秒単位) を指定します。

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

最大 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 名を [許可リスト Cookie] フィールドに入力します。[All (すべて)] を選択した場合、アプリケーションで使用されている Cookie の数に関係なく、CloudFront はすべての Cookie を転送します。

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

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

許可リスト Cookie

注記

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

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

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

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

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

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

userid_member-number

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

userid_*

キャッシュ動作ごとに許可リストに追加できる Cookie 名の現在の最大数、またはクォータの引き上げ (以前は制限と呼ばれていました) を要求する Cookie 名の最大数については、「Cookie のクォータ (従来のキャッシュ設定)」を参照してください。

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

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

None (Improves Caching)

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

すべて転送、許可リストに基づいてキャッシュ

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

Forward all, cache based on all

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

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

クエリ文字列の許可リスト

この設定は、クエリ文字列の転送とキャッシュ の [すべて転送、許可リストに基づいてキャッシュ] を選択した場合にのみ適用されます。CloudFront によってキャッシュの基準として使用されるクエリ文字列パラメータを指定できます。

スムーズストリーミング

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

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

注記

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

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

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

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

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

信頼された署名者の詳細については、「署名付き URL と署名付き Cookie を作成できる署名者を指定する」を参照してください。

信頼された署名者

この設定は、[ビューワーのアクセスを制限 (署名付き URL または署名付き Cookie の使用)] で [はい] を選択した場合にのみ適用されます。

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

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

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

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

重要

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

AWS アカウント番号

この設定は、[信頼された署名者] で [アカウントを指定] を選択した場合にのみ適用されます。

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

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

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

  • アカウントの AWS アカウント番号を取得する方法については、「Amazon Web Services 全般のリファレンス」の「AWS アカウント ID」を参照してください。

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

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

ビューワーが圧縮コンテンツをサポートしている場合に、特定のタイプのファイルを CloudFront で自動的に圧縮するには、[Yes (はい)] を選択します。CloudFront がコンテンツを圧縮すると、ファイルが小さくなるため、ダウンロードが速くなります。また、ユーザーに対するウェブページのレンダリングが高速化されます。詳細については、「圧縮ファイルを供給する」を参照してください。

CloudFront イベント

この設定は、Lambda 関数の関連付けに適用されます。

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

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

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

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

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

詳細については、「どの CloudFront イベントを使用して Lambda@Edge 関数をトリガーするかを決定する」を参照してください。

Lambda 関数の ARN

この設定は、Lambda 関数の関連付けに適用されます。

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

本文を含める

この設定は、Lambda 関数の関連付けに適用されます。

詳細については、「ボディを含める」を参照してください。

ディストリビューションの設定

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

価格クラス

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

料金クラスと、選択した料金クラスがディストリビューションの CloudFront パフォーマンスに与える影響の詳細については、「CloudFront の料金」を参照してください。

AWS WAF ウェブ ACL

CloudFront ディストリビューションは、ウェブアプリケーションと API を保護してリクエストがサーバーに到達する前にブロックできるようにするウェブアプリケーションファイアウォールである AWS WAF で保護できます。CloudFront ディストリビューションを作成または編集するときに、ディストリビューションで AWS WAF を有効にすることができます。

オプションで、後で AWS WAF コンソール (https://console.aws.amazon.com/wafv2/) から、アプリケーションに固有の他の脅威に対する追加のセキュリティ保護を設定できます。

AWS WAF の詳細については、AWS WAF 開発者ガイドを参照してください。

代替ドメイン名 (CNAME)

オプション。ディストリビューションを作成するときに CloudFront が割り当てるドメイン名ではなく、オブジェクトの URL に使用する 1 つ以上のドメイン名を指定します。ドメイン名を所有しているか、あるいはこのドメイン名を使用する許可があることが必要です。この許可は、SSL/TLS 証明書を追加することで検証します。

たとえば、次のオブジェクトの URL があります。

/images/image.jpg

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

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

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

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

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

重要

ディストリビューションに www.example.com の CNAME を追加する場合、さらに以下を実行する必要があります。

  • DNS サービスを使用して CNAME レコードを作成 (または更新) して、www.example.com のクエリを d111111abcdef8.cloudfront.net にルーティングします。

  • ディストリビューションに追加するドメイン名 (CNAME) が対象の信頼される認証機関 (CA) から証明書を CloudFront に追加して、このドメイン名を使用する許可を検証します。

ドメインの DNS サービスプロバイダーがある CNAME レコードを作成する許可が必要です。通常、これはドメインを所有している、またはドメイン所有者向けにアプリケーションを開発していることを示します。

ディストリビューションに対して作成できる代替ドメイン名の現在の最大数、またはクォータの引き上げを要求する代替ドメイン名の最大数については、「ディストリビューションの一般的なクォータ」を参照してください。

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

SSL 証明書

ディストリビューションで使用する代替ドメイン名を指定した場合は、[Custom SSL Certificate (カスタム SSL 証明書)] を選択してこの代替ドメイン名を使用する許可を検証し、これを対象とする証明書を選択します。ビューワーが HTTPS を使用してオブジェクトにアクセスするようにする場合は、それをサポートしている設定を選択します。

注記

カスタム SSL 証明書を指定する前に、有効な代替ドメイン名を指定する必要があります。詳細については、代替ドメイン名を使用するための要件および代替ドメイン名と HTTPS を使用するを参照してください。

  • デフォルトの CloudFront 証明書 (*.cloudfront.net) – オブジェクトの URL で https://d111111abcdef8.cloudfront.net/image1.jpg のような CloudFront ドメイン名を使用する場合は、このオプションを選択します。

  • 独自 SSL 証明書 – オブジェクトの URL で独自のドメイン名を代替ドメイン名として使用する場合 (https://example.com/image1.jpg など)、このオプションを選択します。次に、代替ドメイン名を対象とする証明書を使用するために選択します。証明書のリストには、次のいずれかを含めることができます。

    • AWS Certificate Manager から提供される証明書

    • サードパーティー認証機関から購入して ACM にアップロードした証明書

    • サードパーティー認証機関から購入して IAM 証明書ストアにアップロードした証明書

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

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

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

独自 SSL クライアントのサポート

[SSL 証明書] で [カスタム SSL 証明書 (example.com)] を選択した場合にのみ適用されます。ディストリビューションに 1 つ以上の代替ドメイン名と独自 SSL 証明書を指定した場合は、CloudFront が HTTPS リクエストを処理する方法を選択します。

  • [Clients that Support Server Name Indication (SNI) - (Recommended) (Server Name Indication (SNI) をサポートするクライアント - (推奨))] – この設定では、ほとんどすべての最新のウェブブラウザとクライアントは、SNI をサポートしているため、ディストリビューションに接続できます。ただし、一部のビューワーは SNI をサポートしていない古いウェブブラウザやクライアントを使用している可能性があります。つまり、一部のビューワーはディストリビューションに接続できません。

    CloudFront API を使用してこの設定を適用するには、SSLSupportMethod フィールドで sni-only を指定します。AWS CloudFormation では、このフィールドの名前は SslSupportMethod です (大文字と小文字の変更に注意してください)。

  • [Legacy Clients Support (レガシークライアントサポート)] – この設定では、SNI をサポートしていない古いウェブブラウザとクライアントはディストリビューションに接続できます。ただし、この設定では、追加の月額料金が発生します。正確な価格については、[Amazon CloudFront Pricing (Amazon CloudFront の料金)] ページに移動し、[Dedicated IP custom SSL (専用 IP 独自 SSL)] のページを検索します。

    CloudFront API を使用してこの設定を適用するには、SSLSupportMethod フィールドで vip を指定します。AWS CloudFormation では、このフィールドの名前は SslSupportMethod です (大文字と小文字の変更に注意してください)。

詳細については、「CloudFront で HTTPS リクエストを処理する方法を選択する」を参照してください。

セキュリティポリシー (SSL/TLS の最小バージョン)

CloudFront がビューワー (クライアント) との HTTPS 接続に使用するセキュリティポリシーを指定します。セキュリティポリシーは 2 通りの設定を決定します。

  • CloudFront でビューワーとの通信に使用する最小の SSL/TLS プロトコル。

  • ビューワーに返すコンテンツを暗号化するために CloudFront で使用できる暗号。

セキュリティポリシー (各ポリシーに含まれるプロトコルや暗号など) の詳細については、「ビューワーと CloudFront との間でサポートされているプロトコルと暗号」を参照してください。

利用可能なセキュリティポリシーは、[SSL Certificate (SSL 証明書)] および [Custom SSL Client Support (独自 SSL クライアントサポート)] に指定する値によって異なります (CloudFront API では CloudFrontDefaultCertificate および SSLSupportMethod が該当します)。

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

  • [SSL Certificate] (SSL 証明書) が [Custom SSL Certificate (example.com)] (カスタム SSL 証明書) で、かつ [Custom SSL Client Support] (カスタム SSL クライアントサポート) が [Clients that Support Server Name Indication (SNI) - (Recommended)] (Server Name Indication (SNI) をサポートするクライアント) - (推奨)、(つまり API で CloudFrontDefaultCertificatefalse かつ SSLSupportMethodsni-only である場合) 次のセキュリティポリシーから選択できます。

    • TLSv1.2_2021

    • TLSv1.2_2019

    • TLSv1.2_2018

    • TLSv1.1_2016

    • TLSv1_2016

    • TLSv1

  • [SSL Certificate] (SSL 証明書) が [Custom SSL Certificate (example.com)] (カスタム SSL 証明書) で、かつ [Custom SSL Client Support] (カスタム SSL クライアントサポート) が [Legacy Clients Support] (レガシークライアントサポート)、(つまり API で CloudFrontDefaultCertificatefalse かつ SSLSupportMethodvip である場合) 次のセキュリティポリシーから選択できます。

    • TLSv1

    • SSLv3

    この設定では、TLSv1.2_2021、TLSv1.2_2019、TLSv1.2_2018、TLSv1.1_2016、および TLSv1_2016 の各セキュリティポリシーを CloudFront コンソールまたは API で使用することはできません。これらのセキュリティポリシーのいずれかを使用する場合は、以下のオプションを指定できます。

    • ディストリビューションが専用 IP アドレスを使用したレガシークライアントサポートを必要としているかどうかを評価します。ビューワーが [Server Name Indication (SNI)] (Server Name Indication (SNI)) をサポートしている場合は、ディストリビューションの [Custom SSL Client Support] (カスタム SSL クライアントサポート) の設定を [Clients that Support Server Name Indication (SNI)] (Server Name Indication (SNI)) をサポートするクライアント に更新 (API で SSLSupportMethodsni-only に設定する) することをお勧めします。これにより、利用可能な TLS セキュリティポリシーのいずれでも使用できます。また、CloudFront の料金も削減できます。

    • 専用 IP アドレスを使用するレガシークライアントのサポートを維持する必要がある場合は、AWS サポートセンターでケースを作成することによって、他の TLS セキュリティポリシー (TLSv1.2_2021、TLSv1.2_2019、TLSv1.2_2018、TLSv1.1_2016、または TLSv1_2016) のいずれかをリクエストできます。

      注記

      AWS サポートに連絡してこの変更をリクエストする前に、以下の点を考慮してください。

      • これらのセキュリティポリシー (TLSv1.2_2021、TLSv1.2_2019、TLSv1.2_2018、TLSv1.1_2016、または TLSv1_2016) のいずれかをレガシークライアントサポートディストリビューションに追加すると、セキュリティポリシーが AWS アカウントのすべてのレガシークライアントサポートディストリビューションに対する SNI 以外のすべてのビューワーリクエストに適用されます。ただし、ビューワーが、レガシークライアントサポートを使用するディストリビューションに SNI リクエストを送信した場合は、そのディストリビューションのセキュリティポリシーが適用されます。AWS アカウントのすべてのレガシークライアントサポートディストリビューションに送信されたすべてのビューワーリクエストに望ましいセキュリティポリシーが適用されることを確実にするには、望ましいセキュリティポリシーをディストリビューションごとに個別に追加します。

      • 定義上、新しいセキュリティポリシーは、古いセキュリティポリシーと同じ暗号やプロトコルをサポートしません。たとえば、ディストリビューションのセキュリティポリシーを TLSv1 から TLSv1.1_2016 にアップグレードすることを選択した場合、そのディストリビューションは DES-CBC3-SHA 暗号をサポートしなくなります。各セキュリティポリシーがサポートする暗号とプロトコルの詳細については、「ビューワーと CloudFront との間でサポートされているプロトコルと暗号」を参照してください。

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

ビューワーが CloudFront と通信するときにディストリビューションでサポートする HTTP バージョンを選択します。

ビューワーと CloudFront が HTTP/2 を使用するには、ビューワーが TLSv1.2 以降と Server Name Indication (SNI) をサポートしている必要があります。CloudFront は HTTP/2 経由で gRPC のネイティブサポートを提供していません。

ビューワーと CloudFront が HTTP/3 を使用するには、ビューワーが TLSv1.2 以降と Server Name Indication (SNI) をサポートしている必要があります。CloudFront は、ビューワーが接続を失わずにネットワークを切り替えることができるように、HTTP/3 接続の移行をサポートしています。接続の移行の詳細については、RFC 9000 で「Connection Migration」を参照してください。

注記

サポートされる TLSv1.3 暗号の詳細については、「ビューワーと CloudFront との間でサポートされているプロトコルと暗号」を参照してください。

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

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

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

  • A ~ Z、a ~ z

  • 0-9

  • _ - . * $ / ~ " '

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

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

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

ログ記録

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

ログ用のバケット

[Logging] (ログ) で [On] (オン) を選択した場合に、CloudFront がアクセスログを保存する Amazon S3 バケット (例: myLogs-DOC-EXAMPLE-BUCKET.s3.amazonaws.com)。

重要

以下のいずれのリージョンでも Amazon S3 バケットを選択しないでください。CloudFront は、これらのリージョンのバケットに標準ログを配信しません。

  • アフリカ (ケープタウン)

  • アジアパシフィック (香港)

  • アジアパシフィック (ハイデラバード)

  • アジアパシフィック (ジャカルタ)

  • アジアパシフィック (メルボルン)

  • カナダ西部 (カルガリー)

  • 欧州 (ミラノ)

  • 欧州 (スペイン)

  • 欧州 (チューリッヒ)

  • イスラエル (テルアビブ)

  • 中東 (バーレーン)

  • 中東 (アラブ首長国連邦)

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

注記

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

ログのプレフィックス

オプション。[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 リクエストに応答します。IPv4 の IP アドレス (192.0.2.44 など) からのリクエストや IPv6 のアドレス (2001:0db8:85a3::8a2e:0370:7334 など) からのリクエストに CloudFront が応答できるようにするには、[Enable IPv6] (IPv6 の有効化) を選択します。

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

Route 53 エイリアスリソースレコードセットを使用して CloudFront ディストリビューションにトラフィックをルーティングしている場合、次の両方に該当するときには、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 に関するよくある質問」を参照してください。アクセスログを有効にする方法の詳細については、ログ記録ログ用のバケット、および ログのプレフィックス のフィールドを参照してください。

コメント

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

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

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

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

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

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

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

カスタムエラーページとエラーキャッシュ

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

注記

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

HTTP エラーコード

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

Response page path (レスポンスページのパス)

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

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

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

HTTP レスポンスコード

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

Error caching minimum TTL (seconds) (エラーキャッシュ最小 TTL (秒))

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

地理的制限

特定の国のユーザーにコンテンツへのアクセスを禁止する必要がある場合は、CloudFront ディストリビューションで [許可リスト] または [ブロックリスト] を設定できます。地理的制限の設定には追加料金が発生しません。詳細については、「コンテンツの地理的配分を制限する」を参照してください。