オリジンの設定 - Amazon CloudFront

オリジンの設定

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

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

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

重要

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

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

オリジンドメイン

オリジンドメインは、CloudFront がオリジンのオブジェクトの取得先としている、Amazon S3 バケットまたは HTTP サーバーなどのリソースの DNS ドメイン名です。例:

  • Amazon S3 バケットamzn-s3-demo-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 バケットamzn-s3-demo-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

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

[Origin Domain Name] (オリジンドメイン名) フィールドでドメイン名を選択するか、名前を入力します。オプトインリージョンのリソースは手動で入力する必要があります。ドメイン名では、大文字と小文字が区別されません。オリジンドメインは、クライアントからインターネット経由でターゲットにリクエストをルーティングする、パブリックに解決可能な DNS 名を持っている必要があります。

CloudFront を HTTPS 経由でオリジンに接続するよう構成している場合、証明書のドメイン名のうち 1 つは、[オリジンドメイン名] で指定したドメイン名と一致する必要があります。ドメイン名が一致しない場合、CloudFront は HTTP ステータスコード 502 (Bad Gateway) をビューワーに返します。詳細については、「CloudFront ディストリビューションと証明書のドメイン名」および「CloudFront とカスタムオリジンサーバー間の SSL/TLS ネゴシエーションエラー」を参照してください。

注記

ビューワーホストヘッダーをオリジンに転送するオリジンリクエストポリシーを使用している場合、オリジンはビューワーホストヘッダーに一致する証明書で応答する必要があります。詳細については、「CloudFront のリクエストヘッダーを追加する」を参照してください。

オリジンが 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 S3 オリジンへのアクセスを制限する」を参照してください。

重要

オリジンが 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] (オリジンドメイン) - amzn-s3-demo-bucket と名前の付いた Amazon S3 バケット

  • オリジンのパス - /production

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

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

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

名前

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

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

注記

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

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

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

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

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 がオリジンからレスポンスを待機する回数も指定します。詳細については、「レスポンスタイムアウト (カスタムオリジンおよび VPC オリジンのみ)」を参照してください。

接続タイムアウト

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

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

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

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

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

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

レスポンスタイムアウト (カスタムオリジンおよび VPC オリジンのみ)

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

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

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

ヒント

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

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

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

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

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

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

注記

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

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

注記

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

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

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