オリジンリクエストの制御 - Amazon CloudFront

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

オリジンリクエストの制御

へのビューワーリクエスト CloudFront によってキャッシュミスが発生すると (リクエストされたオブジェクトはエッジロケーションでキャッシュされません)、 はオブジェクトを取得するリクエストをオリジン CloudFront に送信します。これは、オリジンリクエストと呼ばれます。オリジンリクエストには、ビューワークエストの次の情報が常に含まれます。

  • URL パス (URL クエリ文字列またはドメイン名を含まないパスのみ)

  • リクエストボディ (存在する場合)

  • 、、 などUser-Agent、すべてのオリジンリクエストに自動的に CloudFront 含まれる HTTP Hostヘッダー X-Amz-Cf-Id

ビューワーリクエストのその他の情報 (URL クエリ文字列、HTTP ヘッダー、Cookie など) は、デフォルトではオリジンリクエストに含まれません。(例外: レガシーキャッシュ設定では、 はデフォルトでヘッダーをオリジン CloudFront に転送します)。ただし、分析やテレメトリーのためにデータを収集するなど、オリジンでこのその他の情報を受信することができます。オリジンリクエストポリシー を使用して、オリジンリクエストに含まれる情報を制御できます。

オリジンリクエストポリシーは、キャッシュキーを制御するキャッシュポリシーとは別のものです。この分離により、オリジンで追加情報を受信し、適切なキャッシュヒット率 (キャッシュヒットとなるビューワーリクエストの割合) を維持することができます。これを行うには、オリジンリクエストに含める情報 (オリジンリクエストポリシーを使用) とキャッシュキーに含める情報 (キャッシュポリシーを使用) を個別に制御します。

2 種類のポリシーは別々のものですが、関連性があります。キャッシュキーに含めるすべての URL クエリ文字列、HTTP ヘッダー、および Cookie (キャッシュポリシーを使用) は、オリジンリクエストに自動的に含まれます。オリジンリクエストポリシーを使用して、オリジンリクエストに含めるが、キャッシュキーには含めない情報を指定します。キャッシュポリシーと同様に、オリジンリクエストポリシーを CloudFront ディストリビューションの 1 つ以上のキャッシュ動作にアタッチします。

オリジンリクエストポリシーを使用して、ビューワーリクエストに含まれていないオリジンリクエストに追加の HTTP ヘッダーを追加することもできます。これらの追加のヘッダーは、オリジンリクエストを送信する CloudFront 前に によって追加され、ビューワーリクエストに基づいて自動的に決定されるヘッダー値が含まれます。詳細については、「 CloudFront リクエストヘッダーの追加」を参照してください。

オリジンリクエストポリシーの作成

オリジンリクエストポリシーを使用して、 がオリジン CloudFront に送信するリクエストに含まれる値 (URL クエリ文字列、HTTP ヘッダー、Cookie) を制御できます。オリジンリクエストポリシーは、 CloudFront コンソール、 AWS Command Line Interface (AWS CLI)、または CloudFront API を使用して作成できます。

オリジンリクエストポリシーを作成したら、ディス CloudFront トリビューションの 1 つ以上のキャッシュ動作にアタッチします。

オリジンリクエストポリシーは必須ではありません。キャッシュ動作にオリジンリクエストポリシーがアタッチされていない場合、オリジンリクエストには、キャッシュポリシーで指定されたすべての値が含まれますが、それ以上は含まれません。

注記

オリジンリクエストポリシーを使用するには、キャッシュ動作でもキャッシュポリシーを使用する必要があります。キャッシュポリシーがないと、キャッシュ動作でオリジンリクエストポリシーを使用することはできません。

Console
オリジンリクエストポリシーを作成するには (コンソール)
  1. にサインインAWS Management Consoleし、 CloudFront コンソールのポリシーページを開きますhttps://console.aws.amazon.com/cloudfront/v4/home?#/policies

  2. [オリジンリクエスト] を選択してから、[オリジンリクエストポリシーの作成] を選択します。

  3. このオリジンリクエストポリシーに目的の設定を選択します。詳細については、「オリジンリクエストポリシーについて」を参照してください。

  4. 終了したら、[作成] を選択します。

オリジンリクエストポリシーを作成したら、それをキャッシュ動作にアタッチできます。

オリジンリクエストポリシーを既存のディストリビューションにアタッチするには (コンソール)
  1. の CloudFront コンソールでディストリビューションページを開きますhttps://console.aws.amazon.com/cloudfront/v4/home#/distributions

  2. 更新するディストリビューションを選択し、[動作] タブを選択します。

  3. 更新するキャッシュ動作を選択し、[編集] を選択します。

    または、新しいキャッシュ動作を作成するには、[動作を作成] を選択します。

  4. [キャッシュキーとオリジンリクエスト] セクションで、[キャッシュポリシーとオリジンリクエストポリシー] が選択されていることを確認します。

  5. [オリジンリクエストポリシー] では、このキャッシュ動作にアタッチするオリジンリクエストポリシーを選択します。

  6. ページの最下部で [変更の保存] を選択します。

オリジンリクエストポリシーを新しいディストリビューションにアタッチするには (コンソール)
  1. で CloudFront コンソールを開きますhttps://console.aws.amazon.com/cloudfront/v4/home

  2. [ディストリビューションの作成] を選択します。

  3. [キャッシュキーとオリジンリクエスト] セクションで、[キャッシュポリシーとオリジンリクエストポリシー] が選択されていることを確認します。

  4. [Origin request policy] (オリジンリクエストポリシー) で、このディストリビューションのデフォルトのキャッシュ動作にアタッチするオリジンリクエストポリシーを選択します。

  5. オリジン、デフォルトのキャッシュ動作、その他のディストリビューション設定に必要な設定を選択します。詳細については、「ディストリビューションを作成または更新する場合に指定する値」を参照してください。

  6. 終了したら、[ディストリビューションの作成] を選択します。

CLI

AWS Command Line Interface (AWS CLI) でオリジンリクエストポリシーを作成するには、aws cloudfront create-origin-request-policy コマンドを使用します。コマンドの入力パラメータは、コマンドライン入力として個別に指定せずに、入力ファイルを使用して指定できます。

オリジンリクエストポリシーを作成するには (入力ファイルを含む CLI)
  1. 次のコマンドを使用して、origin-request-policy.yaml コマンドのすべての入力パラメータを含む create-origin-request-policy という名前のファイルを作成します。

    aws cloudfront create-origin-request-policy --generate-cli-skeleton yaml-input > origin-request-policy.yaml
  2. 先ほど作成した origin-request-policy.yaml という名前のファイルを開きます。ファイルを編集して、必要なオリジンリクエストポリシー設定を指定し、ファイルを保存します。ファイルからオプションのフィールドを削除することはできますが、必須フィールドは削除しないでください。

    オリジンリクエストポリシー設定の詳細については、「オリジンリクエストポリシーについて」を参照してください。

  3. 次のコマンドを使用して、origin-request-policy.yaml ファイルの入力パラメータを使用し、オリジンリクエストポリシーを作成します。

    aws cloudfront create-origin-request-policy --cli-input-yaml file://origin-request-policy.yaml

    コマンドの出力の Id 値を書き留めます。これはオリジンリクエストポリシー ID であり、オリジンリクエストポリシーを CloudFront ディストリビューションのキャッシュ動作にアタッチするために必要です。

オリジンリクエストポリシーを既存のディストリビューションにアタッチするには (入力ファイルを含む CLI)
  1. 次のコマンドを使用して、更新するディストリビューションの CloudFront ディストリビューション設定を保存します。distribution_ID をディストリビューションの ID に置き換えます。

    aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
  2. 先ほど作成した dist-config.yaml という名前のファイルを開きます。ファイルを編集し、オリジンリクエストポリシーを使用するように更新する各キャッシュ動作に次の変更を加えます。

    • キャッシュ動作で、OriginRequestPolicyId という名前のフィールドを追加します。フィールドの値には、ポリシーの作成後に書き留めたオリジンリクエストポリシー ID を使用します。

    • ETag フィールドの名前を IfMatch に変更します。ただし、フィールドの値は変更しないでください。

    完了したら、ファイルを保存します。

  3. オリジンリクエストポリシーを使用するようにディストリビューションを更新するには、次のコマンドを使用します。distribution_ID をディストリビューションの ID に置き換えます。

    aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml
オリジンリクエストポリシーを新しいディストリビューションにアタッチするには (入力ファイルを含む CLI)
  1. 次のコマンドを使用して、distribution.yaml コマンドのすべての入力パラメータを含む create-distribution という名前のファイルを作成します。

    aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
  2. 先ほど作成した distribution.yaml という名前のファイルを開きます。デフォルトのキャッシュ動作の [OriginRequestPolicyId] フィールドに、ポリシーの作成後に書き留めたオリジンリクエストポリシー ID を入力します。ファイルの編集を続行して必要なディストリビューション設定を指定し、完了したらファイルを保存します。

    ディストリビューション設定の詳細については、「ディストリビューションを作成または更新する場合に指定する値」を参照してください。

  3. 次のコマンドを使用して、distribution.yaml ファイルの入力パラメータを使用し、ディストリビューションを作成します。

    aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
API

CloudFront API を使用してオリジンリクエストポリシーを作成するには、 を使用しますCreateOriginRequestPolicy。この API コールで指定するフィールドの詳細については、「オリジンリクエストポリシーについて」、および AWS SDK やその他の API クライアントの API リファレンスドキュメントを参照してください。

オリジンリクエストポリシーを作成したら、次の API コールのいずれかを使用して、それをキャッシュ動作にアタッチできます。

  • 既存のディストリビューションのキャッシュ動作にアタッチするには、 を使用しますUpdateDistribution

  • 新しいディストリビューションのキャッシュ動作にアタッチするには、 を使用しますCreateDistribution

これらの API コールの両方について、キャッシュ動作内で、OriginRequestPolicyId フィールドにオリジンリクエストポリシーの ID を指定します。これらの API コールで指定するその他フィールドの詳細については、「ディストリビューションを作成または更新する場合に指定する値」と、AWS SDK またはその他 API クライアントの API リファレンスドキュメントを参照してください。

オリジンリクエストポリシーについて

CloudFront では、一般的なユースケース向けに、管理ポリシー と呼ばれる事前定義されたオリジンリクエストポリシーを提供しています。これらのマネージドポリシーを使用することも、ユーザーのニーズ別に独自のオリジンリクエストポリシーを作成することもできます。マネージドポリシーの詳細については、「管理オリジンリクエストポリシーの使用」を参照してください。

オリジンリクエストポリシーには以下の設定が含まれます。設定は、ポリシー情報オリジンリクエスト設定に分類されます。

ポリシー情報

名前

オリジンリクエストポリシーを識別する名前。コンソールでは、名前を使用して、オリジンリクエストポリシーをキャッシュ動作にアタッチします。

説明

オリジンリクエストポリシーを説明するコメント。これはオプションです。

オリジンリクエスト設定

オリジンリクエスト設定では、 がオリジン CloudFront に送信するリクエスト (オリジンリクエストと呼ばれる) に含まれるビューワーリクエストの値を指定します。値には、URL クエリ文字列、HTTP ヘッダー、および Cookie を含めることができます。指定した値は、オリジンリクエストに含まれますが、キャッシュキーには含まれません。キャッシュキーの制御については、「キャッシュキーの管理」を参照してください。

ヘッダー

オリジンリクエストに含まれるビューワーリクエスト CloudFront の HTTP ヘッダー。ヘッダーには、以下のいずれかの設定を選択できます。

  • [Note (なし)] – ビューワーリクエストの HTTP ヘッダーは、オリジンリクエストに含まれません

  • [All viewer headers (すべてのビューワーヘッダー)] – ビューワーリクエストのすべての HTTP ヘッダーは、オリジンリクエストに含まれます。

  • すべてのビューワーヘッダーと以下の CloudFrontヘッダー – ビューワーリクエストのすべての HTTP ヘッダーは、オリジンリクエストに含まれます。さらに、オリジンリクエストに追加する CloudFront ヘッダーを指定します。 CloudFront ヘッダーの詳細については、「」を参照してください CloudFront リクエストヘッダーの追加

  • [次のヘッダーを含める] – オリジンリクエストに含める HTTP ヘッダーを指定します。

    注記

    [オリジンのカスタムヘッダー] 設定に既に含まれているヘッダーを指定しないでください。詳細については、「オリジンリクエスト CloudFront にカスタムヘッダーを追加するための の設定」を参照してください。

  • [以下を除くすべてのビューワーヘッダー] — オリジンリクエストに含まれない HTTP ヘッダーを指定します。指定されたものを除いて、ビューワーリクエストの他のすべての HTTP ヘッダーが含まれます。

すべてのビューワーヘッダーと次の CloudFront ヘッダー次のヘッダー を含める、または 設定を除くすべてのビューワーヘッダーを使用する場合、ヘッダー名のみで HTTP ヘッダーを指定します。オリジンリクエストには、その値を含む完全なヘッダー CloudFront が含まれます。

注記

設定以外のすべてのビューワーヘッダーを使用してビューワーのHostヘッダーを削除すると、 はオリジンのドメイン名を含む新しいHostヘッダーをオリジンリクエスト CloudFront に追加します。

Cookie

オリジンリクエストに含まれるビューワーリクエスト CloudFront の Cookie。Cookie には、以下のいずれかの設定を選択できます。

  • [None (なし)] – ビューワーリクエストの Cookie は、オリジンリクエストに含まれません

  • [All (すべて)] – ビューワーリクエストのすべての Cookie は、オリジンリクエストに含まれます。

  • [次のヘッダーを含める] – ビューワーリクエストのどの Cookie をオリジンリクエストに含めるかを指定します。

  • [次を除くすべての Cookie] – ビューワーリクエストのどの Cookie をオリジンリクエストに含めないかを指定します。ビューワーリクエストの他のすべての Cookie が含まれます。

次の Cookie を含める または 設定を除くすべての Cookie を使用する場合は、名前のみを使用して Cookie を指定します。オリジンリクエストには、その値を含む完全な Cookie CloudFront が含まれます。

クエリ文字列

オリジンリクエストに含まれるビューワーリクエスト CloudFront の URL クエリ文字列。クエリ文字列には、以下のいずれかの設定を選択できます。

  • [None (なし)] – ビューワーリクエストのクエリ文字列は、オリジンリクエストに含まれません

  • [All (すべて)] – ビューワーリクエストのすべてのクエリ文字列は、オリジンリクエストに含まれます。

  • [次のクエリ文字列を含める] - ビューワーリクエストのどのクエリ文字列をオリジンリクエストに含めるかを指定します。

  • [次を除くすべてのクエリ文字列] - ビューワーリクエストのどのクエリ文字列をオリジンリクエストに含めないかを指定します。その他すべてのクエリ文字列が含まれます。

次のクエリ文字列を含めるまたは設定以外のすべてのクエリ文字列を使用する場合は、名前のみを使用してクエリ文字列を指定します。オリジンリクエストには、その値を含む完全なクエリ文字列 CloudFront が含まれます。