

# ディストリビューションの設定
<a name="distribution-working-with"></a>

Amazon CloudFront ディストリビーションを作成して、コンテンツを配信する場所と、コンテンツ配信の追跡と管理の方法の詳細を CloudFront に指示します。

CloudFront ディストリビューションを作成すると、CloudFront はコンテンツオリジンタイプに基づいて、ほとんどのディストリビューション設定を自動的に構成します。事前設定された設定内容の詳細については、「[事前設定されたディストリビューション設定リファレンス](template-preconfigured-origin-settings.md)」を参照してください。必要に応じて、ディストリビューション設定を手動で編集することもできます。詳細については、「[すべてのディストリビューション設定リファレンス](distribution-web-values-specify.md)」を参照してください。

以下の設定を設定できます。
+ **コンテンツオリジン** — CloudFront が配信するファイルの取得元である Amazon S3 バケット、AWS Elemental MediaPackage チャネル、AWS Elemental MediaStore コンテナ、Elastic Load Balancing ロードバランサー、または HTTP サーバーです。1 つのディストリビューションで、最大で 25 のオリジンの任意に組み合わせて指定できます。
+ **アクセス** - ファイルをすべてのユーザーが使用できるようにするか、または一部のユーザーにアクセスを制限するか。
+ **セキュリティ** - AWS WAF 保護を有効にして、HTTPS を使用したコンテンツへのアクセスを必須にするかどうか。マルチテナントディストリビューションでは、AWS WAF V2 ウェブアクセスコントロールリスト (ACL) のみがサポートされています。
+ **キャッシュキー** - *キャッシュキー*に含める値 (存在する場合)。キャッシュキーは、特定のディストリビューションのキャッシュ内の各ファイルを一意に識別します。
+ **オリジンリクエスト設定** - CloudFront でオリジンに送信するリクエストに HTTP ヘッダー、Cookie、またはクエリ文字列を含めるかどうか。
+ **地理的制限** — CloudFront で特定の国のユーザーがコンテンツにアクセスできないようにするかどうか。
+ **ログ** — CloudFront で標準ログを作成するか、ビューワーのアクティビティを示すリアルタイムのアクセスログを作成するかどうか。

詳細については、「[すべてのディストリビューション設定リファレンス](distribution-web-values-specify.md)」を参照してください。

AWS アカウントごとに作成できるディストリビューションの現在の最大数については、「[ディストリビューションの一般的なクォータ](cloudfront-limits.md#limits-web-distributions)」を参照してください。ディストリビューションごとにサービスが可能なファイルの最大数はありません。

ディストリビューションを使用して、HTTP または HTTPS 経由で以下のコンテンツを供給できます。
+ HTTP または HTTPS を使用した静的および動的なコンテンツ (HTML、CSS、JavaScript、イメージファイルなど) のダウンロード。
+ Apple HTTP Live Streaming (HLS) や Microsoft Smooth Streaming など、さまざまな形式のビデオオンデマンド。(マルチテナントディストリビューションでは、スムーズストリーミングはサポートされていません。) 詳細については、「[CloudFront でビデオオンデマンドを配信する](on-demand-video.md)」を参照してください。
+ ライブイベント。リアルタイムのミーティング、会議、コンサートなど。ライブストリーミングの場合は、CloudFormation スタックを使用して自動的にディストリビューションを作成できます。詳細については、「[CloudFront と AWS Media Services で動画ストリーミングビデオを配信する](live-streaming.md)」を参照してください。

以下のトピックでは、CloudFront ディストリビューションの詳細と、ビジネスニーズに合わせてディストリビューションを設定する方法について説明します。ディストリビューションの作成については、「[ディストリビューションを作成する](distribution-web-creating-console.md)」を参照してください。

**Topics**
+ [マルチテナントディストリビューションの仕組みを理解する](distribution-config-options.md)
+ [ディストリビューションを作成する](distribution-web-creating-console.md)
+ [事前設定されたディストリビューション設定リファレンス](template-preconfigured-origin-settings.md)
+ [すべてのディストリビューション設定リファレンス](distribution-web-values-specify.md)
+ [ディストリビューションのテスト](distribution-web-testing.md)
+ [ディストリビューションを更新する](HowToUpdateDistribution.md)
+ [ディストリビューションのタグ付け](tagging.md)
+ [ディストリビューションを削除する](HowToDeleteDistribution.md)
+ [CloudFront ディストリビューションでさまざまなオリジンを使用する](DownloadDistS3AndCustomOrigins.md)
+ [CloudFront ディストリビューションの IPv6 を有効にする](cloudfront-enable-ipv6.md)
+ [CloudFront の継続的デプロイを使用して CDN 設定の変更を安全にテストする](continuous-deployment.md)
+ [代替ドメイン名 (CNAME) を追加することによって、カスタム URL を使用する](CNAMEs.md)
+ [CloudFront ディストリビューションで WebSockets を使用する](distribution-working-with.websockets.md)
+ [許可リストで使用するエニーキャスト静的 IP をリクエストする](request-static-ips.md)
+ [CloudFront ディストリビューションでの gRPC の使用](distribution-using-grpc.md)

# マルチテナントディストリビューションの仕組みを理解する
<a name="distribution-config-options"></a>

複数のディストリビューションテナント間で再利用できる設定を使用して、CloudFront マルチテナントディストリビューションを作成できます。マルチテナントディストリビューションを使用して、コンテンツオリジンタイプに基づいて CloudFront にディストリビューション設定を構成させることができます。事前設定された設定内容の詳細については、「[事前設定されたディストリビューション設定リファレンス](template-preconfigured-origin-settings.md)」を参照してください。

標準ディストリビューションの代わりにマルチテナントディストリビューションを使用する利点は、次のとおりです。
+ 運用上の負担を軽減します。
+ エンドユーザーにコンテンツを配信する複数のウェブアプリケーションの CloudFront ディストリビューションを管理するための、ウェブ管理者とソフトウェアプロバイダー向けの再利用可能な設定。
+ 他の AWS のサービスとの統合を強化して、証明書の自動管理、統合セキュリティコントロール、および手間のかからない大規模な設定コントロールを実現しました。
+ 実装全体で一貫したリソースパターンを維持します。共有する必要がある設定を定義し、上書きする設定のカスタマイズを指定します。
+ ディストリビューションテナントレベルで特定のニーズを満たすように、オリジンおよびセキュリティの設定をカスタマイズできます。
+ ディストリビューションテナントを異なる階層に整理します。例えば、Origin Shield を必要とするディストリビューションテナントと必要としないテナントがある場合、ディストリビューションテナントを異なるマルチテナントディストリビューションにグループ化できます。
+ 複数のドメイン間で共通の DNS 設定を共有します。

標準ディストリビューションとは異なり、マルチテナントディストリビューションには CloudFront ルーティングエンドポイントがないため、直接アクセスすることはできません。したがって、接続グループおよび 1 つ以上のディストリビューションテナントと組み合わせて使用する必要があります。標準ディストリビューションには独自の CloudFront エンドポイントがあり、エンドユーザーが直接アクセスできますが、他のディストリビューションのテンプレートとして使用することはできません。

マルチテナントディストリビューションクォータの詳細については、「[マルチテナントディストリビューションのクォータ](cloudfront-limits.md#limits-template)」を参照してください。

**Topics**
+ [仕組み](#how-template-distribution-works)
+ [用語](#template-distributions-concepts)
+ [サポートされていない 機能](#unsupported-saas)
+ [ディストリビューションテナントのカスタマイズ](tenant-customization.md)
+ [CloudFront ディストリビューションテナントの証明書をリクエストする](managed-cloudfront-certificates.md)
+ [カスタム接続グループを作成する (オプション)](custom-connection-group.md)
+ [マルチテナントディストリビューションに移行する](template-migrate-distribution.md)

## 仕組み
<a name="how-template-distribution-works"></a>

*標準ディストリビューション*では、オリジン設定、キャッシュ動作、セキュリティ設定など、ウェブサイトまたはアプリケーションで有効にするすべての設定がディストリビューションに含まれます。別のウェブサイトを作成し、同じ設定の多くを使用する場合、毎回新しいディストリビューションを作成する必要があります。

CloudFront マルチテナントディストリビューションは、初期マルチテナントディストリビューションを作成できる点で異なります。新しいウェブサイトごとに、ソースディストリビューションの定義された値を自動的に継承するディストリビューションテナントを作成します。次に、ディストリビューションテナントの特定の設定をカスタマイズします。

**概要**

1. 開始するには、まずマルチテナントディストリビューションを作成します。CloudFront は、コンテンツオリジンタイプに基づいてディストリビューション設定を構成します。VPC オリジンを除くすべてのオリジンの設定をカスタマイズできます。VPC オリジン設定は、VPC オリジンリソース自体でカスタマイズされます。カスタマイズできるマルチテナントディストリビューション設定の詳細については、「[事前設定されたディストリビューション設定リファレンス](template-preconfigured-origin-settings.md)」を参照してください。
   + マルチテナントディストリビューションに使用する TLS 証明書は、ディストリビューションテナントに継承できます。マルチテナントディストリビューション自体はルーティングできないため、ドメイン名は関連付けられません。

1. デフォルトでは、CloudFront は接続グループを作成します。接続グループは、コンテンツに対するビューワーリクエストが CloudFront に接続する方法を制御します。接続グループの一部のルーティング設定をカスタマイズできます。

   これは、独自の接続グループを手動で作成することで変更できます。詳細については、「[カスタム接続グループを作成する (オプション)](custom-connection-group.md)」を参照してください。

1. 次に、1 つ以上のディストリビューションテナントを作成します。ディストリビューションテナントは、ビューワーがコンテンツにアクセスするための「玄関」です。各ディストリビューションテナントはマルチテナントディストリビューションを参照し、CloudFront が作成した接続グループに自動的に関連付けられます。ディストリビューションテナントは、個々のドメインまたはサブドメインをサポートします。

1. その後、バニティドメインやオリジンパスなど、一部のディストリビューションテナント設定をカスタマイズできます。詳細については、「[ディストリビューションテナントのカスタマイズ](tenant-customization.md)」を参照してください。

1. 最後に、DNS ホストの DNS レコードを更新して、トラフィックをディストリビューションテナントにルーティングする必要があります。これを行うには、接続グループから CloudFront エンドポイント値を取得し、CloudFront エンドポイントを指す CNAME レコードを作成します。

**Example 例**  
次の図は、マルチテナントディストリビューション、ディストリビューションテナント、および接続グループが連携して、複数のドメインのビューワーにコンテンツを配信する方法を示しています。  

1. マルチテナントディストリビューションは、各ディストリビューションテナントの継承された設定を定義します。マルチテナントディストリビューションをテンプレートとして使用します。

1. マルチテナントディストリビューションから作成された各ディストリビューションテナントには、独自のドメインがあります。

1. ディストリビューションテナントは、マルチテナントディストリビューションの作成時に CloudFront が作成した接続グループに自動的に追加されます。接続グループは、ビューワーリクエストを CloudFront ネットワークに接続する方法を制御します。

![\[マルチテナントディストリビューションがディストリビューションテナントと連携する方法。\]](http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/images/template_distribution.png)


マルチテナントディストリビューションの作成手順の詳細については、「[コンソールに CloudFront ディストリビューションを作成する](distribution-web-creating-console.md#create-console-distribution)」を参照してください。

## 用語
<a name="template-distributions-concepts"></a>

以下の概念では、マルチテナントディストリビューションのコンポーネントについて説明します。

**マルチテナントディストリビューション**  
キャッシュ動作、セキュリティ保護、オリジンなど、すべてのディストリビューションテナントのすべての共有構成設定を指定するブループリント、マルチテナントディストリビューション。マルチテナントディストリビューションは、トラフィックを直接処理することはできません。接続グループおよびディストリビューションテナントと組み合わせて使用する必要があります。

**標準ディストリビューション**  
マルチテナント機能を持たないディストリビューション。これらのディストリビューションは、単一のウェブサイトまたはアプリケーションをサポートするのに最適です。

**ディストリビューションテナント**  
ディストリビューションテナントは、マルチテナントディストリビューション設定を継承します。一部の設定は、ディストリビューションテナントレベルでカスタマイズできます。ディストリビューションテナントには有効な TLS 証明書が必要です。これは、ディストリビューションテナントドメインまたはサブドメインを対象とする限り、マルチテナントディストリビューションから継承できます。  
ディストリビューションテナントは、接続グループに関連付ける必要があります。CloudFront は、ディストリビューションテナントを作成するときに接続グループを作成し、その接続グループに任意のディストリビューションテナントを自動的に割り当てます。

**マルチテナンシー**  
マルチテナントディストリビューションを使用して、設定とインフラストラクチャを共有しながら、複数のドメイン間でコンテンツを提供できます。このアプローチにより、さまざまなドメイン (テナントと呼ばれる) が、独自のカスタマイズを維持しながら、マルチテナントディストリビューションから共通の設定を共有できます。

**接続グループ**  
ビューワーにコンテンツを提供する CloudFront ルーティングエンドポイントを提供します。各ディストリビューションテナントを接続グループに関連付けて、ディストリビューションテナントドメインまたはサブドメイン用に作成した CNAME レコードに対応する CloudFront ルーティングエンドポイントを取得する必要があります。接続グループは、複数のディストリビューションテナント間で共有できます。接続グループは、IPv6 やエニーキャスト IP リスト設定など、ディストリビューションテナントのルーティング設定を管理します。

**パラメータ**  
オリジンパスやドメイン名など、プレースホルダー値のキーと値のペアのリスト。マルチテナントディストリビューションでパラメータを定義し、それらのパラメータの値をディストリビューションテナントレベルで指定できます。ディストリビューションテナントにパラメータ値を入力する必要があるかどうかを選択します。  
ディストリビューションテナントでオプションパラメータの値を指定しない場合、マルチテナントディストリビューションのデフォルト値が値として使用されます。

**CloudFront ルーティングエンドポイント**  
`d123.cloudfront.net` などの接続グループの正規 DNS。ディストリビューションテナントドメインまたはサブドメインの CNAME レコードで使用されます。

**カスタマイズ**  
ディストリビューションテナントをカスタマイズして、マルチテナントディストリビューションとは*異なる*設定を使用できます。ディストリビューションテナントごとに、異なる AWS WAF ウェブアクセスコントロールリスト (ACL)、TLS 証明書、地理的制限を指定できます。

## サポートされていない 機能
<a name="unsupported-saas"></a>

次の機能は、マルチテナントディストリビューションでは使用できません。標準ディストリビューションと同じ設定を使用して、新しいマルチテナントディストリビューションを作成する場合は、一部の設定は使用できないことに注意してください。

**注意事項**  
現在、AWS Firewall Manager ポリシーは標準ディストリビューションにのみ適用されます。Firewall Manager は、今後のリリースでマルチテナントディストリビューションのサポートを追加します。
標準ディストリビューションとは異なり、*ディストリビューションテナント*レベルでドメイン名 (エイリアス) を指定します。詳細については、「[CloudFront ディストリビューションテナントの証明書をリクエストする](managed-cloudfront-certificates.md)」および「[CreateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistributionTenant.html) API オペレーション」を参照してください。
+ [継続的デプロイ](continuous-deployment.md)
+ [オリジンアクセスアイデンティティ (OAI)](private-content-restricting-access-to-s3.md#private-content-restricting-access-to-s3-oai) – 代わりに[オリジンアクセスコントロール (OAC)](private-content-restricting-access-to-origin.md) を使用します。
+ [専用 IP カスタム SSL サポート](DownloadDistValuesGeneral.md#DownloadDistValuesClientsSupported) – `sni-only` メソッドのみがサポートされています。
+ [AWS WAF Classic (V1) ウェブ ACL](DownloadDistValuesGeneral.md#DownloadDistValuesWAFWebACL) – AWS WAF V2 ウェブ ACL のみがサポートされています。
+ [標準ログ記録 (レガシー)](standard-logging-legacy-s3.md)
+ [最小 TTL](DownloadDistValuesCacheBehavior.md#DownloadDistValuesMinTTL)
+ [デフォルト TTL](DownloadDistValuesCacheBehavior.md#DownloadDistValuesDefaultTTL)
+ [最大 TTL](DownloadDistValuesCacheBehavior.md#DownloadDistValuesMaxTTL)
+ [ForwardedValues](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ForwardedValues.html)
+ [PriceClass](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DistributionConfig.html)
+ [信頼された署名者](DownloadDistValuesCacheBehavior.md#DownloadDistValuesTrustedSigners)
+ [スムーズストリーミング](DownloadDistValuesCacheBehavior.md#DownloadDistValuesSmoothStreaming)
+ [AWS Identity and Access Management (IAM) サーバー証明書](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
+ [専用 IP アドレス](cnames-https-dedicated-ip-or-sni.md#cnames-https-dedicated-ip)
+ [最小プロトコルバージョン SSLv3](DownloadDistValuesGeneral.md#DownloadDistValues-security-policy)

以下の設定は、マルチテナントディストリビューションまたはディストリビューションテナントでは設定できません。代わりに、接続グループに必要な値を設定します。接続グループに関連付けられているすべてのディストリビューションテナントは、これらの設定を使用します。詳細については、「[カスタム接続グループを作成する (オプション)](custom-connection-group.md)」を参照してください。
+ [IPv6 を有効にする (ビューワーリクエスト)](DownloadDistValuesGeneral.md#DownloadDistValuesEnableIPv6)
+ [エニーキャスト静的 IP リスト](request-static-ips.md)

# ディストリビューションテナントのカスタマイズ
<a name="tenant-customization"></a>

マルチテナントディストリビューションを使用する場合、ディストリビューションテナントはマルチテナントディストリビューション設定を継承します。ただし、一部の設定はディストリビューションテナントレベルでカスタマイズできます。

以下をカスタマイズできます。
+ **パラメータ** – パラメータは、オリジンドメインまたはオリジンパスに使用できるキーと値のペアです。「[ディストリビューションテナントとパラメータが連携する方法](#tenant-customize-parameters)」を参照してください。
+ **AWS WAF ウェブ ACL (V2)** – ディストリビューションテナントに別のウェブ ACL を指定できます。これにより、マルチテナントディストリビューションに使用されるウェブ ACL が*上書き*されます。特定のディストリビューションテナントに対してこの設定を無効にすることもできます。つまり、ディストリビューションテナントはマルチテナントディストリビューションからウェブ ACL 保護を継承しません。詳細については、「[AWS WAF ウェブ ACL](DownloadDistValuesGeneral.md#DownloadDistValuesWAFWebACL)」を参照してください。
+ **地理的制限** – ディストリビューションテナントに指定する地理的制限は、マルチテナントディストリビューションの地理的制限を*上書き*します。例えば、マルチテナントディストリビューションでドイツ (DE) をブロックすると、関連するすべてのディストリビューションテナントも DE をブロックします。ただし、特定のディストリビューションテナントに対して DE を許可すると、そのディストリビューションテナント設定はマルチテナントディストリビューションの設定を上書きします。詳細については、「[コンテンツの地理的配分を制限する](georestrictions.md)」を参照してください。
+ **無効化パス** – ディストリビューションテナントに対して無効化するコンテンツへのファイルパスを指定します。詳細については、「[ファイルを無効化する](Invalidation_Requests.md)」を参照してください。
+ **カスタム TLS 証明書** – ディストリビューションテナントに指定する AWS Certificate Manager (ACM) 証明書は、マルチテナントディストリビューションで提供される証明書を補足するものです。ただし、同じドメインがマルチテナントディストリビューションおよびディストリビューションの両方のテナント証明書でカバーされている場合は、テナント証明書が使用されます。詳細については、「[CloudFront ディストリビューションテナントの証明書をリクエストする](managed-cloudfront-certificates.md)」を参照してください。
+ **ドメイン名** – ディストリビューションテナントごとに少なくとも 1 つのドメイン名を指定する必要があります。

## ディストリビューションテナントとパラメータが連携する方法
<a name="tenant-customize-parameters"></a>

パラメータは、プレースホルダー値に使用できるキーと値のペアです。マルチテナントディストリビューションで使用するパラメータを定義し、それらが必要かどうかを指定します。

マルチテナントディストリビューションでパラメータを定義するときは、それらのパラメータをディストリビューションテナントレベルで入力する必要があるかどうかを選択します。
+ マルチテナントディストリビューションで*必要な*パラメータを定義する場合は、ディストリビューションテナントレベルでパラメータを入力する必要があります。(これらは継承されません)。
+ パラメータが*必要でない*場合は、ディストリビューションテナントによって継承されるマルチテナントディストリビューションでデフォルト値を指定できます。

次のプロパティでパラメータを使用できます。
+ オリジンドメイン名
+ オリジンのパス

マルチテナントディストリビューションでは、前述のプロパティごとに最大 2 つのパラメータを定義できます。

## パラメータの例
<a name="examples-parameters"></a>

ドメイン名とオリジンパスのパラメータの使用については、次の例を参照してください。

**ドメイン名パラメータ**

マルチテナントディストリビューション設定では、次の例のようにオリジンドメイン名のパラメータを定義できます。

**Amazon S3**
+ `{{parameter1}}.amzn-s3-demo-logging-bucket.s3.us-east-1.amazonaws.com`
+ `{{parameter1}}–amzn-s3-demo-logging-bucket.s3.us-east-1.amazonaws.com`

**カスタムオリジン**
+ `{{parameter1}}.lambda-url.us-east-1.on.aws`
+ `{{parameter1}}.mediapackagev2.ap-south-1.amazonaws.com`

ディストリビューションテナントを作成するときは、`parameter1` に使用する値を指定します。

```
"Parameters": [
  {
    "Name": "parameter1",
    "Value": "mycompany-website"
  }
]
```

マルチテナントディストリビューションで指定した前の例を使用して、ディストリビューションテナントのオリジンドメイン名は次のように解決されます。
+ `mycompany-website.amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`
+ `mycompany-website–amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`
+ `mycompany-website.lambda-url.us-east-1.on.aws`
+ `mycompany-website.mediapackagev2.ap-south-1.amazonaws.com`

**オリジンパスパラメータ**

同様に、次の例のように、マルチテナントディストリビューションでオリジンパスのパラメータを定義できます。
+ `/{{parameter2}}`
+ `/{{parameter2}}/test`
+ `/public/{{parameter2}}/test`
+ `/search?name={{parameter2}}`

ディストリビューションテナントを作成するときは、`parameter2` に使用する値を指定します。

```
"Parameters": [
  {
    "Name": "parameter2",
    "Value": "myBrand"
  }
]
```

マルチテナントディストリビューションで指定した前の例を使用して、ディストリビューションテナントのオリジンパスは次のように解決されます。
+ `/myBrand`
+ `/myBrand/test`
+ `/public/myBrand/test`
+ `/search?name=myBrand`



**Example 例**  
顧客用に複数のウェブサイト (テナント) を作成し、各ディストリビューションテナントリソースが正しい値を使用していることを確認する必要があります。  

1. マルチテナントディストリビューションを作成し、ディストリビューションテナント設定に 2 つのパラメータを含めます。

1. オリジンドメイン名には、*customer-name* という名前のパラメータを作成し、必須であることを指定します。S3 バケットの前にパラメータを入力すると、以下のように表示されます。

   `{{customer-name}}.amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`.

1. オリジンパスの場合、*my-theme* という名前の 2 番目のパラメータを作成し、デフォルト値は *basic* で、オプションとして指定します。オリジンパスは `/{{my-theme}}` と表示されます。

1. ディストリビューションテナントを作成する場合。
   + ドメイン名は、マルチテナントディストリビューションで必須としてマークされているため、*customer-name*の値を指定する必要があります。
   + オリジンパスでは、オプションで *my-theme* の値を指定するか、デフォルト値を使用できます。

# CloudFront ディストリビューションテナントの証明書をリクエストする
<a name="managed-cloudfront-certificates"></a>

ディストリビューションテナントを作成すると、テナントはマルチテナントディストリビューションから共有 AWS Certificate Manager (ACM) 証明書を継承します。この共有証明書は、マルチテナントディストリビューションに関連付けられているすべてのテナントに HTTPS を提供します。

CloudFront ディストリビューションテナントを作成または更新してドメインを追加するときは、ACM からマネージド CloudFront 証明書を追加できます。その後、CloudFront はユーザーに代わって ACM から HTTP 検証済み証明書を取得します。このテナントレベルの ACM 証明書は、カスタムドメイン設定に使用できます。CloudFront は更新ワークフローを合理化し、証明書を最新の状態に保ち、安全なコンテンツ配信を中断させないようにします。

**注記**  
証明書は所有していますが、CloudFront リソースで*のみ*使用でき、プライベートキーをエクスポートすることは*できません*。

証明書は、ディストリビューションテナントを作成または更新するときにリクエストできます。

**Topics**
+ [ドメインと証明書を追加する (ディストリビューションテナント)](#vanity-domain-tls-tenant)
+ [ドメイン設定を完了する](#complete-domain-ownership)
+ [ドメインを CloudFront にポイントする](#point-domains-to-cloudfront)
+ [ドメインに関する考慮事項 (ディストリビューションテナント)](#tenant-domain-considerations)
+ [ワイルドカードドメイン (ディストリビューションテナント)](#tenant-wildcard-domains)

## ドメインと証明書を追加する (ディストリビューションテナント)
<a name="vanity-domain-tls-tenant"></a>

次の手順では、ドメインを追加し、ディストリビューションテナントの証明書を更新する方法を示します。

**ドメインと証明書を追加するには (ディストリビューションテナント)**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. **[SaaS]** で、**[ディストリビューションテナント]** を選択します。

1. ディストリビューションテナントを検索します。検索バーのドロップダウンメニューを使用して、ドメイン、名前、ディストリビューション ID、証明書 ID、接続グループ ID、またはウェブ ACL ID でフィルタリングします。

1. ディストリビューションテナント名を選択します。

1. **[ドメイン]** で、**[ドメインの管理]** を選択します。

1. **[証明書]** で、ディストリビューションテナントの **[カスタム TLS 証明書]** が必要かどうかを選択します。証明書は、ドメイン名を使用する権限があるかどうかを検証します。証明書は、米国東部 (バージニア北部) リージョンに存在する必要があります。

1. **[ドメイン]** で、**[ドメインの追加]** を選択し、ドメイン名を入力します。ドメインによっては、入力したドメイン名の下に次のメッセージが表示されます。
   + このドメインは証明書の対象です。
   + このドメインは証明書の対象であり、検証保留中です。
   + このドメインは証明書の対象ではありません。(ドメインの所有権を検証する必要があります。)

1. **[ディストリビューションテナントを更新]** を選択します。

   テナントの詳細ページの **[ドメイン]** の下に、次のフィールドが表示されます。
   + **[ドメイン所有権]** – ドメイン所有権のステータス。CloudFront がコンテンツを提供する前に、TLS 証明書の検証を使用して、ドメインの所有権を検証する必要があります。
   + **[DNS ステータス]** – トラフィックを正しくルーティングするには、ドメインの DNS レコードが CloudFront を指す必要があります。

1. ドメインの所有権が確認されていない場合は、テナントの詳細ページの **[ドメイン]** で、**[ドメイン設定の完了]** を選択し、次の手順を実行して DNS レコードが CloudFront ドメイン名を指すようにします。

## ドメイン設定を完了する
<a name="complete-domain-ownership"></a>

以下の手順に従って、ディストリビューションテナントのドメインを所有していることを検証します。ドメインに応じて、次のいずれかの手順を選択します。

**注記**  
ドメインが Amazon Route 53 エイリアスレコードで CloudFront を既に指している場合は、ドメイン名の前に `_cf-challenge.` を使用して、DNS TXT レコードを追加する必要があります。この TXT レコードは、ドメイン名が CloudFront にリンクされていることを検証します。ドメインごとにこの手順を繰り返します。以下に、TXT レコードを更新する方法を示します。  
レコード名: `_cf-challenge.DomainName`
レコードタイプ: `TXT`
レコード値: `CloudFrontRoutingEndpoint`
例えば、TXT コードは次のように表記されます。`_cf-challenge.example.com TXT d111111abcdef8.cloudfront.net`  
CloudFront ルーティングエンドポイントは、ディストリビューションテナントの詳細ページでコンソールで検索するか、「*Amazon CloudFront API リファレンス*」の [ListConnectionGroups](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListConnectionGroups.html) API アクションを使用して検索できます。

**ヒント**  
SaaS プロバイダーで、顧客 (テナント) が TXT レコードを DNS に直接追加する必要なく証明書の発行を許可する場合は、次の操作を行います。  
ドメイン `example-saas-provider.com` を所有している場合は、`customer-123.example-saas-provider.com` などのサブドメインをテナントに割り当てます。
DNS で、`_cf-challenge.customer-123.example-saas-provider.com TXT d111111abcdef8.cloudfront.net` TXT レコードを DNS 設定に追加します。
次に、顧客 (テナント) は独自の DNS レコードを更新して、ドメイン名を指定したサブドメインにマッピングできます。  
`www.customer-domain.com CNAME customer-123.example-saas-provider.com`

------
#### [ I have existing traffic ]

ドメインがダウンタイムを許容できない場合は、このオプションを選択します。オリジン/ウェブサーバーにアクセスできる必要があります。ドメインの所有権を検証するには、次の手順に従います。

**既存のトラフィックがある場合にドメイン設定を完了するには**

1. **[ウェブトラフィックを指定する]** で、**[既存のトラフィックがある]** を選択し、**[次へ]** を選択します。

1. **[ドメインの所有権を検証する]** には、次のいずれかのオプションを選択します。
   + **[既存の証明書を使用する]** – 既存の ACM 証明書を検索するか、リストされているドメインを対象とする証明書 ARN を入力します。
   + **[手動ファイルアップロード]** – ウェブサーバーにファイルをアップロードするための直接アクセス権がある場合に選択します。

     ドメインごとに、**[トークンの場所]** から検証トークンを含むプレーンテキストファイルを作成し、既存のサーバーの指定された **[ファイルパス]** でオリジンにアップロードします。このファイルへのパスは次の例のようになります。`/.well-known/pki-validation/acm_9c2a7b2ec0524d09fa6013efb73ad123.txt`。このステップを完了すると、ACM はトークンを検証し、ドメインの TLS 証明書を発行します。
   + **[HTTP リダイレクト]** – ウェブサーバーにファイルをアップロードするための直接アクセスがない場合、または CDN またはプロキシサービスを使用している場合に選択します。

     ドメインごとに、既存のサーバーに 301 リダイレクトを作成します。**[リダイレクト元]** の下の既知のパスをコピーし、**[リダイレクト先]** の下の指定された証明書エンドポイントをポイントします。リダイレクトは次の例のようになります。

     ```
     If the URL matches: example.com/.well-known/pki-validation/leabe938a4fe077b31e1ff62b781c123.txt
     Then the settings are:Forwarding URL
     Then 301 Permanent Redirect:To validation.us-east-1.acm-validations.aws/123456789012/.well-known/pki-validation/leabe938a4fe077b31e1ff62b781c123.txt
     ```
**注記**  
**[証明書ステータスの確認]** を選択して、ACM がドメインの証明書を発行するタイミングを検証できます。

1. [**次へ**] を選択します。

1. 「[ドメインを CloudFront にポイントする](#point-domains-to-cloudfront)」のステップを完了します。

------
#### [ I don't have traffic ]

新しいドメインを追加する場合は、このオプションを選択します。CloudFront は証明書の検証を管理します。

**トラフィックがない場合にドメイン設定を完了するには**

1. **[ウェブトラフィックを指定する]** で、**[トラフィックがまだありません]** を選択します。

1. ドメイン名ごとに、「[ドメインを CloudFront にポイントする](#point-domains-to-cloudfront)」の手順を完了します。

1. 各ドメイン名の DNS レコードを更新したら、**[次へ]** を選択します。

1. 証明書が発行されるまで待ちます。
**注記**  
**[証明書ステータスの確認]** を選択して、ACM がドメインの証明書を発行するタイミングを検証できます。

1. [**Submit**] を選択してください。

------

## ドメインを CloudFront にポイントする
<a name="point-domains-to-cloudfront"></a>

DNS レコードを更新して、各ドメインから CloudFront ルーティングエンドポイントにトラフィックをルーティングします。複数のドメイン名を持つことができますが、すべてをこのエンドポイントに解決する必要があります。

**ドメインを CloudFront にポイントするには**

1. d111111abcdef8.cloudfront.net などの CloudFront ルーティングエンドポイント値をコピーします。

1. DNS レコードを更新して、各ドメインから CloudFront ルーティングエンドポイントにトラフィックをルーティングします。

   1. ドメインレジストラまたは DNS プロバイダーの管理コンソールにサインインします。

   1. ドメインの DNS 管理セクションに移動します。
      + **サブドメインの場合** – CNAME レコードを作成します。例えば、次のようになります。
        + **名前** – サブドメイン (`www` や `app` など)
        + **値/ターゲット** – CloudFront ルーティングエンドポイント
        + **レコードタイプ** – CNAME
        + **TTL** – 3600 (またはユースケースに適したもの)
      + **apex/root ドメインの場合** – 標準の CNAME レコードをルートまたは apex ドメインレベルで使用できないため、一意の DNS 設定が必要です。ほとんどの DNS プロバイダーは ALIAS レコードをサポートしていないため、Route 53 で ALIAS レコードを作成することをお勧めします。例えば、次のようになります。
        + **名前** – apex ドメイン (`example.com` など)
        + **レコードタイプ** – A
        + **エイリアス** – はい
        + **エイリアスターゲット** – CloudFront ルーティングエンドポイント
        + **ルーティングポリシー** – シンプル (またはユースケースに適したもの)

   1. DNS の変更が伝播されたことを確認します。(これは通常、TTL の有効期限が切れたときに発生します。場合によっては 24～48 時間かかることがあります。) `dig` や `nslookup` などのツールを使用します。

      ```
      dig www.example.com
      # Should eventually return a CNAME pointing to your CloudFront routing endpoint
      ```

1. CloudFront コンソールに戻り、**[送信]** を選択します。ドメインがアクティブになると、CloudFront はドメインのステータスを更新して、ドメインがトラフィックを処理する準備ができていることを示します。

詳細については、DNS プロバイダーのドキュメントを参照してください。
+ [Cloudflare](https://developers.cloudflare.com/dns/manage-dns-records/how-to/create-dns-records/)
+ [ClouDNS](https://www.cloudns.net/wiki/article/9/)
+ [DNSimple](https://support.dnsimple.com/categories/dns/)
+ [Gandi.net](https://www.gandi.net/)
+ [GoDaddy](https://www.godaddy.com/help/manage-dns-records-680)
+ [Google Cloud DNS](https://cloud.google.com/dns/docs/records)
+ [Namecheap](https://www.namecheap.com/support/knowledgebase/article.aspx/767/10/how-to-change-dns-for-a-domain/)

## ドメインに関する考慮事項 (ディストリビューションテナント)
<a name="tenant-domain-considerations"></a>

ドメインがアクティブになると、ドメインコントロールが確立され、CloudFront はこのドメインに対するすべてのビューワーリクエストに応答します。一度アクティブ化すると、ドメインを非アクティブ化したり、非アクティブステータスに変更したりすることはできません。ドメインは、既に使用中の別の CloudFront リソースに関連付けることはできません。ドメインを別のディストリビューションに関連付けるには、[UpdateDomainAssociation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDomainAssociation.html) リクエストを使用して、ドメインを 1 つの CloudFront リソースから別のリソースに移動します。

ドメインが非アクティブの場合、CloudFront はドメインへのビューワーリクエストに応答しません。ドメインが非アクティブの間は、次の点に注意してください。
+ 保留中の証明書リクエストがある場合、CloudFront は既知のパスのリクエストに応答します。リクエストが保留中の間は、ドメインを他の CloudFront リソースに関連付けることはできません。
+ 保留中の証明書リクエストがない場合、CloudFront はドメインのリクエストに応答しません。ドメインを他の CloudFront リソースに関連付けることができます。
+ ディストリビューションテナントごとの*保留中の証明書リクエストは 1 つ*のみです。追加のドメインに対して別の証明書をリクエストする前に、既存の保留中のリクエストをキャンセルする必要があります。既存の証明書リクエストをキャンセルしても、関連付けられた ACM 証明書は削除されません。ACM API を使用してディストリビューションを削除できます。
+ 新しい証明書をディストリビューションテナントに適用すると、以前の証明書の関連付けが解除されます。証明書を再利用して、別のディストリビューションテナントのドメインをカバーできます。

DNS 検証済み証明書の更新と同様に、証明書の更新が成功すると通知されます。それ以外に何かする必要はありません。CloudFront はドメインの証明書の更新を自動的に管理します。

**注記**  
証明書リソースを作成または更新するために ACM API オペレーションを呼び出す必要はありません。[CreateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistributionTenant.html) および [UpdateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistributionTenant.html) API オペレーションを使用して、マネージド証明書リクエストの詳細を指定することで、証明書を管理できます。

## ワイルドカードドメイン (ディストリビューションテナント)
<a name="tenant-wildcard-domains"></a>

ワイルドカードドメインは、以下の状況のディストリビューションテナントでサポートされています。
+ 親マルチテナントディストリビューションから継承された共有証明書にワイルドカードが含まれている場合
+ ディストリビューションテナントに有効な既存のカスタム TLS 証明書を使用する場合

# カスタム接続グループを作成する (オプション)
<a name="custom-connection-group"></a>

デフォルトでは、CloudFront はマルチテナントディストリビューションを作成するときに接続グループを作成します。接続グループは、コンテンツに対するビューワーリクエストが CloudFront に接続する方法を制御します。

デフォルトの接続グループを使用することをお勧めします。ただし、エンタープライズアプリケーションを分離したり、ディストリビューションテナントのグループを個別に管理する必要がある場合は、カスタム接続グループを作成することができます。例えば、DDoS 攻撃が発生した場合、ディストリビューションテナントを別の接続グループに移動する必要がある場合があります。これにより、他のディストリビューションテナントを影響から保護できます。

## カスタム接続グループを作成する (オプション)
<a name="create-connection-group"></a>

必要に応じて、ディストリビューションテナントのカスタム接続グループを作成できます。

**カスタム接続グループを作成するには (オプション)**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. ナビゲーションペインで **[設定]** を選択します。

1. **[接続グループ]** 設定をオンにします。

1. ナビゲーションペインで **[接続グループ]** を選択し、**[接続グループの作成]** を選択します。

1. **[接続グループ名]** に、接続グループの名前を入力します。接続グループを作成した後で、この名前を更新することはできません。

1. **[IPv6]** の場合、この IP プロトコルを有効にするかどうかを指定します。詳細については、「[IPv6 を有効にする (ビューワーリクエスト)](DownloadDistValuesGeneral.md#DownloadDistValuesEnableIPv6)」を参照してください。

1. **[エニーキャスト静的 IP リスト]** で、一連の IP アドレスからディストリビューションテナントにトラフィックを配信するかどうかを指定します。詳細については、「[エニーキャスト静的 IP リスト](request-static-ips.md)」を参照してください。

1. (オプション) 接続グループにタグを追加します。

1. **[接続グループの作成]** を選択します。

接続グループが作成されると、指定した設定と ARN とエンドポイントを確認できます。
+ ARN は次の例のようになります。`arn:aws:cloudfront::123456789012:connection-group/cg_2uVbA9KeWaADTbKzhj9lcKDoM25`
+ エンドポイントは次の例のようになります。d111111abcdef8.cloudfront.net

カスタム接続グループは、作成後に編集または削除できます。接続グループを削除する前に、関連するすべてのディストリビューションテナントを削除する必要があります。マルチテナントディストリビューションの作成時に CloudFront が作成したデフォルトの接続グループを削除することはできません。

**重要**  
ディストリビューションテナントの接続グループを変更すると、CloudFront は引き続きディストリビューションテナントのトラフィックを伝送しますが、レイテンシーが増加します。新しい接続グループから CloudFront ルーティングエンドポイントを使用するように、ディストリビューションテナントの DNS レコードを更新することをお勧めします。  
DNS レコードを更新するまで、CloudFront はウェブサイトが現在 DNS で指しているルーティングエンドポイントに定義されている設定に基づいてルーティングします。例えば、デフォルトの接続グループがエニーキャスト静的 IP を使用していないが、新しいカスタム接続グループが使用しているとします。CloudFront がカスタム接続グループのディストリビューションテナントにエニーキャスト静的 IP を使用する前に、DNS レコードを更新する必要があります。

# マルチテナントディストリビューションに移行する
<a name="template-migrate-distribution"></a>

CloudFront 標準ディストリビューションがあり、マルチテナントディストリビューションに移行する場合は、次の手順に従います。

**標準ディストリビューションからマルチテナントディストリビューションに移行するには**

1. 「[サポートされていない 機能](distribution-config-options.md#unsupported-saas)」を確認します。

1. サポートされていない機能を除く、標準ディストリビューションと同じ設定でマルチテナントディストリビューションを作成します。詳細については、「[コンソールに CloudFront ディストリビューションを作成する](distribution-web-creating-console.md#create-console-distribution)」を参照してください。

1. ディストリビューションテナントを作成し、所有する代替ドメイン名を追加します。
**警告**  
標準ディストリビューションに関連付けられている現在のドメイン名は使用*しない*でください。代わりにプレースホルダードメインを追加します。後でドメインを移動します。ディストリビューションテナントの作成については、「[コンソールに CloudFront ディストリビューションを作成する](distribution-web-creating-console.md#create-console-distribution)」を参照してください。

1. ディストリビューションテナントドメインの既存の証明書を指定します。これは、プレースホルダードメインと移動するドメインを対象とする証明書です。

1. コンソールのディストリビューションテナントの詳細ページから、CloudFront ルーティングエンドポイントをコピーします。または、「*Amazon CloudFront API リファレンス*」の [ListConnectionGroups](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListConnectionGroups.html) API アクションを使用して検索することもできます。

1. ドメインの所有権を確認するには、ディストリビューションテナントの CloudFront ルーティングエンドポイントを指すアンダースコア ( \$1 ) プレフィックスを持つ DCV TXT レコードを作成します。詳細については、「[ドメインを CloudFront にポイントする](managed-cloudfront-certificates.md#point-domains-to-cloudfront)」を参照してください。

1. 変更が伝播済みの場合、以前に標準ディストリビューションに使用したドメインを使用するようにディストリビューションテナントを更新します。
   + **コンソール** – 詳細な手順については、「[ドメインと証明書を追加する (ディストリビューションテナント)](managed-cloudfront-certificates.md#vanity-domain-tls-tenant)」を参照してください。
   + **API** – 「*Amazon CloudFront API リファレンス*」の [UpdateDomainAssociation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDomainAssociation.html) API アクションを使用します。
**重要**  
これにより、コンテンツのキャッシュキーがリセットされます。その後、CloudFront は新しいキャッシュキーを使用してコンテンツのキャッシュを開始します。詳細については、「[キャッシュキーを理解する](understanding-the-cache-key.md)」を参照してください。

1. DNS レコードを更新して、ドメインをディストリビューションテナントの CloudFront ルーティングエンドポイントにポイントします。このステップを完了すると、ドメインがディストリビューションテナントにトラフィックを提供する準備が整います。詳細については、「[ドメインを CloudFront にポイントする](managed-cloudfront-certificates.md#point-domains-to-cloudfront)」を参照してください。

1. (オプション) ドメインをディストリビューションテナントに正常に移行したら、ディストリビューションテナントのドメイン名をカバーする別の CloudFront マネージド証明書を使用できます。マネージド証明書をリクエストするには、別の TXT レコードを作成して証明書を発行し、「[ドメイン設定を完了する](managed-cloudfront-certificates.md#complete-domain-ownership)」のステップに従います。

# ディストリビューションを作成する
<a name="distribution-web-creating-console"></a>

このトピックでは、CloudFront コンソールを使用してディストリビューションを作成する方法について説明します。<a name="create-download-distribution-task-list"></a>

**概要**

1. 1 つ以上の Amazon S3 バケットを作成するか、HTTP サーバーをオリジンサーバーとして構成します。*オリジン*とは、コンテンツのオリジナルバージョンを保存する場所です。CloudFront は、ファイルに対するリクエストを受け取ると、オリジンにアクセスし、エッジロケーションに配信するファイルを取得します。オリジンサーバーとして、10 個の Amazon S3 バケットと HTTP サーバーの任意の組み合わせを使用できます。
   + Amazon S3 を使用する場合は、バケット名をすべて小文字にする必要があります。また、バケット名にスペースを含めることはできません。
   + Amazon EC2 サーバーまたは別のカスタムオリジンを使用する場合は、「[Amazon EC2 (または別のカスタムオリジン) を使用する](DownloadDistS3AndCustomOrigins.md#concept_CustomOrigin)」を確認してください。
   + ディストリビューションに対して作成できるオリジンの現在の最大数について、またはクォータの引き上げを要求するには、「[ディストリビューションの一般的なクォータ](cloudfront-limits.md#limits-web-distributions)」を参照してください。

1. コンテンツをオリジンサーバーにアップロードします。オブジェクトをパブリックに読み出し可能にするか、または CloudFront の署名付き URL を使用して、コンテンツへのアクセスを制限できます。
**重要**  
オリジンサーバーのセキュリティを確保する責任はお客様にあります。サーバーへのアクセス権限を CloudFront に持たせる必要があります。また、コンテンツを保護するためのセキュリティ設定が必要があります。

1. CloudFront ディストリビューションの作成
   + CloudFront コンソールでディストリビューションを作成する詳細な手順については、「[コンソールに CloudFront ディストリビューションを作成する](#create-console-distribution)」を参照してください。
   + CloudFront API を使用してディストリビューションを作成する方法については、「Amazon CloudFront API リファレンス」の「[CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)」を参照してください。**

1. (オプション) CloudFront コンソールを使用してディストリビューションを作成する場合は、ディストリビューションのキャッシュ動作またはオリジンをさらに作成します。動作およびオリジンの詳細については、「[マルチテナントディストリビューションを更新するには](HowToUpdateDistribution.md#HowToUpdateDistributionProcedure)」を参照してください。

1. ディストリビューションをテストします。テストの詳細については、「[ディストリビューションのテスト](distribution-web-testing.md)」を参照してください。

1. ステップ 3 でディストリビューションを作成した後に CloudFront から返されたドメイン名を使用して、お客様のコンテンツにアクセスするためのウェブサイトまたはアプリケーションを開発します。例えば、CloudFront がディストリビューションのドメイン名として d111111abcdef8.cloudfront.net を返した場合、Amazon S3 バケット内または HTTP サーバーのルートディレクトリ内のファイル `image.jpg` の URL は `https://d111111abcdef8.cloudfront.net/image.jpg` になります。

   ディストリビューションの作成時に 1 つ以上の代替ドメイン名 (CNAME) を指定した場合、独自のドメイン名を使用できます。この場合、`image.jpg` の URL を `https://www.example.com/image.jpg` にすることができます。

   次の点に注意してください。
   + 署名付き URL を使用してコンテンツへのアクセスを制限する場合は、「[署名付き URL と署名付き Cookie を使用したプライベートコンテンツを提供する](PrivateContent.md)」を参照してください。
   + 圧縮されたコンテンツを供給する場合は、「[圧縮ファイルを供給する](ServingCompressedFiles.md)」を参照してください。
   + Amazon S3 オリジンおよびカスタムオリジンに対する CloudFront のリクエスト動作およびレスポンス動作については、「[リクエストとレスポンスの動作](RequestAndResponseBehavior.md)」を参照してください。

**Topics**
+ [コンソールに CloudFront ディストリビューションを作成する](#create-console-distribution)
+ [CloudFront でコンソールに表示される値](#distribution-web-values-returned)
+ [その他のリンク](#distribution-helpful-links)
+ [CloudFront 標準ディストリビューションにドメインを追加する](add-domain-existing-distribution.md)

## コンソールに CloudFront ディストリビューションを作成する
<a name="create-console-distribution"></a>

ディストリビューションを作成すると、CloudFront はコンテンツオリジンタイプに基づいてディストリビューション設定を構成します。事前設定された設定内容の詳細については、「[事前設定されたディストリビューション設定リファレンス](template-preconfigured-origin-settings.md)」を参照してください。複数のディストリビューションテナント間で再利用できる設定を使用して、マルチテナントディストリビューションを作成することもできます。詳細については、「[マルチテナントディストリビューションの仕組みを理解する](distribution-config-options.md)」を参照してください。または、独自のディストリビューション設定を手動で設定することもできます。

------
#### [ Multi-tenant ]<a name="CreatingDownloadDistributionsConsoleProcedure"></a>

**マルチテナントディストリビューションを作成するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. ナビゲーションペインで **[ディストリビューション]** を選択し、**[ディストリビューションを作成]** を選択します。

1. **[マルチテナントアーキテクチャ]**、**[次へ]** を選択します。

1. マルチテナントディストリビューションの **[ディストリビューション名]** を入力します。名前は `Name` キーの値として表示されます。この値は、後で変更することができます。マルチテナントディストリビューションには最大 50 個のタグを追加できます。詳細については、「[ディストリビューションのタグ付け](tagging.md)」を参照してください。

1. (オプション) **[ワイルドカード証明書]** の場合は、*\$1.example.com* など、ルートドメインのすべてのサブドメインをカバーする AWS Certificate Manager (ACM) 証明書を選択します。証明書は、米国東部 (バージニア北部) リージョンにある必要があります。

1. [**次へ**] を選択します。

1. **[オリジンを指定]** ページで、CloudFront がコンテンツを取得するオリジンタイプを選択します。CloudFront は、マルチテナントディストリビューションにそのオリジンタイプの推奨設定を使用します。推奨設定の詳細については、「[事前設定されたディストリビューション設定リファレンス](template-preconfigured-origin-settings.md)」を参照してください。

1. **[オリジン]** の場合、選択したオリジンタイプで、使用するオリジンを選択または入力します。

1. **[オリジンパス]** には、スラッシュ (`/`) 文字を入力し、その後にオリジンパスを入力します。

1. (オプション) パラメータを追加するには、オリジンドメイン名またはオリジンパスの **[挿入パラメータ]** を選択します。各フィールドに最大 2 つのパラメータを入力できます。

   1. **[新しいパラメータの作成]** を選択します。

   1. **[新しいパラメータの作成]** ダイアログボックスの **[パラメータ名]** に、パラメータの一意の名前と、オプションで説明を入力します。

   1. **[必須パラメータ]** で、チェックボックスをオンにして、このパラメータ値をディストリビューションテナントレベルで必須にします。必須でない場合は、ディストリビューションテナントが継承する **[デフォルト値]** を入力します。

   1. **[パラメータの作成]** を選択します。このパラメータは、対応するフィールドに表示されます。

1. **[オプション]** で、以下のいずれかのオプションを選択します。
   + **[推奨されるオリジン設定を使用する]** – 選択したオリジンタイプのデフォルトの推奨キャッシュとオリジン設定を使用します。
   + **[オリジン設定のカスタマイズ]** – キャッシュとオリジン設定をカスタマイズします。このオプションを選択した場合は、表示される独自の値を指定します。

1. [**次へ**] を選択します。

1. **[セキュリティ保護を有効にする]** ページで、AWS WAF セキュリティ保護を有効にするかどうかを選択します。特定のディストリビューションテナントのウェブ ACL は後でカスタマイズできます。詳細については、「[新しいディストリビューションで AWS WAF を有効にする](WAF-one-click.md#enable-waf-new-distribution)」を参照してください。

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

1. **[ディストリビューション]** ページで、マルチテナントディストリビューションがリソースのリストに表示されます。**[すべてのディストリビューション]** ドロップダウンを選択して、標準ディストリビューションまたはマルチテナントディストリビューションでフィルタリングできます。**[タイプ]** 列を選択して、標準またはマルチテナントディストリビューションでフィルタリングすることもできます。

デフォルトでは、CloudFront は接続グループを作成します。接続グループは、コンテンツに対するビューワーリクエストが CloudFront に接続する方法を制御します。接続グループの一部のルーティング設定をカスタマイズできます。詳細については、「[マルチテナントディストリビューションの仕組みを理解する](distribution-config-options.md)」を参照してください。

マルチテナントディストリビューションをテンプレートとして使用して、追加のディストリビューションテナントを作成できます。

**ディストリビューションテナントを作成するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. ナビゲーションペインで、次のいずれかを実行します。
   + **[ディストリビューション]** を選択して、マルチテナントディストリビューションを選択し、**[テナントの作成]** を選択します。
   + **[ディストリビューションテナント]** を選択し、**[テナントの作成]** を選択します。

1. **[ディストリビューションテナント名]** に名前を入力します。名前は AWS アカウント内で一意である必要があり、作成後に変更することはできません。

1. **[テンプレートディストリビューション]** では、リストからマルチテナントディストリビューション ID を選択します。

1. **[タグの管理]** で、ディストリビューションテナントに最大 50 個のキーと値のペアを追加します。詳細については、「[ディストリビューションのタグ付け](tagging.md)」を参照してください。****

1. [**次へ**] を選択します。

1. **[ドメインの追加]** ページの **[証明書]** で、ディストリビューションテナントの **[カスタム TLS 証明書]** が必要かどうかを選択します。証明書は、ドメイン名を使用する権限があるかどうかを検証します。証明書は、米国東部 (バージニア北部) リージョンに存在する必要があります。

1. **[ドメイン]** にドメイン名を入力します。
**注記**  
証明書の対象ではないドメイン名を入力した場合は、ドメインを所有していることを検証する必要があります。現時点ではディストリビューションテナントを作成し、後でドメインの所有権を検証できます。詳細については、「[CloudFront ディストリビューションテナントの証明書をリクエストする](managed-cloudfront-certificates.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. **[パラメータの定義]** ページで、マルチテナントディストリビューションで指定したパラメータが表示されます。必須パラメータの場合は、パラメータ名の横に値を入力し、変更を保存します。

1. 別のパラメータを追加するには、**[パラメータを追加]** を選択し、名前と値を入力します。

1. [**次へ**] を選択します。

1. (オプション) **[セキュリティのカスタマイズ]** で、**[ディストリビューション設定を上書きする]** を選択した場合は、ユースケースのオプションを選択します。

1. (オプション) **[地理的制限のカスタマイズ]** で、**[ディストリビューション設定を上書きする]** を選択した場合は、ディストリビューションテナントの適切な **[制限タイプ]** および **[国]** を選択します。詳細については、「[コンテンツの地理的配分を制限する](georestrictions.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

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

すべてのディストリビューションテナントは、**[ディストリビューションテナント]** ページにあります。以下でフィルタリングできます。

**関連付け**
+ ディストリビューション ID
+ 証明書 ID
+ 接続グループ ID
+ ウェブ ACL ID

**プロパティ**
+ 名前
+ ドメイン

ディストリビューションテナントを編集して、特定の設定をカスタマイズできます。詳細については、「[ディストリビューションテナントのカスタマイズ](tenant-customization.md)」を参照してください。

------
#### [ Standard ]

**標準ディストリビューションを作成するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. ナビゲーションペインで **[ディストリビューション]** を選択し、**[ディストリビューションを作成]** を選択します。

1. 標準ディストリビューションの **[ディストリビューション名]** を入力します。名前は、タグの `Name` キーの値として表示されます。この値は、後で変更することができます。標準ディストリビューションには最大 50 個のタグを追加できます。詳細については、「[ディストリビューションのタグ付け](tagging.md)」を参照してください。

1. **[単一のウェブサイトまたはアプリ]**、**[次へ]** を選択します。

1. (オプション) **[ドメインの設定]** では、AWS アカウントの Route 53 に登録済みのドメインを入力するか、新しいドメインを登録します。セットアップ手順を完了します。
   + ドメインが Route 53 以外の DNS プロバイダーを使用している場合でも、ドメインを追加できますが、ディストリビューションの作成後に追加する必要があります。ディストリビューションの作成を続行するには、ドメイン設定をスキップします。後でドメインと TLS 証明書を手動で設定する必要があります。詳細については、「[CloudFront 標準ディストリビューションにドメインを追加する](add-domain-existing-distribution.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. **[オリジンを指定]** ページで、CloudFront がコンテンツを取得するオリジンタイプを選択します。CloudFront は、ディストリビューションにそのオリジンタイプの推奨設定を使用します。推奨設定の詳細については、「[事前設定されたディストリビューション設定リファレンス](template-preconfigured-origin-settings.md)」を参照してください。

1. **[オリジン]** で、オリジンを選択または入力します。

1. **[設定]** で、以下のいずれかのオプションを選択します。
   + **[推奨されるオリジン設定を使用する]** – 選択したオリジンタイプのデフォルトの推奨キャッシュとオリジン設定を使用します。
   + **[オリジン設定のカスタマイズ]** – キャッシュとオリジン設定をカスタマイズします。このオプションを選択した場合は、独自の値を指定します。

1. [**次へ**] を選択します。

1. **[セキュリティ保護を有効にする]** ページで、AWS WAF セキュリティ保護を有効にするかどうかを選択します。

1. [**次へ**] を選択します。

1. (オプション) ドメインに Route 53 を使用している場合は、**[TLS 証明書]** ページが表示されます。CloudFront が AWS アカウントの `us-east-1` AWS リージョンでドメインの既存の AWS Certificate Manager (ACM) 証明書を見つけられない場合、証明書を自動的に作成するか、手動で作成するかを選択できます。証明書を作成したら、**[次へ]** を選択します。

1. ディストリビューションの詳細を確認し、**[ディストリビューションを作成]** を選択します。

1. CloudFront でディストリビューションを作成すると、ディストリビューションの **[ステータス]** 列の値が、**[デプロイ中]** からディストリビューションをデプロイした日時に変わります。

   CloudFront によってディストリビューションに割り当てられたドメイン名がディストリビューションのリストに表示されます。(ドメイン名は、選択されたディストリビューションの [**General**] タブにも表示されます)。
**ヒント**  
「[代替ドメイン名 (CNAME) を追加することによって、カスタム URL を使用する](CNAMEs.md)」の手順に従って、CloudFront によって割り当てられた名前の代わりに、代替ドメイン名を使用できます。

1. ディストリビューションをデプロイする場合は、新しい CloudFront URL (d111111abcdef8.cloudfront.net) または CNAME を使用してコンテンツにアクセスできることを確認します。詳細については、「[ディストリビューションのテスト](distribution-web-testing.md)」を参照してください。

1. ディストリビューションにトラフィックを送信する準備ができたら、CloudFront を指すように DNS レコードを更新します。詳細については、「[ドメインを CloudFront にポイントする (標準ディストリビューション)](add-domain-existing-distribution.md#point-domains-standard)」を参照してください。

------

## CloudFront でコンソールに表示される値
<a name="distribution-web-values-returned"></a>

新しい ディストリビューションの作成や、既存のディストリビューションの更新を行う場合、CloudFront は以下の情報を CloudFront コンソールに表示します。

**注記**  
有効な信頼された署名者、つまり有効な CloudFront キーペアを持つ AWS アカウントのうち有効な署名付き URL の作成に使用できるものは、CloudFront コンソールに現在表示されません。

### ディストリビューション ID
<a name="DownloadDistReturnID"></a>

CloudFront API を使用してディストリビューションに対するアクションを実行する場合、ディストリビューション ID を使用して、どのディストリビューションを使用するかを指定します (例: `EDFDVBD6EXAMPLE`)。ディストリビューションのディストリビューション ID を変更することはできません。

### デプロイとステータス
<a name="DownloadDistReturnStatus"></a>

ディストリビューションをデプロイすると、**[最終変更日]** 列に **[デプロイ中]** ステータスが表示されます。ディストリビューションのデプロイが完了するのを待ち、**[ステータス]** 列に **[有効]** と表示されるのを確認します。詳細については、「[ディストリビューションの状態](DownloadDistValuesGeneral.md#DownloadDistValuesEnabled)」を参照してください。

### 最終更新日時
<a name="DownloadDistReturnLastModDate"></a>

ディストリビューションが最後に変更された日時。ISO 8601 形式が使用されます (例: 2012-05-19T19:37:58Z)。詳しくは、「[https://www.w3.org/TR/NOTE-datetime](https://www.w3.org/TR/NOTE-datetime)」を参照してください。

### ドメイン名
<a name="DownloadDistReturnDomainName"></a>

オブジェクトへのリンク内で、ディストリビューションのドメイン名を使用します。たとえば、ディストリビューションのドメイン名が `d111111abcdef8.cloudfront.net` の場合、`/images/image.jpg` へのリンクは `https://d111111abcdef8.cloudfront.net/images/image.jpg` になります。ディストリビューションの CloudFront ドメイン名を変更することはできません。オブジェクトへのリンクの CloudFront URL の詳細については、「[CloudFront でファイルの URL 形式をカスタマイズする](LinkFormat.md)」を参照してください。

1 つ以上の代替ドメイン名 (CNAME) を指定した場合、オブジェクトへのリンクに、CloudFront ドメイン名ではなく独自のドメイン名を使用できます。CNAME の詳細については、「[代替ドメイン名 (CNAME)](DownloadDistValuesGeneral.md#DownloadDistValuesCNAME)」を参照してください。

**注記**  
CloudFront ドメイン名は一意です。ディストリビューションのドメイン名は以前のディストリビューションで使用されておらず、今後の別のディストリビューションでも再利用されません。

## その他のリンク
<a name="distribution-helpful-links"></a>

ディストリビューションの作成の詳細については、以下のリンクを参照してください。
+ オリジンアクセスコントロール (OAC) で Amazon Simple Storage Service (Amazon S3) バケットオリジンを使用するディストリビューションを作成する方法については、「[CloudFront 標準ディストリビューションの開始方法](GettingStarted.SimpleDistribution.md)」を参照してください。
+ CloudFront API を使用してディストリビューションを作成する方法については、「Amazon CloudFront API リファレンス」の「[CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)」を参照してください。**
+ ディストリビューションの更新 (キャッシュ動作を標準ディストリビューションに追加する、ディストリビューションテナントをカスタマイズするなど) については、「[ディストリビューションを更新する](HowToUpdateDistribution.md)」を参照してください。
+ AWS アカウントごとに作成できるディストリビューションの現在の最大数、またはクォータの引き上げを要求するには、「[ディストリビューションの一般的なクォータ](cloudfront-limits.md#limits-web-distributions)」を参照してください。

# CloudFront 標準ディストリビューションにドメインを追加する
<a name="add-domain-existing-distribution"></a>

新しい CloudFront 標準ディストリビューションを作成したら、ドメインを追加できます。必要に応じて、標準ディストリビューションの作成時に Amazon Route 53 ドメインを設定できます。詳細については、「[コンソールに CloudFront ディストリビューションを作成する](distribution-web-creating-console.md#create-console-distribution)」を参照してください。

## 既存の標準ディストリビューションにドメインを追加する
<a name="add-domain-standard"></a>

**ドメインを標準ディストリビューションに追加するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. ナビゲーションペインで **[ディストリビューション]** を選択し、[ディストリビューション ID] を選択します。

1. **[設定]** で、**[代替ドメイン名]** で、**[ドメインの追加]** を選択します。

1. 処理するドメインを最大 5 つまで入力します。

1. [**次へ**] を選択します。

1. **[TLS 証明書]** の場合、CloudFront が AWS アカウントの `us-east-1` AWS リージョンでドメインの既存の AWS Certificate Manager (ACM) 証明書を見つけられない場合は、作成できます。
   + Amazon Route 53 (Route 53) を使用している場合、CloudFront は自動的に証明書を作成します。

1. 証明書がプロビジョニングされたら、DNS レコードを DNS プロバイダーで更新して、ドメインの所有権を証明する必要があります。次に、**[証明書の検証]** を選択します。詳細については、「[ドメインを CloudFront にポイントする (標準ディストリビューション)](#point-domains-standard)」を参照してください。
   + Route 53 を使用している場合、CloudFront は DNS レコードを更新します。

1. [**次へ**] を選択します。

1. 変更を確認し、**[ドメインの追加]** を選択します。

1. ディストリビューションにトラフィックを送信する前に、必ず CloudFront を指すように DNS レコードを更新します。詳細については、ディストリビューションの詳細ページの **[設定]** セクションで **[ドメインを CloudFront にルーティングする]** を選択します。
   + Route 53 を使用している場合は、CloudFront で DNS ルーティングを自動的にセットアップできます。

## ドメインを CloudFront にポイントする (標準ディストリビューション)
<a name="point-domains-standard"></a>

DNS レコードを更新して、各ドメインから CloudFront ホスト名にトラフィックをルーティングします。複数のドメイン名を持つことができますが、すべてをこのホスト名に解決する必要があります。

**ドメインを CloudFront にポイントするには**

1. d111111abcdef8.cloudfront.net などの CloudFront ホスト名の値をコピーします。

1. DNS レコードを更新して、各ドメインから CloudFront ホスト名にトラフィックをルーティングします。

   1. ドメインレジストラまたは DNS プロバイダーの管理コンソールにサインインします。

   1. ドメインの DNS 管理セクションに移動します。
      + **サブドメインの場合** – CNAME レコードを作成します。例えば、次のようになります。
        + **名前** – サブドメイン (`www` や `app` など)
        + **値/ターゲット** – CloudFront ホスト名
        + **レコードタイプ** – CNAME
        + **TTL** – 3600 (またはユースケースに適したもの)
      + **apex/root ドメインの場合** – 標準の CNAME レコードをルートまたは apex ドメインレベルで使用できないため、一意の DNS 設定が必要です。ほとんどの DNS プロバイダーは ALIAS レコードをサポートしていないため、Route 53 で ALIAS レコードを作成することをお勧めします。例えば、次のようになります。
        + **名前** – apex ドメイン (`example.com` など)
        + **レコードタイプ** – A
        + **エイリアス** – はい
        + **エイリアスターゲット** – CloudFront ホスト名
        + **ルーティングポリシー** – シンプル (またはユースケースに適したもの)

   1. DNS の変更が伝播されたことを確認します。(これは通常、TTL の有効期限が切れたときに発生します。場合によっては 24～48 時間かかることがあります。) `dig` や `nslookup` などのツールを使用します。

      ```
      dig www.example.com
      # Should eventually return a CNAME pointing to your CloudFront hostname
      ```

1. CloudFront コンソールに戻り、**[送信]** を選択します。ドメインがアクティブになると、CloudFront はドメインのステータスを更新して、ドメインがトラフィックを処理する準備ができていることを示します。

詳細については、DNS プロバイダーのドキュメントを参照してください。
+ [Cloudflare](https://developers.cloudflare.com/dns/manage-dns-records/how-to/create-dns-records/)
+ [ClouDNS](https://www.cloudns.net/wiki/article/9/)
+ [DNSimple](https://support.dnsimple.com/categories/dns/)
+ [Gandi.net](https://www.gandi.net/)
+ [GoDaddy](https://www.godaddy.com/help/manage-dns-records-680)
+ [Google Cloud DNS](https://cloud.google.com/dns/docs/records)
+ [Namecheap](https://www.namecheap.com/support/knowledgebase/article.aspx/767/10/how-to-change-dns-for-a-domain/)

# 事前設定されたディストリビューション設定リファレンス
<a name="template-preconfigured-origin-settings"></a>

CloudFront ディストリビューションを作成すると、CloudFront はコンテンツオリジンタイプに基づいて、ほとんどのディストリビューション設定を自動的に構成します。必要に応じて、ディストリビューション設定を手動で編集することもできます。詳細については、「[すべてのディストリビューション設定リファレンス](distribution-web-values-specify.md)」を参照してください。

以下のセクションでは、ディストリビューションのデフォルトの事前設定と、カスタマイズできる設定について説明します。

## Amazon S3 オリジン
<a name="s3-origin-preconfiguration"></a>

以下は、CloudFront がマルチテナントディストリビューションで Amazon S3 オリジン用に事前設定するオリジン設定です。

**オリジン設定 (事前設定済み)**
+ **オリジンアクセスコントロール (コンソールのみ)** – CloudFront はこれをセットアップします。CloudFront は、標準ディストリビューションと、オリジンドメインでパラメータが使用されていないマルチテナントディストリビューションに対して、S3 バケットポリシーの追加を試みます。
+ **カスタムヘッダーの追加** – なし
+ **Origin Shield を有効にする** – いいえ
+ **接続の試行** – 3

以下は、CloudFront がマルチテナントディストリビューションで Amazon S3 オリジン用に事前設定するキャッシュ設定です。

**キャッシュ設定 (事前設定済み)**
+ **オブジェクトを自動的に圧縮する** – はい
+ **ビューワープロトコルポリシー** – HTTPS にリダイレクト
+ **許可される HTTP メソッド** – `GET, HEAD`
+ **ビューワーのアクセスを制限する** – いいえ
+ **キャッシュポリシー** – `CachingOptimized`
+ **オリジンリクエストポリシー** – なし
+ **レスポンスヘッダーポリシー** – なし
+ **スムーズストリーミング** – いいえ
+ **フィールドレベル暗号化** – いいえ
+ **リアルタイムのアクセスログを有効にする** – いいえ
+ **関数** – いいえ

以下は、マルチテナントディストリビューションで Amazon S3 オリジン用にカスタマイズできる設定です。

**カスタマイズ可能な設定**
+ **S3 アクセス** – CloudFront は、S3 バケットの設定に基づいてこれを設定します。
  + **バケットがパブリックの場合** – オリジンアクセスコントロール (OAC) ポリシーは必要ありません。
  + **バケットがプライベートの場合** – 使用する OAC ポリシーを選択または作成できます。
+ **Origin Shield を有効にする** – いいえ
+ **オブジェクトを自動的に圧縮する** – はい
  + **[はい]** を選択すると、`CachingOptimized` キャッシュポリシーが使用されます。
  + **[いいえ]** を選択すると、`CachingOptimizedForUncompressedObjects` キャッシュポリシーが使用されます。

## API Gateway オリジン
<a name="api-gateway-origin-preconfiguration"></a>

以下は、CloudFront がマルチテナントディストリビューションで API Gateway オリジン用に事前設定するオリジン設定です。

**オリジン設定 (事前設定済み)**
+ **プロトコル** – HTTPS のみ
+ **HTTPS ポート** – 443
+ **最小限のオリジン SSL プロトコル** – TLSv1.2
+ **オリジンパス** – なし
+ **オリジンアクセスコントロール (コンソールのみ)** – CloudFront はこれをセットアップします
+ **カスタムヘッダーの追加** – なし
+ **Origin Shield を有効にする** – いいえ
+ **接続の試行** – 3
+ **応答タイムアウト** – 30
+ **キープアライブタイムアウト** – 5

以下は、CloudFront がマルチテナントディストリビューションで API Gateway オリジン用に事前設定するキャッシュ設定です。

**キャッシュ設定 (事前設定済み)**
+ **オブジェクトを自動的に圧縮する** – はい
+ **ビューワープロトコルポリシー** – HTTPS にリダイレクト
+ **許可される HTTP メソッド** – `GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE`
+ **キャッシュ HTTP メソッド** – いいえ
+ **HTTP/2 経由で gRPC リクエストを許可する** – いいえ
+ **ビューワーのアクセスを制限する** – いいえ
+ **キャッシュポリシー** – `CachingDisabled` (指定できる値: `UseOriginCacheControlHeaders`、`UseOriginCacheControlHeaders-QueryStrings`)
+ **オリジンリクエストポリシー** – `AllViewerExceptHostHeader` (指定できる値: `AllViewer`、`AllViewerandCloudFrontHeaders-2022-06`)
+ **レスポンスヘッダーポリシー** – なし
+ **スムーズストリーミング** – いいえ
+ **フィールドレベル暗号化** – いいえ
+ **リアルタイムのアクセスログを有効にする** – いいえ
+ **関数** – いいえ

以下は、マルチテナントディストリビューションの API Gateway オリジン用にカスタマイズできる設定です。

**カスタマイズ可能な設定**
+ **Origin Shield を有効にする** – (デフォルト: いいえ)
+ **オブジェクトを自動的に圧縮する** – (デフォルト: はい)

## カスタムオリジンと EC2 インスタンス
<a name="custom-ec2-origin-preconfiguration"></a>

以下は、CloudFront がマルチテナントディストリビューションのカスタムオリジン用に事前設定するオリジン設定です。

**オリジン設定 (事前設定済み)**
+ **プロトコル** – マッチビューワー
+ **HTTP ポート** – 80
+ **HTTPS ポート** – 443
+ **最小限のオリジン SSL プロトコル** – TLSv1.2
+ **オリジンパス** – なし
+ **カスタムヘッダーの追加** – なし
+ **Origin Shield を有効にする** – いいえ
+ **接続の試行** – 3
+ **応答タイムアウト** – 30
+ **キープアライブタイムアウト** – 5

以下は、CloudFront がマルチテナントディストリビューションのカスタムオリジンと EC2 インスタンス用に事前設定するキャッシュ設定です。

**キャッシュ設定 (事前設定済み)**
+ **オブジェクトを自動的に圧縮する** – はい
+ **ビューワープロトコルポリシー** – HTTPS にリダイレクト
+ **許可される HTTP メソッド** – `GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE`
+ **キャッシュ HTTP メソッド** – いいえ
+ **HTTP/2 経由で gRPC リクエストを許可する** – いいえ
+ **ビューワーのアクセスを制限する** – いいえ
+ **キャッシュポリシー** – `UseOriginCacheControlHeaders` (指定できる値: `UseOriginCacheControlHeaders-QueryStrings`、`CachingDisabled`、`CacheOptimized`、`CachingOptimizedForUncompressedObjects`)
+ **オリジンリクエストポリシー** – `AllViewer` (指定できる値: `AllViewerExceptHostHeader`、`AllViewerandCloudFrontHeaders-2022-06`)
+ **レスポンスヘッダーポリシー** – なし
+ **スムーズストリーミング** – いいえ
+ **フィールドレベル暗号化** – いいえ
+ **リアルタイムのアクセスログを有効にする** – いいえ
+ **関数** – いいえ

以下は、マルチテナントディストリビューションのカスタムオリジンおよび EC2 インスタンス用にカスタマイズできる設定です。

**カスタマイズ可能な設定**
+ **Origin Shield を有効にする** – (デフォルト: いいえ)
+ **オブジェクトを自動的に圧縮する** – (デフォルト: はい)
+ **キャッシュ** – (デフォルト: `Cache by Default`)
  + `Cache by Default` が選択されている場合、`UseOriginCacheControlHeaders` キャッシュポリシーが使用されます。
  + `Do Not Cache by Default` が選択されている場合、`CachingDisabled` キャッシュポリシーが使用されます。
+ **キャッシュにクエリ文字列を含める** – (デフォルト: `Cache by Default` が既に選択されている場合、はい)
  + `Do Not Cache by Default` が既に選択されていて、クエリ文字列をキャッシュに含めることを選択した場合は、`UseOriginCacheControlHeaders-QueryStrings` キャッシュポリシーが使用されます。

## Elastic Load Balancing オリジン
<a name="elb-origin-preconfiguration"></a>

以下は、CloudFront がマルチテナントディストリビューションで Elastic Load Balancing オリジン用に事前設定するオリジン設定です。

**オリジン設定 (事前設定済み)**
+ **プロトコル** – HTTPS のみ
+ **HTTPS ポート** – 443
+ **最小限のオリジン SSL プロトコル** – TLSv1.2
+ **オリジンパス** – なし
+ **カスタムヘッダーの追加** – なし
+ **Origin Shield を有効にする** – いいえ
+ **接続の試行** – 3
+ **応答タイムアウト** – 30
+ **キープアライブタイムアウト** – 5

以下は、CloudFront がマルチテナントディストリビューションの Elastic Load Balancing オリジン用に事前設定するキャッシュ設定です。

**キャッシュ設定 (事前設定済み)**
+ **オブジェクトを自動的に圧縮する** – はい
+ **ビューワープロトコルポリシー** – HTTPS にリダイレクト
+ **許可される HTTP メソッド** – `GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE`
+ **キャッシュ HTTP メソッド** – いいえ
+ **HTTP/2 経由で gRPC リクエストを許可する** – いいえ
+ **ビューワーのアクセスを制限する** – いいえ
+ **キャッシュ** – (デフォルト: `Cache by Default`)
  + `Cache by Default` が選択されている場合、`UseOriginCacheControlHeaders` キャッシュポリシーが使用されます。
  + `Do Not Cache by Default` が選択されている場合、`CachingDisabled` キャッシュポリシーが使用されます。
+ **キャッシュにクエリ文字列を含める** – (デフォルト: `Cache by Default` が既に選択されている場合、はい)
  + `Do Not Cache by Default` が既に選択されていて、クエリ文字列をキャッシュに含めることを選択した場合は、`UseOriginCacheControlHeaders-QueryStrings` キャッシュポリシーが使用されます。
+ **オリジンリクエストポリシー** – `All Viewer` (指定できる値: `AllViewerExceptHostHeader`、`AllViewerandCloudFrontHeaders-2022-06`)
+ **レスポンスヘッダーポリシー** – なし
+ **スムーズストリーミング** – いいえ
+ **フィールドレベル暗号化** – いいえ
+ **リアルタイムのアクセスログを有効にする** – いいえ
+ **関数** – いいえ

マルチテナントディストリビューションで Elastic Load Balancing オリジン用にカスタマイズできる設定を次に示します。

**カスタマイズ可能な設定**
+ **Origin Shield を有効にする** – (デフォルト: いいえ)
+ **オブジェクトを自動的に圧縮する** – (デフォルト: はい)
+ **キャッシュ** – (デフォルト: `Cache by Default`)
  + `Cache by Default` が選択されている場合、`UseOriginCacheControlHeaders` キャッシュポリシーが使用されます。
  + `Do Not Cache by Default` が選択されている場合、`CachingDisabled` キャッシュポリシーが使用されます。
+ **キャッシュにクエリ文字列を含める** – (デフォルト: `Cache by Default` が既に選択されている場合、はい)
  + `Do Not Cache by Default` が既に選択されていて、クエリ文字列をキャッシュに含めることを選択した場合は、`UseOriginCacheControlHeaders-QueryStrings` キャッシュポリシーが使用されます。

## MediaPackage v1 オリジン
<a name="media-package-v1-origin-preconfiguration"></a>

以下は、CloudFront がマルチテナントディストリビューションで MediaPackage v1 オリジン用に事前設定するオリジン設定です。

**オリジン設定 (事前設定済み)**
+ **プロトコル** – HTTPS のみ
+ **HTTPS ポート** – 443
+ **最小限のオリジン SSL プロトコル** – TLSv1.2
+ **オリジンパス** – MediaPackage URL を入力して指定します。
+ **カスタムヘッダーの追加** – なし
+ **Origin Shield を有効にする** – いいえ
+ **接続の試行** – 3
+ **応答タイムアウト** – 30
+ **キープアライブタイムアウト** – 5

以下は、CloudFront がマルチテナントディストリビューションで MediaPackage v1 オリジン用に事前設定するキャッシュ設定です。

**キャッシュ設定 (事前設定済み)**
+ **オブジェクトを自動的に圧縮する** – はい
+ **ビューワープロトコルポリシー** – HTTPS にリダイレクト
+ **許可される HTTP メソッド** – `GET, HEAD`
+ **キャッシュ HTTP メソッド** – いいえ
+ **HTTP/2 経由で gRPC リクエストを許可する** – いいえ
+ **ビューワーのアクセスを制限する** – いいえ
+ **キャッシュポリシー** – `Elemental-MediaPackage`
+ **オリジンリクエストポリシー** – なし
+ **レスポンスヘッダーポリシー** – なし
+ **スムーズストリーミング** – いいえ
+ **フィールドレベル暗号化** – いいえ
+ **リアルタイムのアクセスログを有効にする** – いいえ
+ **関数** – いいえ

## MediaPackage v2 オリジン
<a name="media-package-v2-origin-preconfiguration"></a>

以下は、CloudFront がマルチテナントディストリビューションで MediaPackage v2 オリジン用に事前設定するオリジン設定です。

**オリジン設定 (事前設定済み)**
+ **オリジンアクセスコントロール** – CloudFront がこれを設定し、ポリシーを追加します
+ **プロトコル** – HTTPS のみ
+ **HTTPS ポート** – 443
+ **最小限のオリジン SSL プロトコル** – TLSv1.2
+ **オリジンパス** – なし
+ **カスタムヘッダーの追加** – なし
+ **Origin Shield を有効にする** – いいえ
+ **接続の試行** – 3
+ **応答タイムアウト** – 30
+ **キープアライブタイムアウト** – 5

以下は、CloudFront がマルチテナントディストリビューションで MediaPackage v2 オリジン用に事前設定するキャッシュ設定です。

**キャッシュ設定 (事前設定済み)**
+ **オブジェクトを自動的に圧縮する** – はい
+ **ビューワープロトコルポリシー** – HTTPS にリダイレクト
+ **許可される HTTP メソッド** – `GET, HEAD`
+ **キャッシュ HTTP メソッド** – いいえ
+ **HTTP/2 経由で gRPC リクエストを許可する** – いいえ
+ **ビューワーのアクセスを制限する** – いいえ
+ **キャッシュポリシー** – `Elemental-MediaPackage`
+ **オリジンリクエストポリシー** – なし
+ **レスポンスヘッダーポリシー** – なし
+ **スムーズストリーミング** – いいえ
+ **フィールドレベル暗号化** – いいえ
+ **リアルタイムのアクセスログを有効にする** – いいえ
+ **関数** – いいえ

## MediaTailor オリジン
<a name="media-tailor-origin-preconfiguration"></a>

以下は、CloudFront がマルチテナントディストリビューションで MediaTailor オリジン用に事前設定するオリジン設定です。

**オリジン設定 (事前設定済み)**
+ **プロトコル** – HTTPS のみ
+ **HTTPS ポート** – 443
+ **最小限のオリジン SSL プロトコル** – TLSv1.2
+ **オリジンパス** – MediaPackage URL を入力して指定します。
+ **カスタムヘッダーの追加** – なし
+ **Origin Shield を有効にする** – いいえ
+ **接続の試行** – 3
+ **応答タイムアウト** – 30
+ **キープアライブタイムアウト** – 5

以下は、CloudFront がマルチテナントディストリビューションで MediaTailor オリジン用に事前設定するキャッシュ設定です。

**キャッシュ設定 (事前設定済み)**
+ **オブジェクトを自動的に圧縮する** – はい
+ **ビューワープロトコルポリシー** – HTTPS にリダイレクト
+ **許可される HTTP メソッド** – `GET, HEAD`
+ **キャッシュ HTTP メソッド** – いいえ
+ **HTTP/2 経由で gRPC リクエストを許可する** – いいえ
+ **ビューワーのアクセスを制限する** – いいえ
+ **キャッシュポリシー** – なし
+ **オリジンリクエストポリシー** – `Elemental-MediaTailor-PersonalizedManifests`
+ **レスポンスヘッダーポリシー** – なし
+ **スムーズストリーミング** – いいえ
+ **フィールドレベル暗号化** – いいえ
+ **リアルタイムのアクセスログを有効にする** – いいえ
+ **関数** – いいえ

# すべてのディストリビューション設定リファレンス
<a name="distribution-web-values-specify"></a>

ディストリビューションを作成または更新するときに、CloudFront ディストリビューション設定を手動で編集することを選択できます。以下は、編集できる設定です。

ただし、CloudFront は、コンテンツオリジンタイプに基づいて、ほとんどのディストリビューション設定を構成します。詳細については、「[事前設定されたディストリビューション設定リファレンス](template-preconfigured-origin-settings.md)」を参照してください。

CloudFront コンソールを使用してディストリビューションを作成または更新する方法の詳細については、「[ディストリビューションを作成する](distribution-web-creating-console.md)」または「[ディストリビューションを更新する](HowToUpdateDistribution.md)」を参照してください。

**Topics**
+ [オリジンの設定](DownloadDistValuesOrigin.md)
+ [キャッシュ動作の設定](DownloadDistValuesCacheBehavior.md)
+ [ディストリビューションの設定](DownloadDistValuesGeneral.md)
+ [カスタムエラーページとエラーキャッシュ](DownloadDistValuesErrorPages.md)
+ [地理的制限](DownloadDistValuesEnableGeoRestriction.md)

# オリジンの設定
<a name="DownloadDistValuesOrigin"></a>

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

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

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

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

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

**Topics**
+ [オリジンドメイン](#DownloadDistValuesDomainName)
+ [プロトコル (カスタムオリジンのみ)](#DownloadDistValuesOriginProtocolPolicy)
+ [オリジンのパス](#DownloadDistValuesOriginPath)
+ [名前](#DownloadDistValuesId)
+ [オリジンアクセス (Amazon S3 オリジンのみ)](#DownloadDistValuesOAIRestrictBucketAccess)
+ [カスタムヘッダーを追加する](#DownloadDistValuesOriginCustomHeaders)
+ [Origin Shield を有効にする](#create-update-fields-origin-shield)
+ [接続の試行](#origin-connection-attempts)
+ [接続タイムアウト](#origin-connection-timeout)
+ [応答タイムアウト](#DownloadDistValuesOriginResponseTimeout)
+ [応答完了タイムアウト](#response-completion-timeout)
+ [キープアライブタイムアウト (カスタムオリジンおよび VPC オリジンのみ)](#DownloadDistValuesOriginKeepaliveTimeout)
+ [レスポンスとキープアライブのタイムアウトクォータ](#response-keep-alive-timeout-quota)

## オリジンドメイン
<a name="DownloadDistValuesDomainName"></a>

オリジンドメインは、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?](https://repost.aws/knowledge-center/s3-http-307-response)」と「[一時的なリクエストのリダイレクト](https://docs.aws.amazon.com/AmazonS3/latest/dev/Redirects.html#TemporaryRedirection)」を参照してください。
+ **ウェブサイトとして設定された 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 ディストリビューションと証明書のドメイン名](cnames-and-https-requirements.md#https-requirements-domain-names-in-cert)」および「[CloudFront とカスタムオリジンサーバー間の SSL/TLS ネゴシエーションエラー](http-502-bad-gateway.md#ssl-negotitation-failure)」を参照してください。

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

オリジンが Amazon S3 バケットの場合は、次の点に注意してください。
+ バケットがウェブサイトとして構成されている場合は、バケットの Amazon S3 静的ウェブサイトホスティングエンドポイントを入力します。**[Origin domain]** (オリジンドメイン) フィールドのバケット一覧からバケット名を選択しないでください。静的ウェブサイトホスティングエンドポイントは、Amazon S3 コンソールの **[Static website hosting]** (静的ウェブサイトホスティング) の **[Properties]** (プロパティ) ページに表示されます。詳細については、「[ウェブサイトのエンドポイントとして設定された Amazon S3 バケットを使用する](DownloadDistS3AndCustomOrigins.md#concept_S3Origin_website)」を参照してください。
+ バケットに 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 オリジンへのアクセスを制限する](private-content-restricting-access-to-s3.md)」を参照してください。

**重要**  
オリジンが Amazon S3 バケットの場合、バケット名は DNS 命名要件に準拠する必要があります。詳細については、*Amazon Simple Storage Service ユーザーガイド*の[バケットの制約と制限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html)を参照してください。

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

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

## プロトコル (カスタムオリジンのみ)
<a name="DownloadDistValuesOriginProtocolPolicy"></a>

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

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 証明書を使用するための要件](cnames-and-https-requirements.md)」を参照してください。

**Topics**
+ [HTTP ポート](#DownloadDistValuesHTTPPort)
+ [HTTPS ポート](#DownloadDistValuesHTTPSPort)
+ [最小限のオリジン SSL プロトコル](#DownloadDistValuesOriginSSLProtocols)

### HTTP ポート
<a name="DownloadDistValuesHTTPPort"></a>

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

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

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

### HTTPS ポート
<a name="DownloadDistValuesHTTPSPort"></a>

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

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

### 最小限のオリジン SSL プロトコル
<a name="DownloadDistValuesOriginSSLProtocols"></a>

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

オリジンに 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](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_OriginSslProtocols.html)」を参照してください。

## オリジンのパス
<a name="DownloadDistValuesOriginPath"></a>

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 に送信します。

## 名前
<a name="DownloadDistValuesId"></a>

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

## オリジンアクセス (Amazon S3 オリジンのみ)
<a name="DownloadDistValuesOAIRestrictBucketAccess"></a>

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

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

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

詳しくは、「[Amazon S3 オリジンへのアクセスを制限する](private-content-restricting-access-to-s3.md)」を参照してください。

CloudFront URL のみ使用してカスタムオリジン内のオブジェクトにアクセスするよう要求する方法の詳細については、「[カスタムオリジンのファイルへのアクセスを制限する](private-content-overview.md#forward-custom-headers-restrict-access)」を参照してください。

## カスタムヘッダーを追加する
<a name="DownloadDistValuesOriginCustomHeaders"></a>

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

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

## Origin Shield を有効にする
<a name="create-update-fields-origin-shield"></a>

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

## 接続の試行
<a name="origin-connection-attempts"></a>

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

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

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

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

## 接続タイムアウト
<a name="origin-connection-timeout"></a>

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

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

CloudFront が指定した秒数以内にオリジンへの接続を確立しない場合、CloudFront は次のいずれかを実行します。
+ 指定した **[Connection attempts]** (接続の試行) が 1 を超える場合、CloudFront は接続の確立を再試行します。CloudFront は、**[Connection attempts]** (接続の試行) の値に従って最大 3 回試行します。
+ すべての接続試行が失敗した場合で、オリジンがオリジングループの一部である場合、CloudFront はセカンダリオリジンへの接続を試みます。セカンダリオリジンへの接続試行が指定された回数失敗した場合、CloudFront はビューワーにエラーレスポンスを返します。
+ すべての接続試行が失敗した場合で、オリジンがオリジングループの一部でない場合、CloudFront はエラーレスポンスをビューワーに返します。

## 応答タイムアウト
<a name="DownloadDistValuesOriginResponseTimeout"></a>

オリジン応答タイムアウト (*オリジンの読み取りタイムアウト*または*オリジンリクエストタイムアウト*とも呼ばれる) は、次の両方の値に適用されます。
+ CloudFront がリクエストをオリジンに転送してからレスポンスを受け取るまでの待機時間 (秒)
+ CloudFront がオリジンからレスポンスのパケットを受け取ってから次のパケットを受け取るまでの待機時間 (秒)

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

CloudFront の動作は、ビューワーリクエストの HTTP メソッドによって決まります。
+ `GET` および `HEAD` リクエスト ― 応答タイムアウトの期間内にオリジンが応答しない場合、または応答を停止した場合、CloudFront は接続を中断します。CloudFront は [接続の試行](#origin-connection-attempts) の値に従って接続を再試行します。
+ `DELETE`、`OPTIONS`、`PATCH`、`PUT`、`POST` の各リクエスト – オリジンが読み取りタイムアウトの期間中に応答しない場合、CloudFront は接続を中断し、オリジンへの接続を再試行しません。クライアントは、必要に応じてリクエストを再送信できます。

## 応答完了タイムアウト
<a name="response-completion-timeout"></a>

**注記**  
応答完了タイムアウトは、[継続的デプロイ](continuous-deployment.md)機能をサポートしていません。

CloudFront からオリジンへのリクエストを開いたままにして応答を待機できる時間 (秒単位)。この時間までにオリジンから完全な応答が受信されない場合、CloudFront は接続を終了します。

*個々*のレスポンスパケットの待機時間である**応答タイムアウト**とは異なり、**応答完了タイムアウト**は、CloudFront がレスポンスを完了するまで待機する*最大*許容時間です。この設定を使用すると、他のタイムアウト設定でより長い待機が許可されている場合でも、CloudFront が低速または応答しないオリジンを無期限に待機しないようにすることができます。

この最大タイムアウトには、他のタイムアウト設定に指定したものと、再試行ごとの**接続試行**の回数が含まれます。これらの設定を合わせて使用して、リクエストが完了するかどうかにかかわらず、CloudFront が完全なリクエストを待機する時間とリクエストを終了するタイミングを指定できます。

例えば、次の設定をした場合です。
+ **接続の試行**は 3 回です
+ **接続タイムアウト**は 10 秒です
+ **応答タイムアウト**は 30 秒です
+ **応答完了タイムアウト**は 60 秒です

つまり、CloudFront はオリジンへの接続を試み (最大合計 3 回の試行)、各接続試行は 10 秒でタイムアウトします。接続されると、CloudFront は、応答の最後のパケットを受信するまで、オリジンがリクエストに応答するまで最大 30 秒待機します。

接続試行回数や応答タイムアウトに関係なく、オリジンからの完全な応答が完了するまでに 60 秒以上かかると、CloudFront は接続を終了します。その後、CloudFront は、[HTTP 504 ステータスコード (Gateway Timeout)](http-504-gateway-timeout.md) エラー応答または指定した場合はカスタムエラー応答をビューワーに返します。

**注意事項**  
応答完了タイムアウトの値を設定する場合、その値は[応答タイムアウト (オリジン読み取りタイムアウト)](#DownloadDistValuesOriginResponseTimeout) の値以上である必要があります。
応答完了タイムアウトの値を設定しない場合、CloudFront は最大値を適用しません。

## キープアライブタイムアウト (カスタムオリジンおよび VPC オリジンのみ)
<a name="DownloadDistValuesOriginKeepaliveTimeout"></a>

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

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

## レスポンスとキープアライブのタイムアウトクォータ
<a name="response-keep-alive-timeout-quota"></a>
+ [レスポンスタイムアウト](#DownloadDistValuesOriginResponseTimeout)のデフォルトは 30 秒です。
+ [キープアライブタイムアウト](#DownloadDistValuesOriginKeepaliveTimeout)のデフォルトは 5 秒です。

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

クォータの増加をリクエストする方法など、詳細については、「[ディストリビューションの一般的なクォータ](cloudfront-limits.md#limits-web-distributions)」を参照してください。

# キャッシュ動作の設定
<a name="DownloadDistValuesCacheBehavior"></a>

キャッシュ動作を設定すると、ウェブサイトにあるファイルの特定の URL パスパターンに応じてさまざまな CloudFront 機能を設定できます。たとえば、CloudFront のオリジンサーバーとして使用しているウェブサーバーの `.jpg` ディレクトリ内にあるすべての `images` ファイルに 1 つのキャッシュ動作を適用することができます。キャッシュ動作ごとに構成可能な機能には以下のようなものがあります。
+ パスパターン
+ CloudFront ディストリビューションに対して複数のオリジンを構成した場合、CloudFront でリクエストを転送するオリジン。
+ クエリ文字列をオリジンに転送するかどうか
+ 指定したファイルへのアクセスに署名付き URL を必要とするかどうか
+ これらのファイルへのアクセスに HTTPS を使用するようユーザーに要求するかどうか
+ オリジンがファイルに追加する `Cache-Control` ヘッダーの値に関係なく、これらのファイルを CloudFront キャッシュに保持する最小時間

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

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

ディストリビューションに対して作成できるキャッシュ動作の現在の最大数、またはクォータの引き上げを要求するキャッシュ動作の最大数については、「[ディストリビューションの一般的なクォータ](cloudfront-limits.md#limits-web-distributions)」を参照してください。

**Topics**
+ [パスパターン](#DownloadDistValuesPathPattern)
+ [オリジンまたはオリジングループ](#DownloadDistValuesTargetOriginId)
+ [ビューワープロトコルポリシー](#DownloadDistValuesViewerProtocolPolicy)
+ [許可される HTTP メソッド](#DownloadDistValuesAllowedHTTPMethods)
+ [フィールドレベル暗号化の設定](#DownloadDistValuesFieldLevelEncryption)
+ [キャッシュされる HTTP メソッド](#DownloadDistValuesCachedHTTPMethods)
+ [HTTP/2 経由で gRPC リクエストを許可する](#enable-grpc-distribution)
+ [選択されたリクエストヘッダーに基づいたキャッシュ](#DownloadDistValuesForwardHeaders)
+ [許可リストヘッダー](#DownloadDistValuesAllowlistHeaders)
+ [オブジェクトキャッシュ](#DownloadDistValuesObjectCaching)
+ [最小 TTL](#DownloadDistValuesMinTTL)
+ [最大 TTL](#DownloadDistValuesMaxTTL)
+ [デフォルト TTL](#DownloadDistValuesDefaultTTL)
+ [cookie の転送](#DownloadDistValuesForwardCookies)
+ [許可リスト Cookie](#DownloadDistValuesAllowlistCookies)
+ [クエリ文字列の転送とキャッシュ](#DownloadDistValuesQueryString)
+ [クエリ文字列の許可リスト](#DownloadDistValuesQueryStringAllowlist)
+ [スムーズストリーミング](#DownloadDistValuesSmoothStreaming)
+ [ビューワーのアクセス制限 (署名付き URL または署名付き cookie の使用)](#DownloadDistValuesRestrictViewerAccess)
+ [信頼された署名者](#DownloadDistValuesTrustedSigners)
+ [AWS アカウント番号](#DownloadDistValuesAWSAccountNumbers)
+ [オブジェクトを自動的に圧縮する](#DownloadDistValuesCompressObjectsAutomatically)
+ [CloudFront イベント](#DownloadDistValuesEventType)
+ [Lambda 関数の ARN](#DownloadDistValuesLambdaFunctionARN)
+ [ボディを含める](#include-body)

## パスパターン
<a name="DownloadDistValuesPathPattern"></a>

パスパターン (例: `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 (パスパターン)**] の値は **\$1** (すべてのファイル) に設定され、この値は変更できません。この値によって、CloudFront は、オブジェクトに対するすべてのリクエストを、[オリジンドメイン](DownloadDistValuesOrigin.md#DownloadDistValuesDomainName) フィールドに指定されたオリジンに転送します。オブジェクトのリクエストが、他のどのキャッシュ動作のパスパターンにも一致しない場合、CloudFront は、デフォルトのキャッシュ動作に指定された動作を適用します。

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

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

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

パスパターンには、以下のワイルドカード文字を使用できます。
+ `*` は、0 個以上の文字に一致します。
+ `?` は、正確に 1 個の文字に一致します。

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


****  

| パスパターン | パスパターンに一致するファイル | 
| --- | --- | 
|  `*.jpg`  |  すべての .jpg ファイル。  | 
|  `images/*.jpg`  |  `images` ディレクトリ内、および `images` ディレクトリ下のサブディレクトリ内のすべての .jpg ファイル。  | 
|  `a*.jpg`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesCacheBehavior.html)  | 
|  `a??.jpg`  |  ファイル名が `a` で始まり、ファイル名の後に正確に他の 2 文字が続くすべての .jpg ファイル (例: `ant.jpg`、`abe.jpg`)。  | 
|  `*.doc*`  |  ファイル名拡張子が `.doc` で始まるすべてのファイル (例: `.doc`、`.docx`、`.docm` ファイル)。この場合、パスパターン `*.doc?` を使用することはできません。このパスパターンは `.doc` ファイルのリクエストに適用されないためです。`?` ワイルドカード文字は正確に 1 個の文字を置き換えるものです。  | 

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

  パスパターンでは大文字と小文字が区別されるので、パスパターン `*.jpg` はファイル `LOGO.JPG` には適用されません。
+ 0-9
+ \$1 - . \$1 \$1 / \$1 " ' @ : \$1
+ & (`&amp;` として受け渡しされます)

### パスの正規化
<a name="path-normalization"></a>

CloudFront は [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986#section-6) に従って URI パスを正規化し、そのパスを正しいキャッシュ動作と照合します。キャッシュ動作が一致すると、CloudFront は未加工の URI パスをオリジンに送信します。一致しない場合、リクエストは代わりにデフォルトのキャッシュ動作と照合されます。

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

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

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

## オリジンまたはオリジングループ
<a name="DownloadDistValuesTargetOriginId"></a>

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

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

## ビューワープロトコルポリシー
<a name="DownloadDistValuesViewerProtocolPolicy"></a>

CloudFront エッジロケーションのコンテンツへのアクセスに使用するビューワーのプロトコルポリシーを選択します。
+ [**HTTP and HTTPS (HTTP と HTTPS)**]: ビューワーは両方のプロトコルを使用できます。
+ [**Redirect HTTP to HTTPS (HTTP を HTTPS にリダイレクト)**]: ビューワーは両方のプロトコルを使用できますが、HTTP リクエストは自動的に HTTPS リクエストにリダイレクトされます。
+ [**HTTPS Only (HTTPS のみ)**]: ビューワーは HTTPS を使用している場合にのみコンテンツにアクセスできます。

詳細については、「[ビューワーと CloudFront の間の通信に HTTPS を要求する](using-https-viewers-to-cloudfront.md)」を参照してください。

## 許可される HTTP メソッド
<a name="DownloadDistValuesAllowedHTTPMethods"></a>

CloudFront が処理してオリジンに転送する HTTP メソッドを指定します。
+ [**GET, HEAD**]: CloudFront を使用して、オリジンからのオブジェクトの取得またはオブジェクトヘッダーの取得のみを行うことができます。
+ [**GET, HEAD, OPTIONS**]: CloudFront を使用して、オリジンからのオブジェクトの取得、オブジェクトヘッダーの取得、またはオリジンサーバーがサポートするオプションのリスト取得のみを行うことができます。
+ [**GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE**]: CloudFront を使用して、オブジェクトの取得、追加、更新、削除、およびオブジェクトヘッダーの取得を行うことができます。また、ウェブフォームからのデータの送信など、その他の POST 操作も実行できます。
**注記**  
ワークロードで gRPC を使用している場合は、**GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE** を選択する必要があります。gRPC ワークロードには `POST` メソッドが必要です。詳細については、「[CloudFront ディストリビューションでの gRPC の使用](distribution-using-grpc.md)」を参照してください。  
CloudFront は、`GET` リクエスト、`HEAD` リクエスト、および (オプションで) `OPTIONS` リクエストに対する応答をキャッシュします。`OPTIONS` リクエストへのレスポンスは、`GET` および `HEAD` リクエストへのレスポンスとは別にキャッシュされます (`OPTIONS` メソッドは、`OPTIONS` リクエストの[キャッシュキー](understanding-the-cache-key.md)内にあります)。CloudFront はその他のメソッドを使用するリクエストへのレスポンスをキャッシュしません。

**重要**  
[**GET, HEAD, OPTIONS**] または [**GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE**] を選択した場合は、望ましくない操作がユーザーによって実行されないように、Amazon S3 バケットまたはカスタムオリジンへのアクセスを制限する必要が生じることがあります。以下の例は、アクセスを制限する方法を示しています。  
**ディストリビューションのオリジンとして Amazon S3 を使用している場合:** Amazon S3 コンテンツへのアクセスを制限するための CloudFront オリジンアクセスコントロールを作成し、そのオリジンアクセスコントロールにアクセス許可を付与します。例えば、`PUT` を使用したいという*だけ*の理由で、上記のメソッドを受け入れて転送するように CloudFront を設定する場合は、Amazon S3 バケットのポリシーを `DELETE` リクエストを適切に処理するように引き続き設定する必要があります。詳しくは、「[Amazon S3 オリジンへのアクセスを制限する](private-content-restricting-access-to-s3.md)」を参照してください。
**カスタムオリジンを使用している場合:** すべてのメソッドを処理するようにオリジンサーバーを設定します。たとえば、`POST` を使用したいという*だけ*の理由で、上記のメソッドを受け入れて転送するように CloudFront を構成するという場合は、オリジンサーバーを `DELETE` リクエストを適切に処理するように引き続き構成する必要があります。

## フィールドレベル暗号化の設定
<a name="DownloadDistValuesFieldLevelEncryption"></a>

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

詳細については、「[フィールドレベル暗号化を使用した機密データの保護](field-level-encryption.md)」を参照してください。

## キャッシュされる HTTP メソッド
<a name="DownloadDistValuesCachedHTTPMethods"></a>

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

## HTTP/2 経由で gRPC リクエストを許可する
<a name="enable-grpc-distribution"></a>

ディストリビューションで gRPC リクエストを許可するかどうかを指定します。gRPC を有効にするには、以下の設定を選択します。
+ **[[許可された HTTP メソッド]](#DownloadDistValuesAllowedHTTPMethods)** で、**GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE** メソッドを選択します。gRPC には `POST` メソッドが必要です。
+ `POST` メソッドの選択後に表示される gRPC チェックボックスをオンにします。
+ **[[サポートされる HTTP バージョン](DownloadDistValuesGeneral.md#DownloadDistValuesSupportedHTTPVersions)]** で、**[HTTP/2]** を選択します。

詳細については、「[CloudFront ディストリビューションでの gRPC の使用](distribution-using-grpc.md)」を参照してください。

## 選択されたリクエストヘッダーに基づいたキャッシュ
<a name="DownloadDistValuesForwardHeaders"></a>

指定したヘッダーの値に基づいてオブジェクトを CloudFront でキャッシュするかどうかを指定します。
+ [**None (improves caching) (なし (キャッシュを改善))**] – CloudFront はヘッダー値に基づいたオブジェクトのキャッシュを行いません。
+ **[許可リスト]** – CloudFront は、指定されたヘッダー値のみに基づいてオブジェクトをキャッシュします。**[許可リストヘッダー]** を使って、CloudFront がキャッシュ対象とすりするヘッダーを選択します。
+ [**All (すべて)**] – CloudFront は、このキャッシュ動作に関連付けられているオブジェクトをキャッシュしません。その代わりに、CloudFront はすべてのリクエストをオリジンに送信します (Amazon S3 オリジンには推奨されません)。

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

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

## 許可リストヘッダー
<a name="DownloadDistValuesAllowlistHeaders"></a>

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

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

キャッシュ動作ごとに許可リストに追加できるヘッダーの現在の最大数、またはクォータ (以前は制限と呼ばれていました) の引き上げを要求するヘッダーの最大数については、「[ヘッダーのクォータ](cloudfront-limits.md#limits-custom-headers)」を参照してください。

## オブジェクトキャッシュ
<a name="DownloadDistValuesObjectCaching"></a>

オリジンサーバーが `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)**] の各フィールドで値を指定します。

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

## 最小 TTL
<a name="DownloadDistValuesMinTTL"></a>

オブジェクトに更新あったかどうかを照会するため、CloudFront が次のリクエストをオリジンに送信するまでの期間、オブジェクトを CloudFront キャッシュに保持しておきたい最小時間 (秒単位) を指定します。

**警告**  
最小 TTL が 0 より大きい場合は、オリジンヘッダーに `Cache-Control: no-cache`、`no-store`、`private` ディレクティブが含まれていても、CloudFront はキャッシュポリシーの最小 TTL で指定された期間以上コンテンツをキャッシュします。

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

## 最大 TTL
<a name="DownloadDistValuesMaxTTL"></a>

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

[**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
<a name="DownloadDistValuesDefaultTTL"></a>

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

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

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

## cookie の転送
<a name="DownloadDistValuesForwardCookies"></a>

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

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

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

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

## 許可リスト Cookie
<a name="DownloadDistValuesAllowlistCookies"></a>

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

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

以下のワイルドカード文字を使用して Cookie 名を指定することができます。
+ **\$1** は、Cookie 名に含まれる 0 個以上の文字に一致します。
+ **?** は、Cookie 名に含まれる 1 文字に一致します。

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

`userid_member-number`

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

`userid_*`

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

## クエリ文字列の転送とキャッシュ
<a name="DownloadDistValuesQueryString"></a>

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

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

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

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

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

## クエリ文字列の許可リスト
<a name="DownloadDistValuesQueryStringAllowlist"></a>

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

## スムーズストリーミング
<a name="DownloadDistValuesSmoothStreaming"></a>

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

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

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

詳細については、「[Microsoft Smooth Streaming のビデオオンデマンドを設定する](on-demand-video.md#on-demand-streaming-smooth)」を参照してください。

## ビューワーのアクセス制限 (署名付き URL または署名付き cookie の使用)
<a name="DownloadDistValuesRestrictViewerAccess"></a>

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

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

信頼された署名者の詳細については、「[署名付き URL と署名付き Cookie を作成できる署名者を指定する](private-content-trusted-signers.md)」を参照してください。

## 信頼された署名者
<a name="DownloadDistValuesTrustedSigners"></a>

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

このキャッシュ動作の信頼された署名者として使用する AWS アカウントを選択します。
+ **Self:** 信頼された署名者として AWS マネジメントコンソール へのサインインに現在使用しているアカウントを使用します。現在 IAM ユーザーとしてサインインしている場合は、関連付けられた AWS アカウントが信頼された署名者として追加されます。
+ **[アカウントの指定]:** 信頼された署名者のアカウント番号を **[AWS アカウント番号]** フィールドに入力します。

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

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

## AWS アカウント番号
<a name="DownloadDistValuesAWSAccountNumbers"></a>

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

現在のアカウントに加えて、または現在のアカウントの代わりに、AWS アカウントを使用して署名付き URL を作成する場合、このフィールドの行ごとに 1 つの AWS アカウント番号を入力します。次の点に注意してください。
+ 指定するアカウントに少なくとも 1 つのアクティブな CloudFront キーペアが必要です。詳細については、「[署名者のキーペアを作成する](private-content-trusted-signers.md#private-content-creating-cloudfront-key-pairs)」を参照してください。
+ IAM ユーザーの CloudFront キーペアを作成できないため、信頼された署名者として IAM ユーザーを使用することはできません。
+ アカウントの AWS アカウント 番号を取得する方法については、「AWS アカウント管理リファレンスガイド」の「[AWS アカウント ID を表示する](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html)」を参照してください。**
+ 現在のアカウントのアカウント番号を入力した場合、CloudFront は自動的に **[自己]** のチェックボックスをオンにして、**[AWS アカウント番号]** リストからそのアカウント番号を削除します。

## オブジェクトを自動的に圧縮する
<a name="DownloadDistValuesCompressObjectsAutomatically"></a>

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

## CloudFront イベント
<a name="DownloadDistValuesEventType"></a>

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

次の CloudFront イベントが 1 つ以上発生したときは、Lambda 関数を実行することを選択できます。
+ CloudFront がビューワーからリクエストを受信したとき (ビューワーリクエスト)
+ CloudFront がリクエストをオリジンに転送する前 (オリジンリクエスト)
+ CloudFront がオリジンからレスポンスを受信したとき (オリジンレスポンス)
+ CloudFront がビューワーにレスポンスを返す前 (ビューワーレスポンス)

詳細については、「[イベントを選択して関数をトリガーする](lambda-how-to-choose-event.md)」を参照してください。

## Lambda 関数の ARN
<a name="DownloadDistValuesLambdaFunctionARN"></a>

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

トリガーを追加する Lambda 関数の Amazon リソースネーム (ARN) を指定します。関数の ARN を取得する方法については、「[CloudFront コンソールを使ってトリガーを追加する](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-add-triggers.html#lambda-edge-add-triggers-cf-console)」の手順のステップ 1 を参照してください。

## ボディを含める
<a name="include-body"></a>

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

詳細については、「[ボディを含める](lambda-generating-http-responses.md#lambda-include-body-access)」を参照してください。

# ディストリビューションの設定
<a name="DownloadDistValuesGeneral"></a>

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

**Topics**
+ [価格クラス](#DownloadDistValuesPriceClass)
+ [AWS WAF ウェブ ACL](#DownloadDistValuesWAFWebACL)
+ [代替ドメイン名 (CNAME)](#DownloadDistValuesCNAME)
+ [SSL 証明書](#DownloadDistValuesSSLCertificate)
+ [独自 SSL クライアントのサポート](#DownloadDistValuesClientsSupported)
+ [セキュリティポリシー (SSL/TLS の最小バージョン）](#DownloadDistValues-security-policy)
+ [サポートされる HTTP バージョン](#DownloadDistValuesSupportedHTTPVersions)
+ [デフォルトのルートオブジェクト](#DownloadDistValuesDefaultRootObject)
+ [標準ログ記録](#DownloadDistValuesLoggingOnOff)
+ [接続ログ](#DownloadDistValuesConnectionLogs)
+ [ログのプレフィックス](#DownloadDistValuesLogPrefix)
+ [cookie のログ作成](#DownloadDistValuesCookieLogging)
+ [IPv6 を有効にする (ビューワーリクエスト)](#DownloadDistValuesEnableIPv6)
+ [相互認証](#DownloadDistValuesMutualAuthentication)
+ [カスタムオリジン (オリジンリクエスト) の IPv6 を有効にする](#DownloadDistValuesEnableIPv6-origin)
+ [Comment](#DownloadDistValuesComment)
+ [ディストリビューションの状態](#DownloadDistValuesEnabled)

## 価格クラス
<a name="DownloadDistValuesPriceClass"></a>

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

料金クラスと、選択した料金クラスがディストリビューションの CloudFront パフォーマンスに与える影響の詳細については、「[CloudFront の料金](https://aws.amazon.com/cloudfront/pricing/)」を参照してください。

## AWS WAF ウェブ ACL
<a name="DownloadDistValuesWAFWebACL"></a>

CloudFront ディストリビューションは、ウェブアプリケーションと API を保護してリクエストがサーバーに到達する前にブロックできるようにするウェブアプリケーションファイアウォールである [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf) で保護できます。CloudFront ディストリビューションを作成または編集するときに、[ディストリビューションで AWS WAF を有効にする](WAF-one-click.md)ことができます。

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

AWS WAF の詳細については、[AWS WAF 開発者ガイド](https://docs.aws.amazon.com/waf/latest/developerguide/)を参照してください。

## 代替ドメイン名 (CNAME)
<a name="DownloadDistValuesCNAME"></a>

オプション。ディストリビューションを作成するときに 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 レコードを作成する許可が必要です。通常、これはドメインを所有している、またはドメイン所有者向けにアプリケーションを開発していることを示します。

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

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

## SSL 証明書
<a name="DownloadDistValuesSSLCertificate"></a>

ディストリビューションで使用する代替ドメイン名を指定した場合は、[**Custom SSL Certificate (カスタム SSL 証明書)**] を選択してこの代替ドメイン名を使用する許可を検証し、これを対象とする証明書を選択します。ビューワーが HTTPS を使用してオブジェクトにアクセスするようにする場合は、それをサポートしている設定を選択します。
+ **デフォルトの CloudFront 証明書 (\$1.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 クライアントのサポート
<a name="DownloadDistValuesClientsSupported"></a>

[**SSL 証明書**] で [**カスタム SSL 証明書 (example.com)**] を選択した場合にのみ適用されます。ディストリビューションに 1 つ以上の代替ドメイン名と独自 SSL 証明書を指定した場合は、CloudFront が HTTPS リクエストを処理する方法を選択します。
+ [**Clients that Support Server Name Indication (SNI) - (Recommended) (Server Name Indication (SNI) をサポートするクライアント - (推奨))**] – この設定では、ほとんどすべての最新のウェブブラウザとクライアントは、SNI をサポートしているため、ディストリビューションに接続できます。ただし、一部のビューワーは SNI をサポートしていない古いウェブブラウザやクライアントを使用している可能性があります。つまり、一部のビューワーはディストリビューションに接続できません。

  CloudFront API を使用してこの設定を適用するには、`sni-only` フィールドで `SSLSupportMethod` を指定します。CloudFormation では、このフィールドの名前は `SslSupportMethod` です (大文字と小文字の変更に注意してください)。
+ [**Legacy Clients Support (レガシークライアントサポート)**] – この設定では、SNI をサポートしていない古いウェブブラウザとクライアントはディストリビューションに接続できます。ただし、この設定では、追加の月額料金が発生します。正確な価格については、[[Amazon CloudFront Pricing (Amazon CloudFront の料金)](https://aws.amazon.com/cloudfront/pricing/)] ページに移動し、[**Dedicated IP custom SSL (専用 IP 独自 SSL)**] のページを検索します。

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

詳細については、「[CloudFront で HTTPS リクエストを処理する方法を選択する](cnames-https-dedicated-ip-or-sni.md)」を参照してください。

## セキュリティポリシー (SSL/TLS の最小バージョン）
<a name="DownloadDistValues-security-policy"></a>

CloudFront がビューワー (クライアント) との HTTPS 接続に使用するセキュリティポリシーを指定します。セキュリティポリシーは 2 通りの設定を決定します。
+ CloudFront でビューワーとの通信に使用する最小の SSL/TLS プロトコル。
+ ビューワーに返すコンテンツを暗号化するために CloudFront で使用できる暗号。

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

利用可能なセキュリティポリシーは、[**SSL Certificate (SSL 証明書)**] および [**Custom SSL Client Support (独自 SSL クライアントサポート)**] に指定する値によって異なります (CloudFront API では `CloudFrontDefaultCertificate` および `SSLSupportMethod` が該当します)。
+ [**SSL Certificate (SSL 証明書)**] が [**Default CloudFront Certificate (デフォルトの CloudFront 証明書) (\$1.cloudfront.net)**] である場合 (API では `CloudFrontDefaultCertificate` が `true` である場合)、CloudFront はセキュリティポリシーを自動的に TLSv1 に設定します。
+ **[SSL 証明書]** が **[カスタム SSL 証明書 (example.com)]** で、*かつ* **[カスタム SSL クライアントのサポート]** が **[Server Name Indication (SNI) をサポートするクライアント) - (推奨)]**、(つまり API で `CloudFrontDefaultCertificate` が `false` *かつ* `SSLSupportMethod` が `sni-only` である場合) 次のセキュリティポリシーから選択できます。
  + TLSv1.3\$12025
  + TLSv1.2\$12025
  + TLSv1.2\$12021
  + TLSv1.2\$12019
  + TLSv1.2\$12018
  + TLSv1.1\$12016
  + TLSv1\$12016
  + TLSv1
+ **[SSL 証明書]** が **[カスタム SSL 証明書 (example.com)]** で、*かつ* **[カスタム SSL クライアントサポート]** が **[レガシークライアントサポート]**、(つまり API で `CloudFrontDefaultCertificate` が `false` *かつ* `SSLSupportMethod` が `vip` である場合) 次のセキュリティポリシーから選択できます。
  + TLSv1
  + SSLv3

  この設定では、TLSv1.3\$12025、TLSv1.2\$12025、TLSv1.2\$12021、TLSv1.2\$12019、TLSv1.2\$12018、TLSv1.1\$12016、および TLSv1\$12016 の各セキュリティポリシーを CloudFront コンソールまたは API で使用することはできません。これらのセキュリティポリシーのいずれかを使用する場合は、以下のオプションを指定できます。
  + ディストリビューションが専用 IP アドレスを使用したレガシークライアントサポートを必要としているかどうかを評価します。ビューワーが [[サーバー名表示 (SNI)]](https://en.wikipedia.org/wiki/Server_Name_Indication) をサポートしている場合は、ディストリビューションの **[カスタム SSL クライアントのサポート]** の設定を **[サーバー名表示 (SNI) をサポートするクライアント]** に更新 (API で `SSLSupportMethod` を `sni-only` に設定する) することをお勧めします。これにより、利用可能な TLS セキュリティポリシーのいずれでも使用できます。また、CloudFront の料金も削減できます。
  + 専用 IP アドレスを使用するレガシークライアントのサポートを維持する必要がある場合は、[AWS サポートセンター](https://console.aws.amazon.com/support/home)でケースを作成することによって、他の TLS セキュリティポリシー (TLSv1.3\$12025、TLSv1.2\$12025、TLSv1.2\$12021、TLSv1.2\$12019、TLSv1.2\$12018、TLSv1.1\$12016、または TLSv1\$12016) のいずれかをリクエストできます。
**注記**  
AWS Support に連絡してこの変更をリクエストする前に、以下の点を考慮してください。  
これらのセキュリティポリシー (TLSv1.3\$12025、TLSv1.2\$12025、TLSv1.2\$12021、TLSv1.2\$12019、TLSv1.2\$12018、TLSv1.1\$12016、または TLSv1\$12016) のいずれかをレガシークライアントサポートディストリビューションに追加すると、セキュリティポリシーが AWS アカウントの*すべての*レガシークライアントサポートディストリビューションに対する SNI 以外の*すべての*ビューワーリクエストに適用されます。ただし、ビューワーが、レガシークライアントサポートを使用するディストリビューションに SNI リクエストを送信した場合は、そのディストリビューションのセキュリティポリシーが適用されます。AWS アカウントの*すべての*レガシークライアントサポートディストリビューションに送信された*すべての*ビューワーリクエストに望ましいセキュリティポリシーが適用されることを確実にするには、望ましいセキュリティポリシーをディストリビューションごとに個別に追加します。
定義上、新しいセキュリティポリシーは、古いセキュリティポリシーと同じ暗号やプロトコルをサポートしません。たとえば、ディストリビューションのセキュリティポリシーを TLSv1 から TLSv1.1\$12016 にアップグレードすることを選択した場合、そのディストリビューションは DES-CBC3-SHA 暗号をサポートしなくなります。各セキュリティポリシーがサポートする暗号とプロトコルの詳細については、「[ビューワーと CloudFront との間でサポートされているプロトコルと暗号](secure-connections-supported-viewer-protocols-ciphers.md)」を参照してください。

## サポートされる HTTP バージョン
<a name="DownloadDistValuesSupportedHTTPVersions"></a>

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

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

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

**注記**  
サポートされる TLSv1.3 暗号の詳細については、「[ビューワーと CloudFront との間でサポートされているプロトコルと暗号](secure-connections-supported-viewer-protocols-ciphers.md)」を参照してください。

**注記**  
Amazon Route 53 を使用する場合は、クライアントがサポートしている場合、HTTPS レコードを使用して DNS ルックアップの一部としてプロトコルネゴシエーションを許可できます。詳細については、「[Create alias resource record set](CreatingCNAME.md#alternate-domain-https)」を参照してください。

## デフォルトのルートオブジェクト
<a name="DownloadDistValuesDefaultRootObject"></a>

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

名前の最大長は 255 文字です。名前には以下の文字を含めることができます。
+ A ～ Z、a ～ z
+ 0-9
+ \$1 - . \$1 \$1 / \$1 " '
+ & (`&amp;` として受け渡しされます)

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

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

## 標準ログ記録
<a name="DownloadDistValuesLoggingOnOff"></a>

CloudFront でオブジェクトへの各リクエストに関する情報をログに記録し、ログファイルを保存するかどうかを指定します。ログ作成はいつでも有効または無効にできます。ログ記録を有効にしても追加料金はかかりませんが、ファイルの保存とアクセスについては料金が発生する場合があります。ログの削除はいつでも行うことができます。

CloudFront は、以下の標準ログ記録オプションをサポートしています。
+ [標準ログ記録 (v2)](standard-logging.md) – Amazon CloudWatch Logs、Amazon Data Firehose、Amazon Simple Storage Service (Amazon S3) などの配信先にログを送信できます。
+ [標準ログ記録 (レガシー)](AccessLogs.md) – Amazon S3 バケットにのみログを送信できます。

## 接続ログ
<a name="DownloadDistValuesConnectionLogs"></a>

ディストリビューションの[相互認証](#DownloadDistValuesMutualAuthentication)を有効にすると、CloudFront はディストリビューションに送信されたリクエストに関する属性をキャプチャする接続ログを提供します。接続ログには、クライアントの IP アドレスとポート、クライアント証明書情報、接続結果、使用されている TLS 暗号などの情報が含まれています。これらの接続ログは、リクエストパターンやその他の傾向の確認に使用できます。

接続ログの詳細については、「[接続ログを使用したオブザーバビリティ](connection-logs.md)」を参照してください。

## ログのプレフィックス
<a name="DownloadDistValuesLogPrefix"></a>

(オプション) 標準ログ記録 (レガシー) を有効にする場合は、このディストリビューションのアクセスログファイル名の先頭に CloudFront で追加する文字列 (ある場合) を指定します (例: `exampleprefix/`)。末尾のスラッシュ (/) はオプションですが、ログファイルの参照を容易にするためにこれを使用することをお勧めします。詳細については、「[標準ログ記録 (レガシー) を設定する](standard-logging-legacy-s3.md)」を参照してください。

## cookie のログ作成
<a name="DownloadDistValuesCookieLogging"></a>

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

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

Cookie の詳細については、「[Cookie に基づいてコンテンツをキャッシュする](Cookies.md)」を参照してください。

## IPv6 を有効にする (ビューワーリクエスト)
<a name="DownloadDistValuesEnableIPv6"></a>

CloudFront が IPv4 および IPv6 IP アドレスからのビューワーリクエストに応答するには、**[IPv6 を有効にする]** を選択します。詳細については、「[CloudFront ディストリビューションの IPv6 を有効にする](cloudfront-enable-ipv6.md)」を参照してください。

## 相互認証
<a name="DownloadDistValuesMutualAuthentication"></a>

オプション。CloudFront ディストリビューションの相互認証を有効にできます。詳細については、「[CloudFront による相互 TLS 認証 (Viewer mTLS)オリジンの相互 TLS と CloudFront](mtls-authentication.md)」を参照してください。

## カスタムオリジン (オリジンリクエスト) の IPv6 を有効にする
<a name="DownloadDistValuesEnableIPv6-origin"></a>

カスタムオリジン (Amazon S3 および VPC オリジンを除く) を使用する場合、ディストリビューションのオリジン設定をカスタマイズして、IPv4 または IPv6 アドレスを使用して CloudFront がオリジンに接続する方法を選択できます。詳細については、「[CloudFront ディストリビューションの IPv6 を有効にする](cloudfront-enable-ipv6.md)」を参照してください。

## Comment
<a name="DownloadDistValuesComment"></a>

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

## ディストリビューションの状態
<a name="DownloadDistValuesEnabled"></a>

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

  CloudFront ディストリビューションの作成、変更、削除を行った場合、その変更が CloudFront データベースに伝達されるまで時間がかかります。変更直後に出したディストリビューションに関する情報のリクエストには、変更が反映されていない可能性があります。通常、伝達は数分以内で完了しますが、システムの高負荷またはネットワークパーティションによっては、それより時間がかかる可能性があります。
+ *Disabled (無効)*: ディストリビューションがデプロイされていて、使用準備ができていても、ユーザーはディストリビューションを使用できません。ディストリビューションを無効にするときはいつでも、そのディストリビューションに関連付けられたドメイン名を使用するコンテンツへのエンドユーザーリクエストを CloudFront は受け付けません。(ディストリビューションの構成を更新することで) ディストリビューションを無効から有効に切り替えるまで、誰もディストリビューションを使用できません。

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

# カスタムエラーページとエラーキャッシュ
<a name="DownloadDistValuesErrorPages"></a>

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

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

**Topics**
+ [HTTP エラーコード](#DownloadDistValuesErrorCode)
+ [Response page path (レスポンスページのパス)](#DownloadDistValuesResponsePagePath)
+ [HTTP レスポンスコード](#DownloadDistValuesResponseCode)
+ [Error caching minimum TTL (seconds) (エラーキャッシュ最小 TTL (秒))](#DownloadDistValuesErrorCachingMinTTL)

## HTTP エラーコード
<a name="DownloadDistValuesErrorCode"></a>

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

## Response page path (レスポンスページのパス)
<a name="DownloadDistValuesResponsePagePath"></a>

[**Error Code (エラーコード)**] で指定した HTTP ステータスコード (403 など) がオリジンから返されたときに、CloudFront がビューワーに返すカスタムエラーページのパス (例: `/4xx-errors/403-forbidden.html`)。オブジェクトとカスタムエラーページを別の場所に保存する場合は、次の状況に該当するときに適用されるキャッシュ動作をディストリビューションに組み込む必要があります。
+ [**Path Pattern (パスパターン)**] の値が、カスタムエラーメッセージのパスと一致している。たとえば、4xx エラーのカスタムエラーページを `/4xx-errors` というディレクトリの Amazon S3 バケットに保存したとします。このとき、パスパターンによってカスタムエラーページのリクエストのルーティング先である場所に対するキャッシュ動作を、ディストリビューションに組み込む必要があります (例: **/4xx-errors/\$1**)。
+ [**Origin (オリジン)**] の値は、カスタムエラーページが含まれているオリジンの [**Origin ID (オリジン ID)**] の値を指定しています。

## HTTP レスポンスコード
<a name="DownloadDistValuesResponseCode"></a>

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

## Error caching minimum TTL (seconds) (エラーキャッシュ最小 TTL (秒))
<a name="DownloadDistValuesErrorCachingMinTTL"></a>

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

# 地理的制限
<a name="DownloadDistValuesEnableGeoRestriction"></a>

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

# ディストリビューションのテスト
<a name="distribution-web-testing"></a>

ディストリビューションの作成が終わると、CloudFront にオリジンサーバーの場所が記憶され、ドメイン名がディストリビューションに関連付けられます。ディストリビューションをテストするには、次の手順を実行します。

1. ディストリビューションがデプロイされるまで待ちます。
   + コンソールでディストリビューションの**詳細**を表示します。ディストリビューションのデプロイが完了すると、**[最終変更日**] フィールドが **[デプロイ中]** から 日付と時刻に変わります。

1. 次の手順を使用して、CloudFront ドメイン名でオブジェクトへのリンクを作成します。

1. リンクをテストします。CloudFront は、ウェブページまたはアプリケーションにオブジェクトを提供します。

## オブジェクトへのリンクを作成する
<a name="distribution-create-object-links"></a>

CloudFront ウェブディストリビューションでオブジェクトのテストリンクを作成するには、次の手順に従います。<a name="distribution-web-testing-procedure"></a>

**ウェブディストリビューション内のオブジェクトへのリンクを作成するには**

1. 以下の HTML コードを新しいファイルにコピーし、*domain-name* をディストリビューションのドメイン名で置き換え、*object-name* をオブジェクトの名前で置き換えます。

   ```
   <html>
   <head>
   	<title>My CloudFront Test</title>
   </head>
   <body>
   	<p>My text content goes here.</p>
   	<p><img src="https://domain-name/object-name" alt="my test image"></p>
   </body>
   </html>
   ```

   たとえば、ドメイン名が `d111111abcdef8.cloudfront.net` で、オブジェクトが `image.jpg` の場合、リンクの URL は次のようになります。

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

   オブジェクトがオリジンサーバー内のフォルダにある場合は、そのフォルダも URL に含める必要があります。たとえば、image.jpg がオリジンサーバーのイメージフォルダにある場合、URL は次のようになります。

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

1. HTML コードを、html ファイル名拡張子の付いたファイルに保存します。

1. ブラウザでウェブページを開いて、オブジェクトが見られるかどうかを確認します。

ブラウザに、イメージファイルが埋め込まれたページが表示されます。これは CloudFront がオブジェクトを供給するのに適切と判断したエッジロケーションから供給されたものです。

# ディストリビューションを更新する
<a name="HowToUpdateDistribution"></a>

CloudFront コンソールで、AWS アカウントに関連付けられた CloudFront ディストリビューションを表示したり、ディストリビューションの設定を表示したり、ほとんどの設定を更新したりできます。設定に変更を加えても、ディストリビューションが AWS エッジロケーションに伝達されるまで有効にならないことに注意してください。

## コンソールでディストリビューションを更新する
<a name="update-distribution-console"></a>

次の手順は、コンソールで CloudFront ディストリビューションを更新する方法を示しています。

------
#### [ Multi-tenant ]<a name="HowToUpdateDistributionProcedure"></a>

**マルチテナントディストリビューションを更新するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. マルチテナントディストリビューションの ID を検索して選択します。

1. 更新する設定のタブを選択します。

1. 更新してから変更内容を保存するには、**[変更を保存する]** を選択します。更新できる設定の詳細については、「[事前設定されたディストリビューション設定リファレンス](template-preconfigured-origin-settings.md)」を参照してください。

CloudFront API を使用してディストリビューションを更新することもできます。
+ ディストリビューションを更新するには、『*Amazon CloudFront API リファレンス*』の「[UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)」を参照してください。

**重要**  
ディストリビューションを更新する際は、ディストリビューションを最初に作成するときには必須でないいくつかの追加フィールドが必須であることに注意してください。CloudFront API を使用してディストリビューションを更新するときにすべての必須フィールドを確実に含めるには、「Amazon CloudFront API リファレンス」の「[UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)」で説明している手順に従います。**

ディストリビューションテナントのマルチテナントディストリビューションを変更するには、ディストリビューションテナントを更新します。また、ディストリビューションテナントを更新して、ドメイン、証明書、カスタマイズ、またはパラメータ値を更新します。ディストリビューションテナント証明書の更新の詳細については、「[ドメインと証明書を追加する (ディストリビューションテナント)](managed-cloudfront-certificates.md#vanity-domain-tls-tenant)」を参照してください。

**ディストリビューションテナントを更新するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. **[SaaS]** で、**[ディストリビューションテナント]** を選択します。

1. ディストリビューションテナントを検索します。検索バーのドロップダウンメニューを使用して、ドメイン、名前、ディストリビューション ID、証明書 ID、接続グループ ID、またはウェブ ACL ID でフィルタリングします。

1. ディストリビューションテナント名を選択します。

1. 一般的な **[詳細]** を更新するには、**[編集]** を選択し、更新を行い、**[ディストリビューションテナントの更新]** を選択します。

1. 更新する他の設定について、適切なタブを選択し、更新を行い、保存します。カスタマイズできるディストリビューションテナント設定の詳細については、「[ディストリビューションテナントのカスタマイズ](tenant-customization.md)」を参照してください。

------
#### [ Standard ]

**標準ディストリビューションを更新するには**

1. AWS マネジメントコンソール にサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. ディストリビューションの ID を選択します。リストには、CloudFront コンソールへのサインインに使用した AWS アカウントに関連付けられているすべてのディストリビューションが含まれています。

1. 全般設定を更新するには、[**Edit (編集)**] を選択します。それ以外の場合は、更新する設定のタブを選択します。

1. 更新を行い、**[変更を保存する]** を選択します。フィールドの詳細については、以下の各トピックを参照してください。
   + **全般設定:** [ディストリビューションの設定](DownloadDistValuesGeneral.md)
   + **オリジンの設定:** [オリジンの設定](DownloadDistValuesOrigin.md)
   + **キャッシュ動作の設定:** [キャッシュ動作の設定](DownloadDistValuesCacheBehavior.md)

1. ディストリビューションのオリジンを削除する場合は、次の操作を行います。

   1. [**Behaviors (動作)**] を選択し、そのオリジンに関連付けられているデフォルトのキャッシュ動作が別のオリジンに移動済みであることを確認します。

   1. [**Origins (オリジン)**] で、オリジンを選択します。

   1. [**Delete**] (削除) を選択します。

CloudFront API を使用してディストリビューションを更新することもできます。
+ ディストリビューションを更新するには、『*Amazon CloudFront API リファレンス*』の「[UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)」を参照してください。

**重要**  
ディストリビューションを更新する際は、ディストリビューションの作成時には必要でないいくつかの追加フィールドが必須であることに注意してください。CloudFront API を使用してディストリビューションを更新するときにすべての必須フィールドを確実に含めるには、「Amazon CloudFront API リファレンス」の「[UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)」で説明している手順に従います。**

------

ディストリビューション構成に対する変更を保存すると、CloudFront はすべてのエッジロケーションへの変更の伝達を開始します。連続した設定の変更は、それぞれの順序で伝播されます。エッジロケーションで構成が更新されるまで、CloudFront は以前の構成に基づいて、そのエッジロケーションからコンテンツを引き続き供給します。エッジロケーションで構成が更新されると、CloudFront は新しい構成に基づいて、そのエッジロケーションからコンテンツの供給を直ちに開始します。

変更は、すべてのエッジロケーションに同時に伝達されるわけではありません。CloudFront が変更を伝播している間は、特定のエッジロケーションで以前の設定と新しい設定のどちらに基づいてコンテンツを提供しているかを判断することはできません。

**注記**  
まれに、ホストまたはネットワークリンクが中断された場合、変更がネットワークを通過するまで、一部のディストリビューションテナントトラフィックが古い設定を使用して、短時間処理されることがあります。

変更がいつ伝達されるかを確認するには、コンソールでディストリビューションの**詳細**を表示します。デプロイが完了すると、**[最終変更日]** フィールドが **[デプロイ中]** から日付と時刻に変わります。

# ディストリビューションのタグ付け
<a name="tagging"></a>

タグは、AWS リソースを特定し、整理するために使用できる単語または語句です。各リソースには複数のタグを追加でき、各タグにはユーザーが定義したキーと値が含まれています。たとえば、キーが "domain" で値が "example.com" というタグを付けることができます。追加したタグに基づいて、リソースを検索したりフィルタ処理したりできます。

以下の例のように、CloudFront でタグを使用できます。
+ CloudFront ディストリビューションにタグベースのアクセス許可を適用します。詳細については、「[CloudFront での ABAC](security_iam_service-with-iam.md#security_iam_service-with-iam-tags)」を参照してください。
+ さまざまなカテゴリの請求情報を追跡します。CloudFront ディストリビューションまたは AWS リソース (Amazon EC2 インスタンスや Amazon S3 バケットなど) にタグを適用してタグをアクティブ化すると、AWS がアクティブなタグごとに使用量とコストを集計したコスト配分レポートを CSV (カンマ区切り値) ファイルとして生成します。

  自社のカテゴリ、たとえばコストセンター、アプリケーション名、所有者を表すタグを適用すると、複数のサービスにわたってコストを分類することができます。タグを使ったコスト配分の詳細については、*AWS Billing ユーザーガイド*の[コスト配分タグの使用](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)を参照してください。

**注意事項**  
ディストリビューションをタグ付けできますが、オリジンアクセスアイデンティティや無効化をタグ付けすることはできません。
[タグエディタ](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html)および [リソースグループ](https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html)は、現在、CloudFront でサポートされていません。
ディストリビューションに追加できるタグの数の現在の最大制限については、「[一般的なクォータ](cloudfront-limits.md#limits-general)」を参照してください。

**Contents**
+ [タグの制限](#tagging-restrictions)
+ [ディストリビューションに対するタグの追加、編集、削除](#tagging-add-edit-delete)
+ [プログラムによるタグ付け](#tagging-related-information)

## タグの制限
<a name="tagging-restrictions"></a>

タグには以下のベーシックな制限があります。
+ ディストリビューションあたりのタグの最大数については、「[一般的なクォータ](cloudfront-limits.md#limits-general)」を参照してください。
+ キーの最大長 – 128 文字 (Unicode)
+ 値の最大長 – 256 文字 (Unicode)
+ キーと値の有効な値 – a～z、A～Z、0～9、スペース、特殊文字 (\$1 . : / = \$1 - @)
+ タグのキーと値は大文字と小文字が区別されます。
+ `aws:` をキーのプレフィックスとして使用しないでください。このプレフィックスは AWS 専用として予約されています。

## ディストリビューションに対するタグの追加、編集、削除
<a name="tagging-add-edit-delete"></a>

CloudFront コンソールを使用して、ディストリビューションのタグを管理できます。<a name="tagging-add-edit-delete-procedure"></a>

**ディストリビューションにタグを追加、編集、または削除するには**

1. AWS マネジメントコンソール にサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 更新するディストリビューションの ID を選択します。

1. [**タグ**] タブを選択します。

1. **[タグを管理]** を選択します。

1. **[Manage tags]** (タグの管理) ページで、次の操作を実行できます。
   + タグを追加するには、キーと、タグの値 (オプション) を入力します。タグをさらに追加するには、**[新しいタグを追加]** を選択します。
   + タグを編集するには、タグのキーまたはその値、あるいはその両方を変更します。タグの値を削除することはできますが、キーが必要です。
   + タグを削除するには、**[削除]** を選択します。

1. **[Save changes]** (変更の保存) をクリックします。

## プログラムによるタグ付け
<a name="tagging-related-information"></a>

CloudFront API、AWS Command Line Interface (AWS CLI)、AWS SDK、および AWS Tools for Windows PowerShell を使用して、リソースにタグを適用することもできます。詳細については、以下の各トピックを参照してください。
+ CloudFront API 操作:
  + [ListTagsForResource](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListTagsForResource.html) 
  + [TagResource](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_TagResource.html) 
  + [UntagResource](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UntagResource.html) 
+ AWS CLI –*AWS CLI コマンドリファレンス*の「[cloudfront](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudfront/index.html)」を参照
+ AWS SDK – 「[AWS ドキュメント](https://docs.aws.amazon.com/index.html)」ページの該当する SDK ドキュメントを参照
+ Tools for Windows PowerShell — [AWS Tools for PowerShell Cmdlet リファレンス](https://docs.aws.amazon.com/powershell/latest/reference/)にある「[Amazon CloudFront](https://docs.aws.amazon.com/powershell/latest/reference/items/CloudFront_cmdlets.html)」を参照してください

# ディストリビューションを削除する
<a name="HowToDeleteDistribution"></a>

以下の手順では、CloudFront コンソールを使用してディストリビューションを削除します。CloudFront API を使用した削除については、「*Amazon CloudFront API リファレンス*」の「[DeleteDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DeleteDistribution.html)」を参照してください。

S3 バケットに OAC がアタッチされているディストリビューションを削除する必要がある場合は、重要な詳細について「[S3 バケットに OAC がアタッチされたディストリビューションを削除する](private-content-restricting-access-to-s3.md#delete-oac-distribution-s3)」を参照してください。

**警告**  
ディストリビューションを削除する前に、これを無効にする必要があります。そのためには、ディストリビューションを更新するアクセス許可が必要です。削除されたディストリビューションは復元できません。
代替ドメイン名が関連付けられているディストリビューションを無効にすると、CloudFront は、別のディストリビューションにこのドメイン (\$1.example.com) と一致するワイルドカード (\$1) 付きの代替ドメイン名がある場合でも、このドメイン名 (たとえば、www.example.com) へのトラフィックの受信を停止します。
[CloudFront 定額料金プラン](flat-rate-pricing-plan.md)にサブスクライブされているディストリビューションを削除することはできません。「料金プランにサブスクライブしている間は、このディストリビューションを削除できません」というエラーが表示されます。まず料金プランをキャンセルし、現在の請求サイクルの後にディストリビューションを削除する必要があります。

------
#### [ Multi-tenant ]

マルチテナントディストリビューションを削除する前に、まず関連するすべてのディストリビューションテナントを削除する必要があります。<a name="HowToDeleteDistributionProcedure"></a>

**マルチテナントディストリビューションを削除するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. CloudFront コンソールの右のペインで、削除するディストリビューションの名前を選択します。

1. **[テナント]** の場合は、関連するすべてのディストリビューションテナントを選択して削除します。

1. ディストリビューションを無効にするには、**[無効]** を選択し、**[ディストリビューションを無効にする]** を選択して確定します。

1. **[最終変更日]** 列に新しいタイムスタンプが表示されるまで待ちます。
   + CloudFront がすべてのエッジロケーションに変更を伝達するまでに数分かかる場合があります。

1. **[削除]**、**[ディストリビューションの削除]** を選択します。

**ディストリビューションテナントを削除するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. **[SaaS]** で、**[ディストリビューションテナント]** を選択します。

1. ディストリビューションテナントを検索します。検索バーのドロップダウンメニューを使用して、ドメイン、名前、ディストリビューション ID、証明書 ID、接続グループ ID、またはウェブ ACL ID でフィルタリングします。

1. 削除するディストリビューションテナントを選択します。

1. **[テナントの削除]**、**[ディストリビューションテナントの削除]** を選択します。

------
#### [ Standard ]

**標準ディストリビューションを削除にするには**

1. AWS マネジメントコンソール にサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. CloudFront コンソールの右のペインで、削除するディストリビューションを見つけます。
   + **[ステータス]** 列にディストリビューションが既に **[無効]** と表示されている場合は、ステップ 6 に進みます。
   + **[ステータス]** に **[有効]** と表示されているのに、**[最終変更日]** 列にディストリビューションが **[デプロイ中]** と表示される場合は、デプロイが完了するのを待ってからステップ 3 に進みます。

1. CloudFront コンソールの右のペインで、削除するディストリビューションのチェックボックスをオンにします。

1. [**Disable (無効)**] を選択してディストリビューションを無効にし、[**Yes, Disable (はい、無効にします)**] を選択して確定します。次に、[**Close**] (閉じる) を選択します。
   + **[ステータス]** 列の値がすぐに **[無効]** に変わります。

1. **[最終変更日]** 列に新しいタイムスタンプが表示されるまで待ちます。
   + CloudFront がすべてのエッジロケーションに変更を伝達するまでに数分かかる場合があります。

1. 削除するディストリビューションのチェックボックスをオンにします。

1. [**Delete**] (削除) を選択し、**削除**します。
   + **[削除]** オプションが使用できない場合、CloudFront がエッジロケーションに変更を伝達中であることを意味します。**[最終変更日]** 列に新しいタイムスタンプが表示されるまで待ってから、ステップ 6～7 を繰り返します。

------

# CloudFront ディストリビューションでさまざまなオリジンを使用する
<a name="DownloadDistS3AndCustomOrigins"></a>

ディストリビューションを作成するときに、CloudFront によってファイルのリクエストが送信される場所である*オリジン*を指定します。CloudFront では、さまざまなオリジンを使用できます。例えば、Amazon S3 バケット、MediaStore コンテナ、MediaPackage チャネル、Application Load Balancer、AWS Lambda 関数 URL を使用できます。CloudFront ディストリビューションを作成すると、CloudFront はコンテンツオリジンタイプに基づいて、ほとんどのディストリビューション設定を自動的に構成します。詳細については、「[事前設定されたディストリビューション設定リファレンス](template-preconfigured-origin-settings.md)」を参照してください。

プライベートサブネットに Application Load Balancer、Network Load Balancer、または EC2 インスタンスがある場合は、それを VPC オリジンとして使用できます。VPC オリジンを使用すると、アプリケーションは CloudFront ディストリビューションを持つプライベートサブネットでのみアクセスでき、アプリケーションがパブリックインターネットでアクセスできなくなります。詳細については、「[VPC オリジンを使用したアクセス制限](private-content-vpc-origins.md)」を参照してください。

**注記**  
エッジ関数を使用して、各リクエストに適切なオリジンを動的に選択できます。CloudFront Functions または Lambda@Edge を使用すると、ビューワーの地理的位置、リクエストヘッダー、クエリ文字列パラメータなどの要因に基づいて、リクエストをさまざまなオリジンにルーティングできます。詳細については、「[関数を使用してエッジでカスタマイズする](edge-functions.md)」を参照してください。

**Topics**
+ [Amazon S3 バケットを使用する](#using-s3-as-origin)
+ [MediaStore コンテナまたは MediaPackage チャネルを使用する](#concept_AWS_Media)
+ [Application Load Balancer を使用する](#concept_elb_origin)
+ [Network Load Balancer を使用する](#concept_nlb_origin)
+ [Lambda 関数 URL を使用する](#concept_lambda_function_url)
+ [Amazon EC2 (または別のカスタムオリジン) を使用する](#concept_CustomOrigin)
+ [CloudFront オリジングループを使用する](#concept_origin_groups)
+ [Amazon API Gateway を使用する](#use-api-gate-way-origin)

## Amazon S3 バケットを使用する
<a name="using-s3-as-origin"></a>

以下のトピックでは、CloudFront ディストリビューションのオリジンとして Amazon S3 バケットを使用するさまざまな方法について説明します。

**Topics**
+ [標準的な Amazon S3 バケットを使用する](#concept_S3Origin)
+ [Amazon S3 Object Lambda を使用する](#using-S3-Object-Lambda)
+ [Amazon S3 Access Point を使用する](#using-S3-Access-Point)
+ [ウェブサイトのエンドポイントとして設定された Amazon S3 バケットを使用する](#concept_S3Origin_website)
+ [既存の Amazon S3 バケットに CloudFront を追加する](#adding-cloudfront-to-s3)
+ [Amazon S3 バケットを別の AWS リージョン に移動する](#move-s3-bucket-different-region)

### 標準的な Amazon S3 バケットを使用する
<a name="concept_S3Origin"></a>

ディストリビューションのオリジンとして Amazon S3 を使用する場合、CloudFront が配信するオブジェクトを、Amazon S3 バケットに配置します。オブジェクトを Amazon S3 に保存するには、Amazon S3 でサポートされる任意の方法を使用できます。例えば、Amazon S3 コンソールや API、サードパーティーのツールを使用できます。他の標準 Amazon S3 バケットと同様に、バケット内に階層を作成してオブジェクトを保存できます。

既存の Amazon S3 バケットを CloudFront オリジンサーバーとして使用してもバケットに変更は一切ありません。Amazon S3 オブジェクトの保存やアクセスで通常使用しているとおりに通常の Amazon S3 価格でバケットを使用できます。バケットへのオブジェクトの保存には、通常の Amazon S3 料金が発生します。CloudFront の使用料の詳細については、「[Amazon CloudFront 料金表](https://aws.amazon.com/cloudfront/pricing/)」を参照してください。CloudFront での既存の S3 バケットの使用の詳細については、「[既存の Amazon S3 バケットに CloudFront を追加する](#adding-cloudfront-to-s3)」を参照してください。

**重要**  
バケットが CloudFront で正常に機能するには、その名前が DNS 命名要件に沿ったものでなければなりません。詳細については、*Amazon Simple Storage Service ユーザーガイド*の「[バケットの命名規則](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)」を参照してください。

CloudFront のオリジンとして Amazon S3 バケットを指定する場合は、次の形式を使用することをお勧めします。

`bucket-name.s3.region.amazonaws.com`

この形式でバケット名を指定した場合、以下の CloudFront 機能を使用することができます。
+ SSL/TLS を使用して Amazon S3 バケットと通信するように CloudFront を設定します。詳しくは、「[CloudFront で HTTPS を使用する](using-https.md)」を参照してください。
+ オリジンアクセスコントロールを使用して、Amazon S3 URL ではなく CloudFront URL を使ってコンテンツにアクセスするようビューワーに要求します。詳しくは、「[Amazon S3 オリジンへのアクセスを制限する](private-content-restricting-access-to-s3.md)」を参照してください。
+ `POST` リクエストと `PUT` リクエストを CloudFront に送信して、バケットのコンテンツを更新します。詳細については、トピック「[CloudFront がリクエストを処理して Amazon S3 オリジンに転送する方法](RequestAndResponseBehaviorS3Origin.md#RequestBehaviorS3Origin)」の「[HTTP メソッド](RequestAndResponseBehaviorS3Origin.md#RequestS3HTTPMethods)」を参照してください。

以下の形式を使用してバケットを指定しないでください。
+ Amazon S3 パススタイル: `s3.amazonaws.com/bucket-name`
+ Amazon S3 の CNAME

**注記**  
CloudFront は、S3 Intelligent-Tiering を含むあらゆるストレージクラスを使用する S3 オリジンをサポートします。CloudFront が S3 オリジンからオブジェクトをリクエストすると、オブジェクトは現在存在するストレージ階層に関係なく取得されます。S3 Intelligent-Tiering で CloudFront を使用しても、ディストリビューションのパフォーマンスや機能には影響しません。詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[Amazon S3 Intelligent-Tiering によるストレージコストの管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering.html)」を参照してください。

### Amazon S3 Object Lambda を使用する
<a name="using-S3-Object-Lambda"></a>

[Object Lambda アクセスポイントを作成する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-create.html)と、Amazon S3 は Object Lambda アクセスポイントの固有のエイリアスを自動的に生成します。CloudFront 配信のオリジンとして、Amazon S3 バケット名の代わりに[このエイリアス使用する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-use.html#ol-access-points-alias)ことができます。

Object Lambda アクセスポイントエイリアスを CloudFront のオリジンとして使用する場合は、次の形式を使用することをお勧めします。

`alias.s3.region.amazonaws.com`

`alias` の検索の詳細については、「*Amazon S3 ユーザーガイド*」の「[S3 バケット Object Lambda アクセスポイントにおけるバケット形式のエイリアスの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-use.html#ol-access-points-alias)」を参照してください。

**重要**  
Object Lambda アクセスポイントを CloudFront のオリジンとして使用する場合は、[オリジンアクセスコントロール](private-content-restricting-access-to-s3.md)を使用する必要があります。

ユースケースの例については、「[Amazon S3 Object Lambda を Amazon CloudFront で使用して、エンドユーザー向けにコンテンツをカスタマイズする](https://aws.amazon.com/blogs/aws/new-use-amazon-s3-object-lambda-with-amazon-cloudfront-to-tailor-content-for-end-users/)」を参照してください。

CloudFront は、Object Lambda アクセスポイントのオリジンを[標準の Amazon S3 バケットオリジン](#concept_S3Origin)と同じように扱います。

Amazon S3 Object Lambda をディストリビューションのオリジンとして使用する場合は、次の 4 つのアクセス許可を設定する必要があります。

------
#### [ Object Lambda Access Point ]

**Object Lambda アクセスポイントのアクセス許可を追加するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[Object Lambda アクセスポイント]** を選択します。

1. 使用する Object Lambda アクセスポイントを選択します。

1. **[アクセス許可]** タブを選択します。

1. **[Object Lambda アクセスポイントポリシー]** セクションで **[編集]** を選択します。

1. 以下のポリシーを **[ポリシー]** フィールドに貼り付けます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "cloudfront.amazonaws.com"
               },
               "Action": "s3-object-lambda:Get*",
               "Resource": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/Object-Lambda-Access-Point-name",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceArn": "arn:aws:cloudfront::123456789012:distribution/CloudFront-distribution-ID"
                   }
               }
           }
       ]
   }
   ```

------

1. **[Save changes]** (変更の保存) をクリックします。

------
#### [ Amazon S3 Access Point ]

**Amazon S3 アクセスポイントのアクセス許可を追加するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[アクセスポイント]** を選択します。

1. 使用する Amazon S3 アクセスポイントを選択します。

1. **[アクセス許可]** タブを選択します。

1. **[アクセスポイントポリシー]** セクションで **[編集]** を選択します。

1. 以下のポリシーを **[ポリシー]** フィールドに貼り付けます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "default",
       "Statement": [
           {
               "Sid": "s3objlambda",
               "Effect": "Allow",
               "Principal": {
                   "Service": "cloudfront.amazonaws.com"
               },
               "Action": "s3:*",
               "Resource": [
                   "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name",
                   "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name/object/*"
               ],
               "Condition": {
                   "ForAnyValue:StringEquals": {
                       "aws:CalledVia": "s3-object-lambda.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. **[保存]** を選択します。

------
#### [ Amazon S3 bucket ]

**Amazon S3 バケットにアクセス許可を追加するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**バケット**を選択します。

1. 使用する Amazon S3 バケットを選択します。

1. **[アクセス許可]** タブを選択します。

1. **[バケットポリシー]** セクションで、**[編集]** を選択します。

1. 以下のポリシーを **[ポリシー]** フィールドに貼り付けます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "*"
               },
               "Action": "*",
               "Resource": [
                   "arn:aws:s3:::bucket-name",
                   "arn:aws:s3:::bucket-name/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "s3:DataAccessPointAccount": "AWS-account-ID"
                   }
               }
           }
       ]
   }
   ```

------

1. **[Save changes]** (変更の保存) をクリックします。

------
#### [ AWS Lambda function ]

**Lambda 関数にアクセス許可を追加するには**

1. AWS マネジメントコンソール にサインインして AWS Lambda コンソール ([https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)) を開きます。

1. ナビゲーションペインで、[**Functions**] (関数) を選択します。

1. 使用する AWS Lambda 関数を選択します。

1. **[設定]** タブを開き、次に **[アクセス許可]** をクリックします。

1. **[リソースベースのポリシーステートメント]** セクションで **[アクセス許可の追加]** を選択します。

1. を選択してください。。**AWS アカウント**

1. **[ステートメント ID]** の名前を入力します。

1. **[プリンシパル]** の `cloudfront.amazonaws.com` を入力します。

1. **[アクション]** ドロップダウンメニューから `lambda:InvokeFunction` を選択します。

1. **[保存]** を選択します。

------

### Amazon S3 Access Point を使用する
<a name="using-S3-Access-Point"></a>

[S3 アクセスポイントを使用する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-access-points.html)場合、Amazon S3 は固有のエイリアスを自動的に生成します。CloudFront 配信のオリジンとして、Amazon S3 バケット名の代わりにこのエイリアス使用することができます。

Amazon S3 アクセスポイントエイリアスを CloudFront のオリジンとして使用する場合は、次の形式を使用することをお勧めします。

`alias.s3.region.amazonaws.com`

`alias` の検索の詳細については、「Amazon S3 ユーザーガイド」の「[S3 バケットアクセスポイントでのバケット形式のエイリアスの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-alias.html)」を参照してください。**

**重要**  
Amazon S3 アクセスポイントを CloudFront のオリジンとして使用する場合は、[オリジンアクセスコントロール](private-content-restricting-access-to-s3.md)を使用する必要があります。

CloudFront は、Amazon S3 アクセスポイントオリジンを[標準の Amazon S3 バケットオリジン](#concept_S3Origin)と同じように扱います。

Amazon S3 Object Lambda をディストリビューションのオリジンとして使用する場合は、次の 2 つのアクセス許可を設定する必要があります。

------
#### [ Amazon S3 Access Point ]

**Amazon S3 アクセスポイントのアクセス許可を追加するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[アクセスポイント]** を選択します。

1. 使用する Amazon S3 アクセスポイントを選択します。

1. **[アクセス許可]** タブを選択します。

1. **[アクセスポイントポリシー]** セクションで **[編集]** を選択します。

1. 以下のポリシーを **[ポリシー]** フィールドに貼り付けます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "default",
       "Statement": [
           {
               "Sid": "s3objlambda",
               "Effect": "Allow",
               "Principal": {"Service": "cloudfront.amazonaws.com"},
               "Action": "s3:*",
               "Resource": [
                   "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name",
                   "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name/object/*"
               ],
               "Condition": {
                   "StringEquals": {"aws:SourceArn": "arn:aws:cloudfront::123456789012:distribution/CloudFront-distribution-ID"}
               }
           }
       ]
   }
   ```

------

1. **[保存]** を選択します。

------
#### [ Amazon S3 bucket ]

**Amazon S3 バケットにアクセス許可を追加するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**バケット**を選択します。

1. 使用する Amazon S3 バケットを選択します。

1. **[アクセス許可]** タブを選択します。

1. **[バケットポリシー]** セクションで、**[編集]** を選択します。

1. 以下のポリシーを **[ポリシー]** フィールドに貼り付けます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "*"
               },
               "Action": "*",
               "Resource": [
                   "arn:aws:s3:::bucket-name",
                   "arn:aws:s3:::bucket-name/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "s3:DataAccessPointAccount": "AWS-account-ID"
                   }
               }
           }
       ]
   }
   ```

------

1. **[Save changes]** (変更の保存) をクリックします。

------

### ウェブサイトのエンドポイントとして設定された Amazon S3 バケットを使用する
<a name="concept_S3Origin_website"></a>

ウェブサイトエンドポイントとして設定されている Amazon S3 バケットを、CloudFront のカスタムオリジンとして使用できます。CloudFront ディストリビューションを設定するときに、オリジンにバケットのエンドポイントをホストしている Amazon S3 の静的ウェブサイトを入力します。この値は、[Amazon S3 コンソール](https://console.aws.amazon.com/s3/)の [**Static Website Hosting**] (静的ウェブサイトホスティング) ペインの [**Properties**] (プロパティ) タブに表示されます。例: 

`http://bucket-name.s3-website-region.amazonaws.com`

Amazon S3 静的ウェブサイトエンドポイントを指定する方法の詳細については、*Amazon Simple Storage Service ユーザーガイド*の「[ウェブサイトエンドポイント](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html)」を参照してください。

この形式でバケット名をオリジンとして指定すると、Amazon S3 リダイレクトと Amazon S3 カスタムエラードキュメントを使用できます。詳細については、[Amazon Simple Storage Service ユーザーガイド](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-page-redirect.html)の「[カスタムエラードキュメントの設定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CustomErrorDocSupport.html)」および「*リダイレクトの設定*」を参照してください。(CloudFront もカスタムエラーページを提供します。詳細については、「[HTTP ステータスコード別のカスタムエラーページを作成する](creating-custom-error-pages.md)」を参照してください)。

Amazon S3 バケットを CloudFront オリジンサーバーとして使用しても、バケットは変更されません。通常使用しているとおりに使用でき、通常の Amazon S3 料金が発生します。CloudFront の使用料の詳細については、「[Amazon CloudFront 料金表](https://aws.amazon.com/cloudfront/pricing/)」を参照してください。

**注記**  
CloudFront API を使用して、ウェブサイトエンドポイントとして設定された Amazon S3 バケットを使用したディストリビューションを作成する場合、ウェブサイトが Amazon S3 バケットでホストされている場合でも、`CustomOriginConfig` を使用して設定する必要があります。CloudFront API を使用したディストリビューションを作成する方法の詳細については、*Amazon CloudFront API リファレンス*の「[CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)」を参照してください。

### 既存の Amazon S3 バケットに CloudFront を追加する
<a name="adding-cloudfront-to-s3"></a>

オブジェクトを Amazon S3 バケットに保存している場合は、ユーザーがオブジェクトを S3 から直接取得できるようにするか、または CloudFront が S3 からオブジェクトを取得してからユーザーに配信するように設定できます。使用量が多ければ、Amazon S3 データ転送よりも CloudFront データ転送のほうが料金が安いので、ユーザーがオブジェクトに頻繁にアクセスする場合は、CloudFront を使用するほうがコストパフォーマンスが向上します。また、Amazon S3 だけからダウンロードするよりも、CloudFront を使用したほうが、ユーザーにより近い場所にオブジェクトが保存されているので、より速くダウンロードできます。

**注記**  
CloudFront で Amazon S3 の Cross-Origin Resource Sharing 設定を尊重する場合は、選択したヘッダーを Amazon S3 に転送するように `Origin` を設定します。詳細については、「[リクエストヘッダーに基づいてコンテンツをキャッシュする](header-caching.md)」を参照してください。

現在、Amazon S3 バケットのドメイン名 (amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com など) を使わずに、お客様自身のドメイン名 (example.com など) を使って Amazon S3 バケットから直接コンテンツを配信している場合は、以下の手順を行うことにより、支障なく CloudFront を追加できます。<a name="migrate-s3-to-cloudfront-process"></a>

**Amazon S3 からすでにコンテンツを配信しているときに CloudFront を追加するには**

1. CloudFront ディストリビューションを作成します。詳細については、「[ディストリビューションを作成する](distribution-web-creating-console.md)」を参照してください。

   ディストリビューションを作成するときに、オリジンサーバーとして Amazon S3 バケットの名前を指定します。
**重要**  
バケットが CloudFront で正常に機能するには、その名前が DNS 命名要件に沿ったものでなければなりません。詳細については、*Amazon Simple Storage Service ユーザーガイド*の「[バケットの命名規則](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)」を参照してください。

   Amazon S3 で CNAME を使用している場合、ディストリビューションにもその CNAME を指定します。

1. Amazon S3 バケット内にあるパブリックに読み出し可能なオブジェクトへのリンクが含まれているテストウェブページを作成して、リンクをテストします。この初期テストでは、オブジェクト URL にお客様のディストリビューションの CloudFront ドメイン名 (例: `https://d111111abcdef8.cloudfront.net/images/image.jpg`) を使用します。

   CloudFront URL の形式の詳細については、「[CloudFront でファイルの URL 形式をカスタマイズする](LinkFormat.md)」を参照してください。

1. Amazon S3 の CNAME を使用している場合、アプリケーションでは、バケットの名前 (例: amzn-s3-demo-bucket.s3.amazonaws.com) を使用する代わりにお客様のドメイン名 (例: example.com) を使用して、Amazon S3 バケットのオブジェクトを参照しています。引き続き、ディストリビューションの CloudFront ドメイン名 (例: d111111abcdef8.cloudfront.net) を使用する代わりにお客様のドメイン名を使用してオブジェクトを参照する場合、DNS サービスプロバイダーを使用して設定を更新する必要があります。

   Amazon S3 の CNAME が機能するためには、DNS サービスプロバイダーに、現在ドメインに対するクエリを Amazon S3 バケットにルーティングしているドメインの CNAME リソースレコードセットが必要です。たとえば、ユーザーが次のオブジェクトをリクエストした場合、

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

   このリクエストは自動的に再ルーティングされ、次のオブジェクトがユーザーに表示されます。

   `https://amzn-s3-demo-bucket.s3.amazonaws.com/images/image.jpg`

   クエリを Amazon S3 バケットではなく CloudFront ディストリビューションにルーティングするには、DNS サービスプロバイダーから提供された方法を使用して、ドメインの CNAME リソースレコードセットを更新する必要があります。この更新された CNAME レコードによって、お客様のドメインからディストリビューションの CloudFront ドメイン名に、DNS クエリがリダイレクトされます。詳細については、DNS サービスプロバイダーから提供されたドキュメントを参照してください。
**注記**  
Route 53 を DNS サービスとして使用している場合は、CNAME リソースレコードセットまたはエイリアスリソースレコードセットを使用できます。リソースレコードセットの編集については、「[レコードの編集](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-editing.html)」を参照してください。エイリアスリソースレコードセットの詳細については、「[エイリアスおよび非エイリアスリソースレコードの選択](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-choosing-alias-non-alias.html)」を参照してください。どちらのトピックも、*Amazon Route 53 開発者ガイド*にあります。

   CloudFront での CNAME の使用の詳細については、「[代替ドメイン名 (CNAME) を追加することによって、カスタム URL を使用する](CNAMEs.md)」を参照してください。

   CNAME リソースレコードセットを更新してから変更が DNS システム全体に伝達されるまで最大で 72 時間かかりますが、通常は、それよりも早く終了します。この間、コンテンツに対する一部の要求は引き続き Amazon S3 バケットにルーティングされ、それ以外の要求は CloudFront にルーティングされます。

### Amazon S3 バケットを別の AWS リージョン に移動する
<a name="move-s3-bucket-different-region"></a>

CloudFront ディストリビューションのオリジンとして Amazon S3 を使用していて、バケットを別の AWS リージョンに移動する場合、以下の両方に該当するときは、CloudFront でレコードを更新して新しいリージョンを使用するまでに最大 1 時間かかることがあります。
+ CloudFront オリジンアクセスアイデンティティ (OAI) を使用してバケットへのアクセスを制限している
+ バケットの移動先の Amazon S3 リージョンで認証に署名バージョン 4 が要求される

OAI を使用している場合、CloudFront はリージョン (数ある値の中で) を使用して、バケットのオブジェクトをリクエストするために使用する署名を計算します。OAI の詳細については、「[オリジンアクセスアイデンティティを使用する (レガシー、非推奨)](private-content-restricting-access-to-s3.md#private-content-restricting-access-to-s3-oai)」を参照してください。署名バージョン 2 をサポートする AWS リージョンのリストについては、「*Amazon Web Services 全般のリファレンス*」の「[署名バージョン 2 の署名プロセス](https://docs.aws.amazon.com/general/latest/gr/signature-version-2.html)」を参照してください。

CloudFront レコードの更新を高速化させるには、CloudFront コンソールの [**General**] (全般) タブの [**Descrption**] (説明) フィールドを更新するなどして、CloudFront ディストリビューションを更新できます。ディストリビューションを更新すると、CloudFront はバケットがあるリージョンを即座に確認します。すべてのエッジロケーションへの変更の伝達には数分しかかかりません。

## MediaStore コンテナまたは MediaPackage チャネルを使用する
<a name="concept_AWS_Media"></a>

CloudFront を使用してビデオをストリーミングするには、まず、MediaStore コンテナとして設定された Amazon S3 バケットを設定するか、MediaPackage でチャネルとエンドポイントを作成します。その後、CloudFront でディストリビューションを作成し設定して、ビデオをストリーミングします。

詳細と手順については、以下のトピックを参照してください。
+ [AWS Elemental MediaStore をオリジンとして使用してビデオを配信する](live-streaming.md#video-streaming-mediastore)
+ [AWS Elemental MediaPackage でフォーマットされたライブ動画を配信する](live-streaming.md#live-streaming-with-mediapackage)

## Application Load Balancer を使用する
<a name="concept_elb_origin"></a>

CloudFront を使用して、内部向けとインターネット向け両方の Application Load Balancer にトラフィックをルーティングできます。

オリジンが 1 つ以上の Amazon EC2 インスタンスでホストされている 1 つ以上の HTTP(S) サーバー (ウェブサーバー) である場合、インターネット向けの Application Load Balancer を使用して、インスタンスにトラフィックを分散することもできます。インターネットに接続しているロードバランサーは、パブリックに解決可能な DNS 名を持ち、クライアントからのリクエストをインターネット経由でターゲットにルーティングします。

ロードバランサーに直接アクセスするのではなく CloudFront 経由でのみウェブサーバーにアクセスできるようにする方法など、CloudFront のオリジンとしてインターネット向け Application Load Balancer を使用する方法の詳細については、「[Application Load Balancer へのアクセスを制限する](restrict-access-to-load-balancer.md)」を参照してください。

または、VPC オリジンを使用して、仮想プライベートクラウド (VPC) プライベートサブネット内の内部 Application Load Balancer でホストされているアプリケーションからコンテンツを配信することもできます。VPC オリジンは、パブリックインターネットからアプリケーションにアクセスできないようにします。詳細については、「[VPC オリジンを使用したアクセス制限](private-content-vpc-origins.md)」を参照してください。

## Network Load Balancer を使用する
<a name="concept_nlb_origin"></a>

Amazon CloudFront では、内部およびインターネット向け Network Load Balancer の両方を使用できます。VPC オリジンを使用して、CloudFront のプライベートサブネット内で内部 Network Load Balancer を使用できます。CloudFront VPC オリジンを使用すると、プライベート VPC サブネットにホストされたアプリケーションからパブリックインターネットに公開することなくコンテンツを提供できます。詳細については、「[VPC オリジンを使用したアクセス制限](private-content-vpc-origins.md)」を参照してください。

または、CloudFront を使用して、インターネット向け Network Load Balancer からトラフィックを配信することもできます。インターネット向けロードバランサーにはパブリックに解決可能な DNS 名があり、インターネット上のクライアントと CloudFront ディストリビューションの両方からリクエストを受信できます。

## Lambda 関数 URL を使用する
<a name="concept_lambda_function_url"></a>

[Lambda 関数 URL](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) は、Lambda 関数専用の HTTPS エンドポイントです。Lambda 関数 URL を使用して、サーバーレスウェブアプリケーションを完全に Lambda 内で構築できます。API Gateway またはApplication Load Balancer と統合する必要なく、関数 URL を介して Lambda ウェブアプリケーションを直接呼び出すことができます。

関数 URL を持つ Lambda 関数を使用することによってサーバーレスウェブアプリケーションを構築する場合、CloudFront を追加して次の利点を得ることができます。
+ コンテンツを視聴者の近くにキャッシュしてアプリケーションを高速化する
+ ウェブアプリケーションのカスタムドメイン名を使用する
+ CloudFront キャッシュ動作を使用して、さまざまな URL パスを異なる Lambda 関数にルーティングする
+ CloudFront の地理的制限または AWS WAF (あるいはその両方) を使用して特定のリクエストをブロックする
+ CloudFront と共に AWS WAF を使用すると、悪意のあるボットからアプリケーションを保護し、一般的なアプリケーションの悪用を防ぎ、DDoS 攻撃からの保護を強化できます。

CloudFront ディストリビューションのオリジンとして Lambda 関数 URL を使用するには、オリジンドメインとして Lambda 関数 URL の完全なドメイン名を指定します。Lambda 関数 URL ドメイン名は、次の形式を使用します。

`function-URL-ID.lambda-url.AWS-Region.on.aws`

CloudFront ディストリビューションのオリジンとして Lambda 関数 URL を使用する場合は、関数 URL がパブリックにアクセス可能であることを確認する必要があります。これには、次のいずれかの方法を使用します。
+ オリジンアクセスコントロール (OAC) を使用する場合は、Lambda 関数 URL の `AuthType` パラメータで `AWS_IAM` 値を使用し、リソースベースのポリシーで `lambda:InvokeFunctionUrl` および `lambda:InvokeFunction` アクセス許可を許可する必要があります。OAC での Lambda 関数 URL の使用の詳細については、「[AWS Lambda 関数 URL オリジンへのアクセスを制限する](private-content-restricting-access-to-lambda.md)」を参照してください。
+ OAC を使用しない場合は、関数の URL の `AuthType` パラメータを `NONE` に設定し、リソースベースのポリシーで `lambda:InvokeFunctionUrl` 許可を許可できます。



CloudFront がオリジンに送信するリクエストに[カスタムオリジンヘッダーを追加](add-origin-custom-headers.md)し、ヘッダーがリクエストに存在しない場合はエラーレスポンスを返す関数コードを記述することもできます。これにより、ユーザーが Lambda 関数 URL を直接使用するのではなく、CloudFront 経由でのみウェブアプリケーションにアクセスできるようにするのに役立ちます。

Lambda 関数 URL の詳細については、*AWS Lambda デベロッパーガイド*の以下のトピックを参照してください。
+ [Lambda 関数 URL](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) – Lambda 関数 URL 機能の一般的な概要
+ [Lambda 関数 URL の呼び出し](https://docs.aws.amazon.com/lambda/latest/dg/urls-invocation.html) – サーバーレスウェブアプリケーションのコーディングに使用するリクエストおよびレスポンスのペイロードに関する詳細が含まれます。
+ [Lambda 関数 URLs のセキュリティおよび認証モデル](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html) — Lambda 認証タイプに関する詳細が含まれます。

## Amazon EC2 (または別のカスタムオリジン) を使用する
<a name="concept_CustomOrigin"></a>

Amazon CloudFront では、内部 EC2 インスタンスとインターネット向け EC2 インスタンスの両方を使用できます。VPC オリジンを使用して、CloudFront でプライベートサブネット内の内部 EC2 インスタンスを使用できます。CloudFront VPC オリジンを使用すると、プライベート VPC サブネットにホストされたアプリケーションからパブリックインターネットに公開することなくコンテンツを提供できます。詳細については、「[VPC オリジンを使用したアクセス制限](private-content-vpc-origins.md)」を参照してください。

カスタムオリジンは、クライアントからインターネット経由でターゲットにリクエストをルーティングするパブリックに解決可能な DNS 名を持つ HTTP(S) ウェブサーバーです。HTTP(S) サーバーは、Amazon EC2 インスタンスなど、AWS でホストするか、別の場所でホストできます。ウェブサイトエンドポイントとして設定された Amazon S3 オリジンは、カスタムオリジンと見なされます。詳細については、「[ウェブサイトのエンドポイントとして設定された Amazon S3 バケットを使用する](#concept_S3Origin_website)」を参照してください。

独自の HTTP サーバーをカスタムオリジンとして使用する場合、サーバーの DNS 名に加えて、オリジンからオブジェクトを取得するときに CloudFront が使用する HTTP ポート、HTTPS ポート、およびプロトコルを指定します。

カスタムオリジンを使用する場合、プライベートコンテンツを例外として、ほとんどの CloudFront 機能がサポートされます。署名付き URL を使用してカスタムオリジンからコンテンツを配信できますが、CloudFront の場合、カスタムオリジンにアクセスするには、オリジンがパブリックにアクセス可能な状態になっている必要があります。詳細については、「[署名付き URL と署名付き Cookie を使用したプライベートコンテンツを提供する](PrivateContent.md)」を参照してください。

Amazon EC2 インスタンスおよび他のカスタムオリジンを CloudFront とともに使用するには、次のガイドラインに従います。
+ 同じ CloudFront オリジンのコンテンツを提供するすべてのサーバーで同じコンテンツをホストし、提供します。詳細については、「[オリジンの設定](DownloadDistValuesOrigin.md)」トピックの「[すべてのディストリビューション設定リファレンス](distribution-web-values-specify.md)」を参照してください。
+ サポート または CloudFront を使用してこの値をデバッグに使用する必要がある場合は、すべてのサーバー上の `X-Amz-Cf-Id` ヘッダーエントリをログに記録します。
+ カスタムオリジンがリッスンしている HTTP および HTTPS ポートへのリクエストを制限します。
+ 実装内のすべてのサーバーの時計を同期します。CloudFront では、署名付き URL と署名付き Cookie、ログ、およびレポートで協定世界時 (UTC) を使用します。さらに、CloudWatch メトリクスを使用して CloudFront アクティビティをモニタリングする場合は、CloudWatch も UTC を使用することに注意してください。
+ 冗長サーバーを使用して障害に対処します。
+ カスタムオリジンを使用したプライベートコンテンツ供給の詳細については、「[カスタムオリジンのファイルへのアクセスを制限する](private-content-overview.md#forward-custom-headers-restrict-access)」を参照してください。
+ リクエストとレスポンス動作、およびサポートされる HTTP ステータスコードについては、「[リクエストとレスポンスの動作](RequestAndResponseBehavior.md)」を参照してください。

カスタムオリジンで Amazon EC2 を使用する場合は、以下の操作を行うことをお勧めします。
+ ウェブサーバーのソフトウェアを自動的にインストールする Amazon マシンイメージを使用します。詳細については、「[Amazon EC2 ドキュメント](https://docs.aws.amazon.com/ec2/index.html)」を参照してください。
+ Elastic Load Balancing ロードバランサーを使用して、複数の Amazon EC2 インスタンスにわたるトラフィックを処理するほかに、Amazon EC2 インスタンスの変更からアプリケーションを隔離します。たとえば、ロードバランサーを使用する場合、アプリケーションを変更せずに Amazon EC2 インスタンスの追加と削除ができます。詳細については、「[Elastic Load Balancing ドキュメント](https://docs.aws.amazon.com/elasticloadbalancing/index.html)」を参照してください。
+ CloudFront ディストリビューションを作成する場合は、オリジンサーバーのドメイン名にロードバランサーの URL を指定します。詳細については、「[ディストリビューションを作成する](distribution-web-creating-console.md)」を参照してください。

## CloudFront オリジングループを使用する
<a name="concept_origin_groups"></a>

たとえば、高可用性が必要なシナリオでオリジンフェイルオーバーを設定する場合は、CloudFront オリジンのオリジングループを指定できます。オリジンフェイルオーバーを使用して、CloudFront のプライマリオリジンと、プライマリオリジンが特定の HTTP ステータスコードの失敗応答を返したときに CloudFront が自動的に切り替わる 2 番目のオリジンを指定します。

オリジングループをセットアップするステップを含む詳細については、「[CloudFront オリジンフェイルオーバーを使用して高可用性を最適化する](high_availability_origin_failover.md)」を参照してください。

## Amazon API Gateway を使用する
<a name="use-api-gate-way-origin"></a>

API Gateway は、CloudFront ディストリビューションのカスタムオリジンとして使用できます。詳細については、以下の各トピックを参照してください。
+ AWS ブログ記事「[Securing Amazon API Gateway with secure ciphers using Amazon CloudFront](https://aws.amazon.com/blogs/networking-and-content-delivery/securing-amazon-api-gateway-with-secure-ciphers-using-amazon-cloudfront/)」
+ [ 「独自の CloudFront ディストリビューションで API ゲートウェイを設定する方法を教えてください。](https://repost.aws/knowledge-center/api-gateway-cloudfront-distribution)」AWS re:Post

# CloudFront ディストリビューションの IPv6 を有効にする
<a name="cloudfront-enable-ipv6"></a>

Amazon CloudFront は、クライアントから AWS エッジロケーションまでの IPv4 と IPv6 の両方をサポートしています。CloudFront は、オリジンへの IPv6 およびデュアルスタック (IPv4 および IPv6) 接続もサポートしています。これにより、エンドツーエンドの IPv6 配信を実現できます。

IPv6 は、IPv4 を置き換えるために設計された次世代のインターネットプロトコルです。IPv4 は 32 ビットアドレス (192.0.2.44 など) を使用しますが、IPv6 は 128 ビットアドレス (2001:0db8:85a3::8a2e:0370:7334 など) を使用します。IPv6 は、より多くのインターネットに接続されたデバイスに対応するために拡張されたアドレス空間を提供します。

**Topics**
+ [IPv6 ビューワーリクエスト](#ipv6-viewer-requests)
+ [IPv6 オリジンリクエスト](#ipv6-origin-requests)

## IPv6 ビューワーリクエスト
<a name="ipv6-viewer-requests"></a>

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

Route 53 エイリアスリソースレコードセットを使用して CloudFront ディストリビューションにトラフィックをルーティングしている場合、次の両方に該当するときには、2 つ目のエイリアスリソースレコードセットを作成する必要があります。
+ ディストリビューションで IPv6 を有効にする
+ オブジェクトの URL で代替ドメイン名を使用している

詳細については、『*Amazon Route 53 開発者ガイド*』の「[ドメイン名を使用したトラフィックの Amazon CloudFront ディストリビューションへのルーティング](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html)」を参照してください。

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

IPv6 と CloudFront アクセスログを有効にすると、`c-ip` 列には IPv4 および IPv6 フォーマットの値が含められます。詳細については、「[ログファイルのフィールド](standard-logs-reference.md#BasicDistributionFileFormat)」を参照してください。

**注記**  
お客様に対する優れた可用性を維持するために、データによって IPv4 がより優れたユーザーエクスペリエンスを提供することが判明している場合、CloudFront は IPv4 を使用してビューワーリクエストに応じます。CloudFront が IPv6 によって対応するリクエストの割合を知るには、ディストリビューションで CloudFront ロギングを有効にし、リクエストを行ったビューワーの IP アドレスを含む `c-ip` 列を解析します。この割合 (%) は時間とともに大きくなりますが、IPv6 は世界中のすべてのビューワーネットワークでサポートされているわけではないため、過半数のトラフィックになることはないでしょう。ビューワーネットワークによっては IPv6 が十分にサポートされていますが、IPv6 をまったくサポートしないものもあります (ビューワーネットワークは、ホームインターネットやワイヤレスキャリアに似ています)。  
IPv6 のサポートについては、「[CloudFront に関するよくある質問](https://aws.amazon.com/cloudfront/faqs/)」を参照してください。アクセスログを有効にする方法の詳細については、[[標準ログ記録](DownloadDistValuesGeneral.md#DownloadDistValuesLoggingOnOff)] フィールドと [[ログのプレフィックス](DownloadDistValuesGeneral.md#DownloadDistValuesLogPrefix)] フィールドを参照してください。

## IPv6 オリジンリクエスト
<a name="ipv6-origin-requests"></a>

カスタムオリジン (Amazon S3 および VPC オリジンを除く) を使用する場合、ディストリビューションのオリジン設定をカスタマイズして、IPv4 または IPv6 アドレスを使用して CloudFront がオリジンに接続する方法を選択できます。カスタムオリジン (Amazon S3 および VPC オリジンを除く) には、次の接続オプションがあります。
+ **IPv4 のみ (デフォルト)** – これは、CloudFront が IPv4 経由でオリジンに接続するために使用するデフォルト設定です。
+ **IPv6 のみ** – オリジンドメインを IPv6 アドレスに解決する必要があります。CloudFront は、オリジン接続に IPv6 アドレスのみを使用します。
+ **デュアルスタック** – IPv4 および IPv6 経由の接続を有効にします。CloudFront は IPv4 または IPv6 オリジン接続を自動的に選択してパフォーマンスと可用性を優先するため、CloudFront をウェブアプリケーションの IPv6 および IPv4 デュアルスタックインターネットゲートウェイとして使用できます。

オリジンのネットワーク設定と接続要件に合ったオプションを選択します。詳細については、「[Designing DNS for IPv6](https://docs.aws.amazon.com/whitepapers/latest/ipv6-on-aws/designing-dns-for-ipv6.html)」および「[IPv6 security and monitoring considerations](https://docs.aws.amazon.com/whitepapers/latest/ipv6-on-aws/ipv6-security-and-monitoring-considerations.html)」を参照してください。

# CloudFront の継続的デプロイを使用して CDN 設定の変更を安全にテストする
<a name="continuous-deployment"></a>

Amazon CloudFront の*継続的デプロイ*を使用すると、最初に本番トラフィックのサブセットでテストすることで、CDN 設定に変更を安全にデプロイできます。*ステージングディストリビューション*と*継続的デプロイポリシー*を使用して、実際 (本番環境) のビューワーからのトラフィックを新しい CDN 設定に送信し、正常に動作することを検証できます。新しい設定のパフォーマンスをリアルタイムでモニタリングし、準備ができたら、新しい設定を昇格させてすべてのトラフィックを*プライマリディストリビューション*で処理できます。

次の図は、CloudFront の継続的デプロイを使用するメリットを示しています。これを使用しない場合は、シミュレートしたトラフィックで CDN 設定の変更をテストする必要があります。継続的デプロイでは、本番トラフィックのサブセットで変更をテストし、準備ができたら、変更をプライマリディストリビューションに昇格させることができます。

![\[本番稼働用トラフィックをステージングディストリビューションに送信する CloudFront 継続的デプロイのグラフィックス。\]](http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/images/cloudfront-continuous-deployment.png)


継続的デプロイの使用の詳細については、以下のトピックを参照してください。

**Topics**
+ [CloudFront の継続的デプロイのワークフロー](continuous-deployment-workflow.md)
+ [ステージングディストリビューションと継続的デプロイポリシーを使用する](working-with-staging-distribution-continuous-deployment-policy.md)
+ [ステージングディストリビューションをモニタリングする](monitoring-staging-distribution.md)
+ [継続的デプロイの仕組みについて説明します。](understanding-continuous-deployment.md)
+ [継続的デプロイに関するクォータとその他の考慮事項](continuous-deployment-quotas-considerations.md)

# CloudFront の継続的デプロイのワークフロー
<a name="continuous-deployment-workflow"></a>

次の高レベルのワークフローでは、CloudFront の継続的デプロイを使用して、設定の変更を安全にテストしてデプロイする方法を説明しています。

1. *プライマリディストリビューション*として使用するディストリビューションを選択します。プライマリーディストリビューションは、本番トラフィックを現在処理しているディストリビューションです。

1. プライマリディストリビューションから、*ステージングディストリビューション*を作成します。ステージングディストリビューションは、プライマリディストリビューションのコピーとして開始します。

1. *継続的デプロイポリシー*内に*トラフィック設定*を作成し、それをプライマリディストリビューションにアタッチします。これにより、CloudFront がトラフィックをステージングディストリビューションにルーティングする方法が決まります。ステージングディストリビューションにリクエストをルーティングする方法の詳細については、「[ステージングディストリビューションにリクエストをルーティングする](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)」を参照してください。

1. ステージングディストリビューションの設定を更新します。更新できる設定の詳細については、「[プライマリーディストリビューションとステージングディストリビューションを更新する](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)」を参照してください。

1. ステージングディストリビューションをモニタリングして、設定の変更が正常に動作するかどうかを確認します。ステージングディストリビューションのモニタリングの詳細については、「[ステージングディストリビューションをモニタリングする](monitoring-staging-distribution.md)」を参照してください。

   ステージングディストリビューションをモニタリングしながら、以下のことを実行できます。
   + ステージングディストリビューションの設定を再度更新し、設定の変更のテストを続行します。
   + 継続的デプロイポリシー (トラフィック設定) を更新して、ステージングディストリビューションに送信するトラフィックを増減します。

1. ステージングディストリビューションのパフォーマンスに満足したら、ステージングディストリビューションの設定をプライマリディストリビューションに*昇格*させます。これにより、ステージングディストリビューションの設定がプライマリディストリビューションにコピーされます。これに伴って、継続的デプロイポリシーが無効になるため、CloudFront はすべてのトラフィックをプライマリディストリビューションにルーティングします。

オートメーションを構築することで、ステージングディストリビューションのパフォーマンスをモニタリングして (ステップ 5)、特定の基準を満たしたときに自動的に設定を昇格させる (ステップ 6) ことができます。

設定を昇格させると、設定の変更を次回テストするときに、同じステージングディストリビューションを再利用できます。

CloudFront コンソール、AWS CLI、または CloudFront API でのステージングディストリビューションと継続的デプロイポリシーの使用方法の詳細については、次のセクションを参照してください。

# ステージングディストリビューションと継続的デプロイポリシーを使用する
<a name="working-with-staging-distribution-continuous-deployment-policy"></a>

ステージングディストリビューションと継続的デプロイポリシーは、CloudFront コンソール、AWS Command Line Interface (AWS CLI)、または CloudFront API で作成、更新、変更できます。

## ステージングディストリビューションと継続的デプロイポリシーを作成する
<a name="create-staging-distribution-continuous-deployment-policy"></a>

次の手順では、ステージングディストリビューションと継続的デプロイポリシーを作成する方法を示します。

------
#### [ Console ]

AWS マネジメントコンソール を使用して、ステージングディストリビューションと継続的デプロイポリシーを作成できます。

**ステージングディストリビューションと継続的デプロイポリシーを作成するには (コンソール)**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. ナビゲーションペインで、**[ディストリビューション]** を選択します。

1. *プライマリディストリビューション*として使用するディストリビューションを選択します。プライマリーディストリビューションは、本番トラフィックを現在処理しているディストリビューションであり、これを元にしてステージングディストリビューションを作成します。

1. **[Continuous deployment]** (継続的デプロイ) セクションで、**[Create staging distribution]** (ステージングディストリビューションを作成) を選択します。**[Create staging distribution]** (ステージングディストリビューションを作成) ウィザードが開きます。

1. **[Create staging distribution]** (ステージングディストリビューションを作成) ウィザードで、以下の操作を行います。

   1. (オプション) ステージングディストリビューションの説明を入力します。

   1. **[Next]** (次へ) を選択します。

   1. ステージングディストリビューションの設定を変更します。更新できる設定の詳細については、「[プライマリーディストリビューションとステージングディストリビューションを更新する](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)」を参照してください。

      ステージングディストリビューションの設定の変更が完了したら、**[Next]** (次へ) を選択します。

   1. コンソールを使用して **[Traffic configuration]** (トラフィック設定) を指定します。これにより、CloudFront がトラフィックをステージングディストリビューションにルーティングする方法が決まります (CloudFront はトラフィック設定を*継続的デプロイポリシー*内に保存します)。

      **[Traffic configuration]** (トラフィック設定) のオプションの詳細については、「[ステージングディストリビューションにリクエストをルーティングする](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)」を参照してください。

      **[Traffic configuration]** (トラフィック設定) が完了したら、**[Next]** (次へ) を選択します。

   1. トラフィック設定を含む、ステージングディストリビューションの設定を確認したら、**[Create staging distribution]** (ステージングディストリビューションを作成) を選択します。

CloudFront コンソールで **[Create staging distribution]** (ステージングディストリビューションを作成) ウィザードを完了すると、CloudFront は以下を実行します。
+ ステップ 5c で指定した設定を使用して、ステージングディストリビューションを作成します。
+ ステップ 5d で指定したトラフィック設定を使用して、継続的デプロイポリシーを作成します。
+ ステージングディストリビューションの作成元のプライマリディストリビューションに継続的デプロイポリシーをアタッチします。

継続的デプロイポリシーをアタッチした、プライマリディストリビューションの設定をエッジロケーションにデプロイすると、CloudFront はトラフィック設定に基づいてトラフィックの指定された部分をステージングディストリビューションに送信し始めます。

------
#### [ CLI ]

ステージングディストリビューションと継続的デプロイポリシーを AWS CLI で作成するには、次の手順に従います。

**ステージングディストリビューションを作成するには (CLI)**

1. **aws cloudfront get-distribution** コマンドと **grep** コマンドを一緒に使用して、*プライマリディストリビューション*として使用するディストリビューションの `ETag` 値を取得します。プライマリーディストリビューションは、本番トラフィックを現在処理しているディストリビューションであり、これを元にしてステージングディストリビューションを作成します。

   次のコマンドでは、例を示しています。次の例では、*primary\$1distribution\$1ID* をプライマリディストリビューションの ID に置き換えます。

   ```
   aws cloudfront get-distribution --id primary_distribution_ID | grep 'ETag'
   ```

   `ETag` 値をコピーします (次のステップで必要になります)。

1. **aws cloudfront copy-distribution** コマンドを使用してステージングディストリビューションを作成します。次のコマンド例では、読みやすくするためにエスケープ文字 (\$1) と改行を使用していますが、これらはコマンドから省略してください。次のコマンドの例で以下の操作を行います。
   + *primary\$1distribution\$1ID* をプライマリディストリビューションの ID に置き換えます。
   + *primary\$1distribution\$1ETag* をプライマリディストリビューションの `ETag` 値 (前のステップで取得したもの) に置き換えます。
   + (オプション) *CLI\$1example* を目的の発信者リファレンス ID に置き換えます。

   ```
   aws cloudfront copy-distribution --primary-distribution-id primary_distribution_ID \
                                    --if-match primary_distribution_ETag \
                                    --staging \
                                    --caller-reference 'CLI_example'
   ```

   コマンドの出力に、ステージングディストリビューションとその設定に関する情報が表示されます。ステージングディストリビューションの CloudFront ドメイン名をコピーします (次のステップで必要になります)。

**継続的デプロイポリシーを作成するには (CLI および入力ファイル)**

1. 次のコマンドを使用して、`continuous-deployment-policy.yaml` コマンドのすべての入力パラメータを含む、**create-continuous-deployment-policy** という名前のファイルを作成します。次のコマンドでは、読みやすくするためにエスケープ文字 (\$1) と改行を使用していますが、これらはコマンドから省略してください。

   ```
   aws cloudfront create-continuous-deployment-policy --generate-cli-skeleton yaml-input \
                                                      > continuous-deployment-policy.yaml
   ```

1. 先ほど作成した `continuous-deployment-policy.yaml` という名前のファイルを開きます。このファイルを編集して、必要な継続的デプロイポリシー設定を指定し、ファイルを保存します。ファイルは以下のように編集します。
   + `StagingDistributionDnsNames` セクションでの編集
     + `Quantity` の値を `1` に変更します。
     + `Items` に、ステージングディストリビューションの CloudFront ドメイン名 (前のステップで保存したもの) を貼り付けます。
   + `TrafficConfig` セクションでの編集
     + `Type` として、`SingleWeight` または `SingleHeader` を選択します。
     + 他のタイプの設定を削除します。例えば、重みベースのトラフィック設定が必要な場合は、`Type` を `SingleWeight` に設定し、`SingleHeaderConfig` 設定を削除します。
     + 重みベースのトラフィック設定を使用するには、`Weight` の値を `.01` (1%) から `.15` (15%) までの 10 進数に設定します。

     `TrafficConfig` のオプションの詳細については、「[ステージングディストリビューションにリクエストをルーティングする](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)」および「[重みベースの設定におけるセッションの維持](understanding-continuous-deployment.md#understanding-continuous-deployment-sessions)」を参照してください。

1. 次のコマンドで `continuous-deployment-policy.yaml` ファイルの入力パラメータを使用し、継続的デプロイポリシーを作成します。

   ```
   aws cloudfront create-continuous-deployment-policy --cli-input-yaml file://continuous-deployment-policy.yaml
   ```

   コマンドの出力の `Id` 値をコピーします。これは継続的デプロイポリシー ID で、次のステップで必要になります。

**継続的デプロイポリシーをプライマリディストリビューションにアタッチするには (CLI および入力ファイル)**

1. 次のコマンドを使用して、プライマリディストリビューションの設定を `primary-distribution.yaml` という名前のファイルに保存します。*primary\$1distribution\$1ID* をプライマリディストリビューションの ID に置き換えます。

   ```
   aws cloudfront get-distribution-config --id primary_distribution_ID --output yaml > primary-distribution.yaml
   ```

1. 先ほど作成した `primary-distribution.yaml` という名前のファイルを開きます。ファイルを編集し、以下の変更を加えます。
   + 継続的デプロイポリシー ID (前のステップでコピーしたもの) を `ContinuousDeploymentPolicyId` フィールドに貼り付けます。
   + `ETag` フィールドの名前を `IfMatch` に変更します。ただし、フィールドの値は変更しないでください。

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

1. 次のコマンドを使用して、継続的デプロイポリシーを使用するようにプライマリディストリビューションを更新します。*primary\$1distribution\$1ID* をプライマリディストリビューションの ID に置き換えます。

   ```
   aws cloudfront update-distribution --id primary_distribution_ID --cli-input-yaml file://primary-distribution.yaml
   ```

継続的デプロイポリシーをアタッチした、プライマリディストリビューションの設定をエッジロケーションにデプロイすると、CloudFront はトラフィック設定に基づいてトラフィックの指定された部分をステージングディストリビューションに送信し始めます。

------
#### [ API ]

CloudFront API を使用してステージングポリシーと継続的デプロイポリシーを作成するには、以下の API オペレーションを使用します。
+ [CopyDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CopyDistribution.html)
+ [CreateContinuousDeploymentPolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateContinuousDeploymentPolicy.html)

これらの API コールで指定するフィールドの詳細については、以下を参照してください。
+ [ステージングディストリビューションにリクエストをルーティングする](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)
+ [重みベースの設定におけるセッションの維持](understanding-continuous-deployment.md#understanding-continuous-deployment-sessions)
+ AWS SDK またはその他の API クライアントの API リファレンスドキュメント

ステージングディストリビューションと継続的デプロイポリシーを作成したら、プライマリディストリビューションで [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) を使用して、継続的デプロイポリシーをプライマリディストリビューションにアタッチします。

------

## ステージングディストリビューションを更新する
<a name="update-staging-distribution"></a>

次の手順では、ステージングディストリビューションと継続的デプロイポリシーを更新する方法を示します。

------
#### [ Console ]

プライマリディストリビューションとステージングディストリビューションの両方で特定の設定を更新できます。詳細については、「[プライマリーディストリビューションとステージングディストリビューションを更新する](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)」を参照してください。

**ステージングディストリビューションを更新するには (コンソール)**

1. [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. ナビゲーションペインで、**[ディストリビューション]** を選択します。

1. プライマリディストリビューションを選択します。これは、本番トラフィックを現在処理しているディストリビューションで、ステージングディストリビューションの作成元のディストリビューションです。

1. **[View staging distribution]** (ステージングディストリビューションを表示) を選択します。

1. コンソールを使用して、ステージングディストリビューションの設定を変更します。更新できる設定の詳細については、「[プライマリーディストリビューションとステージングディストリビューションを更新する](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)」を参照してください。

ステージングディストリビューションの設定をエッジロケーションにデプロイするとすぐに、ステージングディストリビューションにルーティングされた受信トラフィックに設定が適用されます。

------
#### [ CLI ]

**ステージングディストリビューションを更新するには (CLI および入力ファイル)**

1. 次のコマンドを使用して、ステージングディストリビューションの設定を `staging-distribution.yaml` という名前のファイルに保存します。*staging\$1distribution\$1ID* をステージングディストリビューションの ID に置き換えます。

   ```
   aws cloudfront get-distribution-config --id staging_distribution_ID --output yaml > staging-distribution.yaml
   ```

1. 先ほど作成した `staging-distribution.yaml` という名前のファイルを開きます。ファイルを編集し、以下の変更を加えます。
   + ステージングディストリビューションの設定を変更します。更新できる設定の詳細については、「[プライマリーディストリビューションとステージングディストリビューションを更新する](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)」を参照してください。
   + `ETag` フィールドの名前を `IfMatch` に変更します。ただし、フィールドの値は変更しないでください。

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

1. 次のコマンドを使用して、ステージングディストリビューションの設定を更新します。*staging\$1distribution\$1ID* をステージングディストリビューションの ID に置き換えます。

   ```
   aws cloudfront update-distribution --id staging_distribution_ID --cli-input-yaml file://staging-distribution.yaml
   ```

ステージングディストリビューションの設定をエッジロケーションにデプロイするとすぐに、ステージングディストリビューションにルーティングされた受信トラフィックに設定が適用されます。

------
#### [ API ]

ステージングディストリビューションの設定を更新するには、ステージングディストリビューションで [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) を使用して、ステージングディストリビューションの設定を変更します。更新できる設定の詳細については、「[プライマリーディストリビューションとステージングディストリビューションを更新する](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)」を参照してください。

------

## 継続的デプロイポリシーを更新する
<a name="update-continuous-deployment-policy"></a>

次の手順では、継続的デプロイポリシーを更新する方法を示します。

------
#### [ Console ]

継続的デプロイポリシーを更新することで、ディストリビューションのトラフィック設定を更新できます。

**継続的デプロイポリシーを更新するには (コンソール)**

1. [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. ナビゲーションペインで、**[ディストリビューション]** を選択します。

1. プライマリディストリビューションを選択します。これは、本番トラフィックを現在処理しているディストリビューションで、ステージングディストリビューションの作成元のディストリビューションです。

1. **[Continuous deployment]** (継続的デプロイ) セクションで、**[Edit policy]** (ポリシーの編集) を選択します。

1. 継続的デプロイポリシーのトラフィック設定を変更します。完了したら、**[変更を保存]** を選択します。

継続的デプロイポリシーを更新した、プライマリディストリビューションの設定をエッジロケーションにデプロイすると、CloudFront は更新したトラフィック設定に基づいてステージングディストリビューションにトラフィックを送信し始めます。

------
#### [ CLI ]

**継続的デプロイポリシーを更新するには (CLI および入力ファイル)**

1. 次のコマンドを使用して、継続的デプロイポリシーの設定を `continuous-deployment-policy.yaml` という名前のファイルに保存します。*continuous\$1deployment\$1policy\$1ID* を継続的デプロイポリシーの ID に置き換えます。次のコマンドでは、読みやすくするためにエスケープ文字 (\$1) と改行を使用していますが、これらはコマンドから省略してください。

   ```
   aws cloudfront get-continuous-deployment-policy-config --id continuous_deployment_policy_ID \
                                                          --output yaml > continuous-deployment-policy.yaml
   ```

1. 先ほど作成した `continuous-deployment-policy.yaml` という名前のファイルを開きます。ファイルを編集し、以下の変更を加えます。
   + 継続的デプロイポリシーの設定を必要に応じて変更します。例えば、トラフィック設定をヘッダーベースから重みベースに変更したり、重みベースの設定でトラフィックの割合 (重み) を変更したりできます。詳細については、「[ステージングディストリビューションにリクエストをルーティングする](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)」および「[重みベースの設定におけるセッションの維持](understanding-continuous-deployment.md#understanding-continuous-deployment-sessions)」を参照してください。
   + `ETag` フィールドの名前を `IfMatch` に変更します。ただし、フィールドの値は変更しないでください。

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

1. 次のコマンドを使用して、継続的デプロイポリシーを更新します。*continuous\$1deployment\$1policy\$1ID* を継続的デプロイポリシーの ID に置き換えます。次のコマンドでは、読みやすくするためにエスケープ文字 (\$1) と改行を使用していますが、これらはコマンドから省略してください。

   ```
   aws cloudfront update-continuous-deployment-policy --id continuous_deployment_policy_ID \
                                                      --cli-input-yaml file://continuous-deployment-policy.yaml
   ```

継続的デプロイポリシーを更新した、プライマリディストリビューションの設定をエッジロケーションにデプロイすると、CloudFront は更新したトラフィック設定に基づいてステージングディストリビューションにトラフィックを送信し始めます。

------
#### [ API ]

継続的デプロイポリシーを更新するには、[UpdateContinuousDeploymentPolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateContinuousDeploymentPolicy.html) を使用します。

------

## ステージングディストリビューション設定を昇格させる
<a name="promote-staging-distribution-configuration"></a>

次の手順では、ステージングディストリビューション設定を昇格させる方法を示します。

------
#### [ Console ]

ステージングディストリビューションを*昇格*させると、CloudFront はステージングディストリビューションからプライマリディストリビューションに設定をコピーします。また、CloudFront は継続的デプロイポリシーを無効にし、すべてのトラフィックをプライマリディストリビューションにルーティングします。

設定を昇格させると、設定の変更を次回テストするときに、同じステージングディストリビューションを再利用できます。

**ステージングディストリビューションの設定を昇格させるには (コンソール)**

1. [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. ナビゲーションペインで、**[ディストリビューション]** を選択します。

1. プライマリディストリビューションを選択します。これは、本番トラフィックを現在処理しているディストリビューションで、ステージングディストリビューションの作成元のディストリビューションです。

1. **[Continuous deployment]** (継続的デプロイ) セクションで、**[Promote]** (昇格) を選択します。

1. 「**confirm**」と入力して **[Promote]** (昇格) を選択します。

------
#### [ CLI ]

ステージングディストリビューションを*昇格*させると、CloudFront はステージングディストリビューションからプライマリディストリビューションに設定をコピーします。また、CloudFront は継続的デプロイポリシーを無効にし、すべてのトラフィックをプライマリディストリビューションにルーティングします。

設定を昇格させると、設定の変更を次回テストするときに、同じステージングディストリビューションを再利用できます。

**ステージングディストリビューションの設定を昇格させるには (CLI)**
+ **aws cloudfront update-distribution-with-staging-config** コマンドを使用して、ステージングディストリビューションの設定をプライマリディストリビューションに昇格させます。次のコマンド例では、読みやすくするためにエスケープ文字 (\$1) と改行を使用していますが、これらはコマンドから省略してください。次のコマンドの例で以下の操作を行います。
  + *primary\$1distribution\$1ID* をプライマリディストリビューションの ID に置き換えます。
  + *staging\$1distribution\$1ID* をステージングディストリビューションの ID に置き換えます。
  + *primary\$1distribution\$1ETag* と *staging\$1distribution\$1ETag* をプライマリディストリビューションとステージングディストリビューションの `ETag` 値に置き換えます。例に示すように、プライマリディストリビューションの値が最初になっていることを確認します。

  ```
  aws cloudfront update-distribution-with-staging-config --id primary_distribution_ID \
                                                         --staging-distribution-id staging_distribution_ID \
                                                         --if-match 'primary_distribution_ETag,staging_distribution_ETag'
  ```

------
#### [ API ]

ステージングディストリビューションの設定をプライマリディストリビューションに昇格させるには、[UpdateDistributionWithStagingConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistributionWithStagingConfig.html) を使用します。

------

# ステージングディストリビューションをモニタリングする
<a name="monitoring-staging-distribution"></a>

ステージングディストリビューションのパフォーマンスをモニタリングするには、CloudFront がすべてのディストリビューションに提供しているのと同じ[メトリクス、ログ、レポート](reports-and-monitoring.md)を使用できます。例えば、次のようになります。
+ CloudFront コンソールで[デフォルトの CloudFront ディストリビューションメトリクス](viewing-cloudfront-metrics.md#monitoring-console.distributions) (合計リクエスト数やエラー率など) を表示できます。また、追加料金を支払うことで、ステータスコード別のキャッシュヒットレートやエラー率など、[追加のメトリクスを有効にする](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)ことができます。これらのメトリクスに基づいてアラームを作成することもできます。
+ [標準ログ](AccessLogs.md)と[リアルタイムアクセスログ](real-time-logs.md)を表示して、ステージングディストリビューションが受信したリクエストに関する詳細情報を取得できます。標準ログは `primary-distribution-id` フィールドと `primary-distribution-dns-name` フィールドを示します。この 2 つのフィールドは、CloudFront からステージングディストリビューションにルーティングする前のリクエストが最初に送信された先のプライマリディストリビューションを特定するのに役立ちます。
+ CloudFront コンソールで[レポート](reports.md) (キャッシュ統計レポートなど) を表示およびダウンロードできます。

# 継続的デプロイの仕組みについて説明します。
<a name="understanding-continuous-deployment"></a>

以下のトピックでは、CloudFront の継続的デプロイの仕組みについて説明します。

**Topics**
+ [ステージングディストリビューションにリクエストをルーティングする](#understanding-continuous-deployment-routing)
+ [重みベースの設定におけるセッションの維持](#understanding-continuous-deployment-sessions)
+ [プライマリーディストリビューションとステージングディストリビューションを更新する](#updating-staging-and-primary-distributions)
+ [プライマリディストリビューションとステージングディストリビューションはキャッシュを共有しない](#staging-and-primary-no-shared-cache)

## ステージングディストリビューションにリクエストをルーティングする
<a name="understanding-continuous-deployment-routing"></a>

CloudFront の継続的デプロイを使用する場合、ビューワーリクエストについては何も変更する必要がありません。ビューワーは、DNS 名、IP アドレス、または CNAME を使用してステージングディストリビューションにリクエストを直接送信することはできません。代わりに、ビューワーはプライマリ (本番稼働) ディストリビューションにリクエストを送信します。CloudFront は、継続的デプロイポリシーのトラフィック設定に基づいて、これらのリクエストの一部をステージングディストリビューションにルーティングします。トラフィック設定には次の 2 つの種類があります。

**重みベース**  
重みベースの設定では、ビューワーリクエストの指定された割合をステージングディストリビューションにルーティングします。重みベースの設定を使用する場合、*セッションの維持*を有効にすることもできます。これにより、CloudFront は同じビューワーからのリクエストを 1 つのセッションの一部として処理できるようになります。詳細については、「[重みベースの設定におけるセッションの維持](#understanding-continuous-deployment-sessions)」を参照してください。

**ヘッダーベース**  
ビューワーリクエストに特定の HTTP ヘッダーが含まれている (ヘッダーと値が指定されている) 場合、ヘッダーベースの設定は、リクエストをステージングディストリビューションにルーティングします。ヘッダーと値が指定されていないリクエストは、プライマリディストリビューションにルーティングされます。この設定は、ローカルでテストする場合や、ビューワーリクエストが制御可能である場合に便利です。  
ステージングディストリビューションにルーティングするヘッダーには、プレフィックス `aws-cf-cd-` が含まれている必要があります。

## 重みベースの設定におけるセッションの維持
<a name="understanding-continuous-deployment-sessions"></a>

重みベースの設定を使用してトラフィックをステージングディストリビューションにルーティングする場合、*セッションの維持*を有効にすることもできます。これにより、CloudFront は同じビューワーからのリクエストを 1 つのセッションの一部として処理できるようになります。セッションの維持を有効にすると、CloudFront は Cookie を設定して、1 つのセッション内における同じビューワーからのすべてのリクエストを 1 つのディストリビューション (プライマリまたはステージング) で処理します。

セッションの維持を有効にするときに、*アイドル期間*を指定することもできます。ビューワーのアイドル (リクエストを送信しない) 状態がこの期間を超えると、セッションは期限切れになり、CloudFront はこのビューワーからの以降のリクエストを新しいセッションとして扱います。アイドル期間は 300 (5 分) から 3,600 (1 時間) までの秒数で指定します。

以下の場合、CloudFront はすべてのセッション (アクティブなセッションも含む) をリセットし、すべてのリクエストを新しいセッションと見なします。
+ 継続的デプロイポリシーを無効または有効にする。
+ セッションの維持の設定を無効または有効にする。

## プライマリーディストリビューションとステージングディストリビューションを更新する
<a name="updating-staging-and-primary-distributions"></a>

プライマリディストリビューションに継続的デプロイポリシーがアタッチされている場合、プライマリーディストリビューションとステージングディストリビューションの両方で、以下の設定の変更が可能です。
+ すべてのキャッシュ動作設定 (デフォルトのキャッシュ動作を含む)
+ すべてのオリジン設定 (オリジンとオリジングループ)
+ カスタムエラーレスポンス (エラーページ)
+ 地理的制限
+ デフォルトのルートオブジェクト
+ ログ記録の設定
+ 説明 (コメント)

ディストリビューションの設定で参照される外部リソース (キャッシュポリシー、レスポンスヘッダーポリシー、CloudFront 関数、Lambda@Edge 関数など) を更新することもできます。

## プライマリディストリビューションとステージングディストリビューションはキャッシュを共有しない
<a name="staging-and-primary-no-shared-cache"></a>

プライマリディストリビューションとステージングディストリビューションはキャッシュを共有しません。CloudFront が最初のリクエストをステージングディストリビューションに送信するまで、キャッシュは空です。リクエストがステージングディストリビューションに到着すると、レスポンスのキャッシュが開始されます (そのように設定している場合)。

# 継続的デプロイに関するクォータとその他の考慮事項
<a name="continuous-deployment-quotas-considerations"></a>

CloudFront の継続的デプロイには、以下のクォータとその他の考慮事項が適用されます。

## クォータ
<a name="continuous-deployment-quotas"></a>
+ AWS アカウント あたりのステージングディストリビューションの最大数: 20
+ AWS アカウント あたりの継続的デプロイポリシーの最大数: 20
+ 重みベースの設定でステージングディストリビューションに送信できるトラフィックの最大割合: 15%
+ セッションの維持のアイドル期間の最小値と最大値: 300～3,600 秒

詳細については、「[クォータ](cloudfront-limits.md)」を参照してください。

**注記**  
継続的デプロイを使用しており、プライマリディストリビューションが S3 バケットアクセス用の OAC で設定されている場合は、S3 バケットポリシーを更新してステージングディストリビューションへのアクセスを許可します。S3 バケットポリシーの例については、「[S3 バケットへのアクセス許可を CloudFront に付与する](private-content-restricting-access-to-s3.md#oac-permission-to-access-s3)」を参照してください。

## AWS WAF ウェブ ACL
<a name="waf-web-acl"></a>

ディストリビューションで継続的デプロイを有効にする場合、AWS WAF には次の考慮事項が適用されます。
+ AWS WAF ウェブアクセスコントロールリスト (ACL) をディストリビューションに関連付けるのが初めての場合、ACL をディストリビューションに関連付けることはできません。
+ ディストリビューションから AWS WAF ウェブ ACL の関連付けを解除することはできません。

上記のタスクを実行する前に、本番稼働用ディストリビューションの継続的デプロイポリシーを削除する必要があります。これにより、ステージングディストリビューションも削除されます。詳細については、「[AWS WAF 保護を使用する](distribution-web-awswaf.md)」を参照してください。

## CloudFront がすべてのリクエストをプライマリディストリビューションに送信する場合
<a name="all-requests-to-primary-distribution"></a>

リソース使用率が高い期間など、状況に応じて、CloudFront は継続的デプロイポリシーで指定されている内容に関係なく、すべてのリクエストをプライマリディストリビューションに送信する場合があります。

CloudFront は、継続的デプロイポリシーで指定されている内容に関係なく、トラフィックのピーク時には、すべてのリクエストをプライマリディストリビューションに送信します。ピークトラフィックとは、CloudFront サービスのトラフィックであり、ディストリビューションのトラフィックではありません。**

## HTTP/3
<a name="continuous-deployment-http3"></a>

HTTP/3 をサポートするディストリビューションでは継続的デプロイを使用できません。

# 代替ドメイン名 (CNAME) を追加することによって、カスタム URL を使用する
<a name="CNAMEs"></a>

ディストリビューションを作成すると、CloudFront はドメイン名 (d111111abcdef8.cloudfront.net など) を割り当てます。この割り当てられたドメイン名の代わりに、代替ドメイン名 (CNAME とも呼ばれます) を使用できます。

独自のドメイン名 (www.example.com など) を使用する方法については、以下のトピックを参照してください。

**Topics**
+ [代替ドメイン名を使用するための要件](#alternate-domain-names-requirements)
+ [代替ドメイン名の使用に対する制限](#alternate-domain-names-restrictions)
+ [代替ドメイン名を追加する](CreatingCNAME.md)
+ [代替ドメイン名を移動する](alternate-domain-names-move.md)
+ [代替ドメイン名を削除する](alternate-domain-names-remove-domain.md)
+ [代替ドメイン名でワイルドカードを使用する](alternate-domain-names-wildcard.md)

## 代替ドメイン名を使用するための要件
<a name="alternate-domain-names-requirements"></a>

www.example.com などの代替ドメイン名を CloudFront ディストリビューションに追加する場合、次の要件があります。

**代替ドメイン名は小文字を使用する必要があります**  
すべての代替ドメイン名 (CNAME) には小文字を使用する必要があります。

**代替ドメイン名は有効な TLS 証明書の対象であることが必要です**  
CloudFront ディストリビューションに代替ドメイン名 (CNAME) を追加するには、この代替ドメイン名を対象とする信頼される有効な TLS 証明書をディストリビューションにアタッチする必要があります。これにより、ドメインの証明書にアクセスできる人物のみがドメインに関連する CNAME に CloudFront を関連付けることができます。  
信頼される証明書は、AWS Certificate Manager (ACM) または別の有効な認証局 (CA) から発行されたものです。自己署名証明書は、既存の CNAME の検証には使用できますが、新しい CNAME には使用できません。**CloudFront では Mozilla と同じ認証機関をサポートしています。最新のリストは、「[Mozilla に付属する CA 証明書一覧](https://wiki.mozilla.org/CA/Included_Certificates)」を参照してください。サードパーティ CA を使用する場合の中間証明書については、「[中間証明書](cnames-and-https-requirements.md#https-requirements-intermediate-certificates)」を参照してください。  
ワイルドカードを含む代替ドメイン名を含め、アタッチした証明書を使用して代替ドメイン名を確認するために、CloudFront は証明書のサブジェクト代替名 (SAN) を確認します。追加する代替ドメイン名は、SAN の対象である必要があります。  
CloudFront ディストリビューションには、一度に 1 つの証明書のみをアタッチすることができます。
ディストリビューションに特定の代替ドメイン名を追加する許可があることを証明するには、次のいずれかを実行します。  
+ 代替ドメイン名 (product-name.example.com など) を含む証明書を添付します。
+ ドメイン名の先頭に \$1 ワイルドカードを含む証明書をアタッチして、1 つの証明書で複数のサブドメインを対象とします。ワイルドカードを指定する場合、複数のサブドメインを CloudFront の代替ドメイン名として追加できます。
次の例では、証明書のドメイン名のワイルドカードを使用して特定の代替ドメイン名を CloudFront に追加することを許可する方法を示しています。  
+ marketing.example.com を代替ドメイン名として追加するとします。証明書にドメイン名 \$1.example.com をリストします。この証明書を CloudFront にアタッチすると、この位置でワイルドカードを置き換えする一意の代替ドメイン名をディストリビューションに追加することができます (marketing.example.com など)。また、たとえば次の代替ドメイン名を追加することもできます。
  + product.example.com
  + api.example.com

  ただし、ワイルドカードより高いあるいは低い位置に代替ドメイン名を追加することはできません。例えば、代替ドメイン名 example.com や marketing.product.example.com を追加することはできません。
+ example.com を代替ドメイン名として追加するとします。これを行うには、ディストリビューションにアタッチした証明書にこのドメイン名 example.com 自体をリストする必要があります。
+ marketing.product.example.com を代替ドメイン名として追加するとします。これを行うには、証明書に \$1.product.example.com をリストするか、または証明書に marketing.product.example.com 自体をリストできます。

**DNS 設定を変更する権限**  
代替ドメイン名を追加するとき、CNAME レコードを作成して代替ドメイン名の DNS クエリを CloudFront ディストリビューションにルーティングする必要があります。これを行うには、DNS サービスプロバイダーを使用して使用する代替ドメイン名に CNAME を作成する権限があることが必要です。通常、これはドメインを所有していることを指しますが、ドメイン所有者向けにアプリケーションを開発している場合にも当てはまります。

**代替ドメイン名と HTTPS**  
代替ドメイン名を含む HTTPS をビューワーが使用するように構成する場合は、いくつかの追加設定を実行する必要があります。詳細については、「[代替ドメイン名と HTTPS を使用する](using-https-alternate-domain-names.md)」を参照してください。

## 代替ドメイン名の使用に対する制限
<a name="alternate-domain-names-restrictions"></a>

代替ドメイン名の使用には、以下の制限があることに注意してください。

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

**重複する代替ドメイン名**  
同じ代替ドメイン名が別の CloudFront ディストリビューションに既に存在する場合は、AWS アカウントが他のディストリビューションを所有しているとしても、その代替ドメイン名を CloudFront ディストリビューションに追加することはできません。  
ただし、\$1.example.com のようなワイルドカード付きの代替ドメイン名を追加できます。これには、www.example.com のような非ワイルドカードの代替ドメイン名を含む (つまり重複している) が含まれます。2 つのディストリビューションで代替ドメイン名が重複している場合、CloudFront は、DNS レコードが指しているディストリビューションに関係なく、より具体的な名前が一致しているディストリビューションにリクエストを送信します。例えば、marketing.domain.com は \$1.domain.com より具体的です。  
CloudFront ディストリビューションをポイントする既存のワイルドカード DNS エントリがあり、新しい CNAME をより具体的な名前で追加しようとしたときに、DNS が正しく設定されていないというエラーが表示された場合は、「[新しい CNAME を追加しようとすると、DNS レコードが正しく設定されていないというエラーが CloudFront から返されます。](troubleshooting-distributions.md#troubleshoot-incorrectly-configured-DNS-record-error)」を参照してください。

**ドメインフロンティング**  
CloudFront には、異なる AWS アカウント間で発生するドメインフロンティングに対する保護が含まれています。これは、非標準クライアントが 1 つの AWS アカウントのドメイン名への TLS/SSL 接続を作成し、別の AWS アカウントの関連しないドメイン名の HTTPS リクエストを行うシナリオです。  
 たとえば、TLS 接続が www.example.com に接続を行い、次に www.example.org にリクエストを発行するような場合です。  
リクエストがドメインフロントになっているかどうかを判断するために、CloudFront は次のチェックを実行します。  
+ SNI 拡張機能が HTTP リクエスト `Host` ヘッダーと等しい
+ 証明書がリクエストのディストリビューションと同じ AWS アカウントに属している
+ HTTP リクエスト `Host` は、TLS ハンドシェイク中に提供される証明書でカバーされます。
これらの条件のいずれも満たされない場合、CloudFront はリクエストがドメインフロンティングであると判断します。CloudFront は、421 HTTP エラーレスポンスでリクエストを拒否します。  
クライアントが SNI 拡張機能を提供しておらず、代わりにデフォルトの \$1.cloudfront.net 証明書を取得した場合、CloudFront は受信リクエストを受け入れます。

**CloudFront がリクエストのディストリビューションを識別する方法**  
CloudFront は、`Host` ヘッダーに基づいて HTTP リクエストのディストリビューションを識別します。CloudFront は、接続先の CloudFront IP アドレスや、TLS ハンドシェイク中に提供された SNI ハンドシェイクに依存しません。  
CloudFront はリクエストを受信すると、`Host` ヘッダーの値を使用してリクエストを特定のディストリビューションに一致させます。  
例えば、2 つのディストリビューションがあり、代替ドメイン名が次のエンドポイントにルーティングされるように DNS 設定を更新したとします。  
+ primary.example.com は d111111primary.cloudfront.net を指します。
+ secondary.example.com は d222222secondary.cloudfront.net を指します。
https://primary.example.com にリクエストを行い、`Host` ヘッダーを `curl https://primary.example.com -H "Host: secondary.example.com"` のような secondary.example.com として指定すると、リクエストは代わりにセカンダリディストリビューションにルーティングされます。

**ドメインのトップノード (zone apex) の代替ドメイン名の追加**  
ディストリビューションに代替ドメイン名を追加する場合、通常、CloudFront ディストリビューションにドメイン名の DNS クエリをルーティングするように、DNS 設定で CNAME レコードを作成します。ただし、DNS プロトコルでは、zone apex とも呼ばれる、DNS 名前空間の最上位ノードに対して CNAME レコードを作成することができません。例えば、example.com という DNS 名を登録する場合、Zone Apex は example.com になります。「example.com」に対して CNAME レコードを作成することはできませんが、www.example.com、newproduct.example.com などに対しては CNAME レコードを作成できます。  
DNS サービスとして Route 53 を使用している場合、エイリアスリソースレコードセットを作成できます。これは、CNAME レコードに比べて次のような利点があります。  
+ トップノードのドメイン名 (example.com) に対してエイリアスリソースレコードセットを作成することもできます。
+ クライアントがサポートしている場合、代替ドメイン名の HTTPS レコードを作成して、DNS ルックアップの一部としてプロトコルネゴシエーションを許可できます。詳細については、「[Create alias resource record set](CreatingCNAME.md#alternate-domain-https)」を参照してください。
+ エイリアスリソースレコードセットを使用した場合、Route 53 クエリに対する料金はかかりません。
IPv6 を有効にする場合、2 つのエイリアスリソースレコードセットを作成する必要があります。IPv6 トラフィック (A レコード) をルーティングするため、および IPv4 トラフィック (AAAA レコード) をルーティングするためです。詳細については、トピック「[すべてのディストリビューション設定リファレンス](distribution-web-values-specify.md)」の「[IPv6 を有効にする (ビューワーリクエスト)](DownloadDistValuesGeneral.md#DownloadDistValuesEnableIPv6)」を参照してください。
詳細については、『Amazon Route 53 開発者ガイド**』の「[ドメイン名を使用したトラフィックの Amazon CloudFront ウェブディストリビューションへのルーティング](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html)」を参照してください。  
DNS に Route 53 を使用していない場合は、エニーキャスト静的 IP アドレスに example.com などの apex ドメインを CloudFront にルーティングするようにリクエストできます。詳細については、「[許可リストで使用するエニーキャスト静的 IP をリクエストする](request-static-ips.md)」を参照してください。

# 代替ドメイン名を追加する
<a name="CreatingCNAME"></a>

次のタスクリストでは、CloudFront ドメイン名の代わりに独自のドメイン名をリンクで使用できるように、CloudFront コンソールを使用して代替ドメイン名をディストリビューションに追加する方法を説明しています。CloudFront API を使用したディストリビューションの更新については、「[ディストリビューションの設定](distribution-working-with.md)」を参照してください。

**注記**  
ビューワーで代替ドメイン名を含む HTTPS を使用する場合は、「[代替ドメイン名と HTTPS を使用する](using-https-alternate-domain-names.md)」を参照してください。

**開始する前に:** ディストリビューションを更新して代替ドメイン名を追加する前に、以下の操作必ず実行してください。
+ ドメイン名を Route 53 または別のドメインレジストラに登録します。
+ ドメイン名を対象とする許可された認定権限 (CA) から TLS 証明書を取得します。証明書をディストリビューションに追加して、ドメインを使用する権限があることを確認します。詳細については、「[代替ドメイン名を使用するための要件](CNAMEs.md#alternate-domain-names-requirements)」を参照してください。<a name="CreatingCNAMEProcess"></a>

**代替ドメイン名を追加する**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 更新するディストリビューションの ID を選択します。

1. **[一般]** タブで、**[ドメインの追加]** を選択します。

1. 処理するドメインを最大 5 つまで入力します。

1. [**次へ**] を選択します。

1. **[TLS 証明書]** の場合、CloudFront が AWS アカウントの `us-east-1` AWS リージョンでドメインの既存の AWS Certificate Manager (ACM) 証明書を見つけられない場合、証明書を自動的に作成するか、ACM で手動で作成するかを選択できます。

1. 証明書がプロビジョニングされたら、DNS レコードを DNS プロバイダーで更新して、ドメインの所有権を証明する必要があります。DNS レコードに必要なエントリーは、CloudFront コンソールで提供されます。

1. DNS レコードを更新した後、**[証明書の検証]** を選択します。

1. 証明書が検証されたら、**[次へ]** を選択します。

1. 変更を確認し、**[ドメインの追加]** を選択します。

1. ディストリビューションの [**General (全般)**] タブで、[**Distribution Status (ディストリビューションのステータス)**] が [**Deployed (デプロイ済み)**] に変わっていることを確認します。ディストリビューションに対する更新がデプロイされる前に代替ドメインの使用を試みた場合、以下のステップで作成するリンクは機能しません。

1. トラフィックをルーティングするための代替ドメイン名 (www.example.com など) の DNS サービスを、ディストリビューションの CloudFront ドメイン名 (d111111abcdef8.cloudfront.net など) に設定します。使用する方法は、ドメインの DNS サービスプロバイダーとして、または別のプロバイダーとして Route 53 を使用しているかどうかによって異なります。詳細については、「[CloudFront 標準ディストリビューションにドメインを追加する](add-domain-existing-distribution.md)」を参照してください。  
**Route 53**  
エイリアスリソースレコードセットを作成します。エイリアスリソースレコードセットを使用した場合、Route 53 クエリに対する料金はかかりません。ルートドメイン名 (example.com) に対してエイリアスリソースレコードセットを作成することもできます。DNS では CNAME の使用が許可されていません。エイリアスリソースレコードセットを作成する方法ついては、「*Amazon Route 53 開発者ガイド*」の「[ドメイン名を使用したトラフィックの Amazon CloudFront ウェブディストリビューションへのルーティング](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html)」を参照してください。  
必要に応じて、クライアントがサポートしている場合、代替ドメイン名の HTTPS レコードを作成して、DNS ルックアップの一部としてプロトコルネゴシエーションを許可できます。  

**HTTPS レコードを持つエイリアスリソースレコードセットを作成するには (オプション)**

   1. CloudFront ディストリビューション設定で、HTTP/2 または HTTP/3 を有効にします。詳細については、「[サポートされる HTTP バージョン](DownloadDistValuesGeneral.md#DownloadDistValuesSupportedHTTPVersions)」および「[ディストリビューションを更新する](HowToUpdateDistribution.md)」を参照してください。

   1. Route 53 コンソールで、エイリアスリソースレコードセットを作成します。「[ドメイン名を使用したトラフィックの Amazon CloudFront ウェブディストリビューションへのルーティング](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html)」の手順に従います。

   1. エイリアスリソースレコードセットの作成中に、レコードタイプ **[HTTPS]** でエイリアスレコードを作成します。  
**別の DNS サービスプロバイダー**  
DNS サービスプロバイダーが提供する方法を使用して、ドメインの CNAME レコードを追加します。この新しい CNAME レコードによって、DNS クエリが代替ドメイン名 (例: www.example.com) からディストリビューションの CloudFront ドメイン名 (例: d111111abcdef8.cloudfront.net) にリダイレクトされます。詳細については、DNS サービスプロバイダーから提供されたドキュメントを参照してください。  
お使いの代替ドメイン名に対応する CNAME レコードが既に存在する場合は、そのレコードを更新するか、ディストリビューションの CloudFront ドメイン名を指す新しいレコードに置き換えてください。

1. `dig` などの DNS ツールを使用して、前のステップで作成した DNS 設定がディストリビューションのドメイン名を指していることを確認します。

   以下の例は、www.example.com ドメインへの `dig` リクエストと、応答のうちの関連する部分を示しています。

   ```
   PROMPT> dig www.example.com
   
   ; <<> DiG 9.3.3rc2 <<> www.example.com
   ;; global options:	printcmd
   ;; Got answer:
   ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15917
   ;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 2, ADDITIONAL: 0
   
   ;; QUESTION SECTION:
   ;www.example.com.     IN    A
   
   ;; ANSWER SECTION:
   www.example.com. 10800 IN	CNAME	d111111abcdef8.cloudfront.net.
   ...
   ```

   応答セクションには、www.example.com のクエリを CloudFront ディストリビューションドメイン名 d111111abcdef8.cloudfront.net にルーティングする CNAME レコードが示されます。`CNAME` の右側の名前が CloudFront ディストリビューションのドメイン名であれば、CNAME レコードは適切に構成されています。その名前が、Amazon S3 バケットのドメイン名などの別の値であれば、CNAME レコードの設定が間違っています。この場合、ステップ 7 に戻り、ディストリビューションのドメイン名を指すように CNAME レコードを修正します。

1. ディストリビューションの CloudFront ドメイン名ではなくお客様のドメイン名を持つ URL にアクセスして、代替ドメイン名をテストします。

1. アプリケーションで、CloudFront ディストリビューションのドメイン名ではなく代替ドメイン名を使用するように、オブジェクトへのリンクを変更します。

# 代替ドメイン名を移動する
<a name="alternate-domain-names-move"></a>

代替ドメイン名を標準ディストリビューションまたはディストリビューションテナントに追加しようとしたときに、その代替ドメイン名が既に別のリソースに関連付けられている場合は、エラーメッセージが表示されます。

例えば、www.example.com を標準ディストリビューションまたはディストリビューションテナントに追加しようとしたときに、その代替ドメイン名が既に別のリソースに関連付けられている場合、`CNAMEAlreadyExists` エラーメッセージ (指定した 1 つ以上の CNAME が既に別のリソースに関連付けられています) が表示されます。

この場合、既存の代替ドメイン名をリソース間で移動できます。これは*ソースディストリビューション*と*ターゲットディストリビューション*です。標準ディストリビューションまたはディストリビューションテナント間で代替ドメイン名を移動できます。

代替ドメイン名の移動については、次のトピックを参照してください。

**Topics**
+ [ターゲット標準ディストリビューションまたはディストリビューションテナントを設定する](alternate-domain-names-move-create-target.md)
+ [ソース標準ディストリビューションまたはディストリビューションテナントを見つける](alternate-domain-names-move-find-source.md)
+ [代替ドメイン名を移動する](alternate-domain-names-move-options.md)

# ターゲット標準ディストリビューションまたはディストリビューションテナントを設定する
<a name="alternate-domain-names-move-create-target"></a>

代替ドメイン名を移動する前に、ターゲットリソースを設定する必要があります。これは、代替ドメイン名を移動するターゲット標準ディストリビューションまたはディストリビューションテナントです。

------
#### [ Standard distribution ]

**ターゲット標準ディストリビューションを設定するには**

1. TLS 証明書をリクエストします。この証明書には、サブジェクトまたはサブジェクト代替ドメイン (SAN) として代替ドメイン名、または移動する代替ドメイン名をカバーするワイルドカード (\$1) が含まれます。お持ちでない場合は、AWS Certificate Manager (ACM) または 別の認証局 (CA) にリクエストして、ACM にインポートできます。
**注記**  
米国東部 (バージニア北部) (`us-east-1`) リージョンの証明書をリクエストまたはインポートすることが必要です。

   詳細については、AWS Certificate Manager の「*AWS Certificate Manager ユーザーガイド*」の「[コンソールを使用してパブリック証明書をリクエストする](https://docs.aws.amazon.com/acm/latest/userguide/acm-public-certificates.html#request-public-console)」または「[証明書のインポート](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)」を参照してください。

1. ターゲット標準ディストリビューションを作成していない場合は、新しく作成します。標準ディストリビューションの作成の一環として、証明書をこの標準ディストリビューションに関連付けます。詳細については、「[ディストリビューションを作成する](distribution-web-creating-console.md)」を参照してください。

   ターゲット標準ディストリビューションを既に作成している場合は、証明書を標準ディストリビューションに関連付けます。詳細については、「[ディストリビューションを更新する](HowToUpdateDistribution.md)」を参照してください。

1. **同じ AWS アカウント内で代替ドメイン名を移動する場合は、このステップをスキップします。**

   代替ドメイン名を別の AWS アカウントに移動するには、DNS 設定で TXT レコードを作成する必要があります。この検証ステップは、不正なドメイン転送を防ぐのに役立ちます。CloudFront は、この TXT レコードを使用して、代替ドメイン名の所有権を検証します。

   DNS 設定で、代替ドメイン名をターゲット標準ディストリビューションに関連付ける DNS TXT レコードを作成します。TXT レコードの形式は、ドメインタイプによって異なります。
   + サブドメインの場合は、代替ドメイン名の前にアンダースコア (`_`) を指定します。次に、TXT レコードの例を示します。

     `_www.example.com TXT d111111abcdef8.cloudfront.net`
   + apex (またはルートドメイン) の場合は、ドメイン名の前にアンダースコアとピリオド (`_.`) を指定します。次に、TXT レコードの例を示します。

     `_.example.com TXT d111111abcdef8.cloudfront.net`

------
#### [ Distribution tenant ]

**ターゲットディストリビューションテナントを設定するには**

1. TLS 証明書をリクエストします。この証明書には、サブジェクトまたはサブジェクト代替ドメイン (SAN) として代替ドメイン名、または移動する代替ドメイン名をカバーするワイルドカード (\$1) が含まれます。お持ちでない場合は、AWS Certificate Manager (ACM) または 別の認証局 (CA) にリクエストして、ACM にインポートできます。
**注記**  
米国東部 (バージニア北部) (`us-east-1`) リージョンの証明書をリクエストまたはインポートすることが必要です。

   詳細については、AWS Certificate Manager の「*AWS Certificate Manager ユーザーガイド*」の「[コンソールを使用してパブリック証明書をリクエストする](https://docs.aws.amazon.com/acm/latest/userguide/acm-public-certificates.html#request-public-console)」または「[証明書のインポート](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)」を参照してください。

1. ターゲットディストリビューションテナントを作成していない場合は、新しく作成します。ディストリビューションテナントの作成の一環として、証明書をディストリビューションテナントに関連付けます。詳細については、「[ディストリビューションを作成する](distribution-web-creating-console.md)」を参照してください。

   ターゲットディストリビューションテナントを既に作成している場合は、証明書をディストリビューションテナントに関連付けます。詳細については、「[ドメインと証明書を追加する (ディストリビューションテナント)](managed-cloudfront-certificates.md#vanity-domain-tls-tenant)」を参照してください。

1. **同じ AWS アカウント内で代替ドメイン名を移動する場合は、このステップをスキップします。**

   代替ドメイン名を別の AWS アカウントに移動するには、DNS 設定で TXT レコードを作成する必要があります。この検証ステップは、不正なドメイン転送を防ぐのに役立ちます。CloudFront はこの TXT レコードを使用して代替ドメイン名の所有権を検証します。

   DNS 設定で、代替ドメイン名をターゲットディストリビューションテナントに関連付ける DNS TXT レコードを作成します。TXT レコードの形式は、ドメインタイプによって異なります。
   + サブドメインの場合は、代替ドメイン名の前にアンダースコア (`_`) を指定します。次に、TXT レコードの例を示します。

     `_www.example.com TXT d111111abcdef8.cloudfront.net`
   + apex (またはルートドメイン) の場合は、ドメイン名の前にアンダースコアとピリオド (`_.`) を指定します。次に、TXT レコードの例を示します。

     `_.example.com TXT d111111abcdef8.cloudfront.net`

------

次に、次のトピックを参照して、代替ドメイン名に既に関連付けられているソース標準ディストリビューションまたはディストリビューションテナントを見つけます。

# ソース標準ディストリビューションまたはディストリビューションテナントを見つける
<a name="alternate-domain-names-move-find-source"></a>

代替ドメイン名をあるディストリビューション (標準またはテナント) から別のディストリビューションに移動する前に、*ソースディストリビューション*を見つけます。これは、代替ドメイン名が既に関連付けられているリソースです。ソースディストリビューションリソースとターゲットディストリビューションリソースの両方の AWS アカウント ID が分かっている場合は、代替ドメイン名の移動方法を決定できます。

**注意事項**  
[ListDomainConflicts](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListDomainConflicts.html) API オペレーションを使用することをお勧めします。これは、標準ディストリビューションとディストリビューションテナントの両方をサポートするためです。
[ListConflictingAliases](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListConflictingAliases.html) API オペレーションは、標準ディストリビューションのみをサポートします。

次の例に従って、ソースディストリビューション (標準またはテナント) を見つけます。

------
#### [ list-domain-conflicts ]

**ヒント**  
標準ディストリビューションの場合、`cloudfront:GetDistribution` および `cloudfront:ListDomainConflicts` アクセス許可が必要です。
ディストリビューションテナントの場合、`cloudfront:GetDistributionTenant` および `cloudfront:ListDomainConflicts` アクセス許可が必要です。

**`list-domain-conflicts` を使用してソース標準ディストリビューションまたはディストリビューションテナントを見つけるには**

1. 次の例に示すように `list-domain-conflicts` コマンドを使用します。

   1. *www.example.com* をドメイン名で置き換えます。

   1. `domain-control-validation-resource` には、[以前に設定した](alternate-domain-names-move-create-target.md)ターゲット標準ディストリビューションまたはディストリビューションテナントの ID を指定します。指定されたドメインを対象とする証明書が関連付けられた標準のディストリビューションまたはディストリビューションテナントが必要です。

   1. ターゲット標準ディストリビューションまたはディストリビューションテナントと同じ AWS アカウントにある認証情報を使用して、このコマンドを実行します。

   **[リクエスト**]

    この例では、ディストリビューションテナントを指定します。

   ```
   aws cloudfront list-domain-conflicts \
   --domain www.example.com \
   --domain-control-validation-resource "DistributionTenantId=dt_2x9GhoK0TZRsohWzv1b9It8JABC"
   ```

   **応答**

   コマンドの出力内の各ドメイン名について、以下が表示されます。
   + ドメインが関連付けられているリソースタイプ
   + リソース ID。
   + リソースを所有する AWS アカウント ID

   リソース ID とアカウント ID は部分的に非表示になります。これにより、アカウントに属する標準ディストリビューションまたはディストリビューションテナントを識別し、所有していないテナントの情報を保護するのに役立ちます。

   ```
   {
       "DomainConflicts": [
           {
               "Domain": "www.example.com",
               "ResourceType": "distribution-tenant",
               "ResourceId": "***************ohWzv1b9It8JABC",
               "AccountId": "******112233"
           }
       ]
   }
   ```

   レスポンスには、指定したドメイン名と競合または重複するすべてのドメイン名が一覧表示されます。

**例**
   + *tenant1.example.com* を指定した場合、レスポンスには tenant1.example.com と重複するワイルドカード代替ドメイン名 (\$1.example.com が存在する場合) が含まれます。
   + *\$1.tenant1.example.com* を指定した場合、レスポンスには \$1.tenant1.example.com と、そのワイルドカードの対象となる代替ドメイン名 (test.tenant1.example.com、dev.tenant1.example.com など) が含まれます。

1. レスポンスで、移動する代替ドメイン名のソース標準ディストリビューションまたはディストリビューションテナントを見つけ、AWS アカウント ID をメモします。

1. *ソース*標準ディストリビューションまたはディストリビューションテナントのアカウント ID を、[前のステップ](alternate-domain-names-move-create-target.md)で*ターゲット*標準ディストリビューションまたはディストリビューションテナントを作成したアカウント ID と比較します。その後、ソースとターゲットが同じ AWS アカウントにあるかどうかを判断できます。これは、代替ドメイン名の移動方法を決定するのに役立ちます。

   詳細については、「*AWS Command Line Interface リファレンス*」の「[https://docs.aws.amazon.com/cli/latest/reference/cloudfront/list-domain-conflicts.html](https://docs.aws.amazon.com/cli/latest/reference/cloudfront/list-domain-conflicts.html) コマンド」を参照してください。

------
#### [ list-conflicting-aliases (standard distributions only) ]

**ヒント**  
ターゲット標準ディストリビューションに対する `cloudfront:GetDistribution` と `cloudfront:ListConflictingAliases` アクセス許可が必要です。

**`list-conflicting-aliases` を使用してソース標準ディストリビューションを見つけるには**

1. 次の例に示すように `list-conflicting-aliases` コマンドを使用します。

   1. *www.example.com* を代替ドメイン名に置き換え、*EDFDVBD6EXAMPLE* を、[以前に設定した](alternate-domain-names-move-create-target.md)ターゲット標準ディストリビューションの ID に置き換えます。

   1. ターゲット標準ディストリビューションと同じ AWS アカウントにある認証情報を使用して、このコマンドを実行します。

   **[リクエスト**]

    この例では、標準ディストリビューションを指定します。

   ```
   aws cloudfront list-conflicting-aliases \
   --alias www.example.com \
   --distribution-id EDFDVBD6EXAMPLE
   ```

   **応答**

   コマンドの出力内の代替ドメイン名ごとに、それが関連付けられている標準ディストリビューションの ID と、標準ディストリビューションを所有する AWS アカウント ID を確認できます。標準ディストリビューション ID とアカウント ID は部分的に非表示になっているため、所有している標準ディストリビューションとアカウントを識別でき、所有していないディストリビューションとアカウントの情報は保護されます。

   ```
   {
       "ConflictingAliasesList": {
           "MaxItems": 100,
           "Quantity": 1,
           "Items": [
               {
                   "Alias": "www.example.com",
                   "DistributionId": "*******EXAMPLE",
                   "AccountId": "******112233"
               }
           ]
       }
   }
   ```

   レスポンスには、指定したドメイン名と競合または重複する代替ドメイン名が一覧表示されます。

**例**
   + *www.example.com* を指定した場合、レスポンスには www.example.com と、重複するワイルドカード代替ドメイン名 (\$1.example.com) が含まれます (存在する場合)。
   + コマンドに *\$1.example.com* を指定すると、レスポンスには、\$1.example.com と、そのワイルドカードでカバーされる代替ドメイン名 (例えば、www.example.com、test.example.com、dev.example.com など) が含まれます。

1. 移動する代替ドメイン名の標準ディストリビューションを見つけ、AWS アカウント ID を書き留めます。このアカウント ID を、[前のステップ](alternate-domain-names-move-create-target.md)でターゲット標準ディストリビューションを作成したアカウント ID と比較します。その後、これら 2 つの標準ディストリビューションが同じ AWS アカウントにあるかどうか、および代替ドメイン名の移動方法を判断できます。

   詳細については、「*AWS Command Line Interface リファレンス*」の「[https://docs.aws.amazon.com//cli/latest/reference/cloudfront/list-conflicting-aliases.html](https://docs.aws.amazon.com//cli/latest/reference/cloudfront/list-conflicting-aliases.html) コマンド」を参照してください。

------

次に、代替ドメイン名の移動については、以下のトピックを参照してください。

# 代替ドメイン名を移動する
<a name="alternate-domain-names-move-options"></a>

代替ドメインの移動方法については、状況に応じて、次の方法から選択します。

**ソースディストリビューションとターゲットディストリビューション (標準またはテナント) が同じ AWS アカウントにある場合**  
AWS Command Line Interface (AWS CLI) の **update-domain-association** コマンドを使用して、代替ドメイン名を移動します。  
このコマンドは、代替ドメイン名が apex ドメイン (*ルートドメイン*とも呼ばれます。例: example.com) である場合を含めて、同じアカウントでのすべての移動で機能します。

**ソースディストリビューションとターゲットディストリビューション (標準またはテナント) が異なる AWS アカウントにある場合**  
ソース標準ディストリビューションまたはディストリビューションテナントにアクセスでき、代替ドメイン名が apex ドメイン*以外*のもので、その代替ドメイン名と重複するワイルドカードをまだ使用していない場合は、ワイルドカードを使用して代替ドメイン名を移動します。詳細については、「[ワイルドカードを使用して代替ドメイン名を移動する](#alternate-domain-names-move-use-wildcard)」を参照してください。  
ソース標準ディストリビューションまたはディストリビューションテナントを持つ AWS アカウントにアクセスできない場合は、**update-domain-association** コマンドを使用して代替ドメイン名の移動を試すことができます。代替ドメイン名を移動する前に、ソース標準ディストリビューションまたはディストリビューションテナントを無効にする必要があります。その他のヘルプについては、「[AWS サポート にお問い合わせいただき、代替ドメイン名を移動する](#alternate-domain-names-move-contact-support)」を参照してください。

**注記**  
**associate-alias** コマンドを使用できますが、このコマンドは標準ディストリビューションのみをサポートします。「*Amazon CloudFront API リファレンス*」の「[AssociateAlias](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_AssociateAlias.html)」を参照してください。

------
#### [ update-domain-association (standard distributions and distribution tenants) ]

**`update-domain-association` を使用して代替ドメイン名を移動するには**

1. 次の例に示すように `update-domain-association` コマンドを使用します。

   1. *example.com* を代替ドメイン名に置き換え、ターゲット標準ディストリビューションまたはディストリビューションテナントの ID を指定します。

   1. ターゲット標準ディストリビューションまたはディストリビューションテナントと同じ AWS アカウントにある認証情報を使用して、このコマンドを実行します。
**以下の制限があることに注意してください**  
`cloudfront:UpdateDomainAssociation` アクセス許可に加えて、標準ディストリビューションを更新する `cloudfront:UpdateDistribution` アクセス許可が必要です。ディストリビューションテナントを更新するには、`cloudfront:UpdateDistributionTenant` アクセス許可が必要です。
ソースディストリビューションとターゲットディストリビューション (標準またはテナント) が異なる AWS アカウントにある場合は、ドメインを移動する前にソースを無効にする必要があります。
ターゲットディストリビューションは、「[ターゲット標準ディストリビューションまたはディストリビューションテナントを設定する](alternate-domain-names-move-create-target.md)」で説明されているように設定する必要があります。

   **[リクエスト**]

   ```
   aws cloudfront update-domain-association \
     --domain "www.example.com" \
     --target-resource DistributionTenantId=dt_9Fd3xTZq7Hl2KABC \
     --if-match E3UN6WX5ABC123
   ```

   **レスポンス**

   ```
   {
       "ETag": "E7Xp1Y3N9DABC",
       "Domain": "www.example.com",
       "ResourceId": "dt_9Fd3xTZq7Hl2KABC"
   }
   ```

   このコマンドは、ソース標準ディストリビューションまたはディストリビューションテナントから代替ドメイン名を削除し、ターゲット標準ディストリビューションまたはディストリビューションテナントに追加します。

1. ターゲットディストリビューションが完全にデプロイされたら、ドメイン名が CloudFront ルーティングエンドポイントを指すように DNS 設定を更新します。例えば、DNS レコードは代替ドメイン名 (`www.example.com`) を CloudFront が提供するドメイン名 d111111abcdef8.cloudfront.net にポイントします。ターゲットがディストリビューションテナントの場合は、接続グループのエンドポイントを指定します。詳細については、「[ドメインを CloudFront にポイントする](managed-cloudfront-certificates.md#point-domains-to-cloudfront)」を参照してください。

------
#### [ associate-alias (standard distributions only) ]

**`associate-alias` を使用して代替ドメイン名を移動するには**

1. 次の例に示すように `associate-alias` コマンドを使用します。

   1. *www.example.com* を代替ドメイン名に、*EDFDVBD6EXAMPLE* をターゲット標準ディストリビューションの ID に置き換えます。

   1. ターゲット標準ディストリビューションと同じ AWS アカウントにある認証情報を使用して、このコマンドを実行します。
**以下の制限があることに注意してください**  
ターゲット標準ディストリビューションに対する `cloudfront:AssociateAlias` と `cloudfront:UpdateDistribution` アクセス許可が必要です。
ソース標準ディストリビューションとターゲット標準ディストリビューションが同じ AWS アカウントにある場合、ソース標準ディストリビューションに対する `cloudfront:UpdateDistribution` アクセス許可が必要です。
ソース標準ディストリビューションとターゲット標準ディストリビューションが異なる AWS アカウントにある場合は、最初にソース標準ディストリビューションを無効にする必要があります。
ターゲット標準ディストリビューションは、「[ターゲット標準ディストリビューションまたはディストリビューションテナントを設定する](alternate-domain-names-move-create-target.md)」で説明されているように設定する必要があります。

      **[リクエスト**]

      ```
      aws cloudfront associate-alias \
      --alias www.example.com \
      --target-distribution-id EDFDVBD6EXAMPLE
      ```

      このコマンドは、ソース標準ディストリビューションから代替ドメイン名を削除し、ターゲット標準ディストリビューションに移動します。

1. ターゲット標準ディストリビューションが完全にデプロイされたら、代替ドメイン名の DNS レコードがターゲット標準ディストリビューションのディストリビューションドメイン名を参照するように DNS 構成を更新します。例えば、DNS レコードは代替ドメイン名 (`www.example.com`) を CloudFront が提供するドメイン名 d111111abcdef8.cloudfront.net にポイントします。

詳細については、「*AWS CLI コマンドリファレンス*」の「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudfront/associate-alias.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudfront/associate-alias.html) コマンド」を参照してください。

------

## ワイルドカードを使用して代替ドメイン名を移動する
<a name="alternate-domain-names-move-use-wildcard"></a>

ソースディストリビューションがターゲットディストリビューションと異なる AWS アカウントにあり、ソースディストリビューションが有効になっている場合は、ワイルドカードを使用して代替ドメイン名を移動できます。

**注記**  
ワイルドカードを使用して apex ドメイン (example.com など) を移動することはできません。ソースディストリビューションとターゲットディストリビューションが異なる AWS アカウントにある場合の apex ドメインの移動については、サポート にお問い合わせください。詳細については、「[AWS サポート にお問い合わせいただき、代替ドメイン名を移動する](#alternate-domain-names-move-contact-support)」を参照してください。

**ワイルドカードを使用して代替ドメイン名を移動するには**
**注記**  
このプロセスでは、ディストリビューションを複数回更新します。各ディストリビューションが最新の変更を完全にデプロイするまで待ってから次のステップに進みます。

1. ターゲットディストリビューションを更新して、移動する代替ドメイン名に対応したワイルドカード付き代替ドメイン名を追加します。例えば、移動する代替ドメイン名を www.example.com にしている場合は、代替ドメイン名 \$1.example.com をターゲットディストリビューションに追加します。これを行うには、ターゲットディストリビューションの SSL/TLS 証明書にワイルドカード付きのドメイン名を含める必要があります。詳細については、「[ディストリビューションを更新する](HowToUpdateDistribution.md)」を参照してください。

1. 代替ドメイン名の DNS 設定を更新して、ターゲットディストリビューションのドメイン名を参照します。例えば、移動する代替ドメイン名が www.example.com の場合、www.example.com の DNS レコードを更新して、トラフィックをターゲットディストリビューションのドメイン名 (例: d111111abcdef8.cloudfront.net) にルーティングします。
**注記**  
DNS 設定を更新した後でも、代替ドメイン名はソースディストリビューションによって引き続き提供されます。これは、代替ドメイン名がソースディストリビューションで現在設定されているためです。

1. ソースディストリビューションを更新して代替ドメイン名を削除します。詳細については、「[ディストリビューションを更新する](HowToUpdateDistribution.md)」を参照してください。

1. ターゲットディストリビューションを更新して代替ドメイン名を追加します。詳細については、「[ディストリビューションを更新する](HowToUpdateDistribution.md)」を参照してください。

1. **dig** (または類似の DNS クエリツール) を使用して、代替ドメイン名の DNS レコードの解決先がターゲットディストリビューションのドメイン名になっていることを検証します。

1. (オプション) ターゲットディストリビューションを更新してワイルドカード付き代替ドメイン名を削除します。

## AWS サポート にお問い合わせいただき、代替ドメイン名を移動する
<a name="alternate-domain-names-move-contact-support"></a>

ソースディストリビューションとターゲットディストリビューションが異なる AWS アカウントにある場合に、ソースディストリビューションの AWS アカウントにアクセスできないか、ソースディストリビューションを無効にできない場合は、サポート にお問い合わせいただき代替ドメイン名を移動できます。

**サポート にお問い合わせいただき、代替ドメイン名を移動するには**

1. ターゲットディストリビューションをセットアップします。これには、ターゲットディストリビューションを参照する DNS TXT レコードも含まれます。詳細については、「[ターゲット標準ディストリビューションまたはディストリビューションテナントを設定する](alternate-domain-names-move-create-target.md)」を参照してください。

1. [サポート にお問い合わせいただき、](https://console.aws.amazon.com/support/home)ドメインの所有権を証明し、ドメインを新しい CloudFront ディストリビューションに移動するようにリクエストします。

1. ターゲットディストリビューションが完全にデプロイされたら、代替ドメイン名の DNS レコードがターゲットディストリビューションのディストリビューションドメイン名を参照するように DNS 構成を更新します。

# 代替ドメイン名を削除する
<a name="alternate-domain-names-remove-domain"></a>

ドメインあるいはサブドメインから CloudFront ディストリビューション にルーティングするトラフィックを停止する場合、このセクションの手順に従って DNS 設定および CloudFront ディストリビューションを更新します。

ディストリビューションから代替ドメイン名を削除し、同時に DNS 設定を更新することが重要です。これにより、後にこのドメイン名を別の CloudFront ディストリビューションに関連付ける際の問題を回避します。代替ドメイン名が既に 1 つのディストリビューションに関連付けられている場合、別のディストリビューションで設定することはできません。

**注記**  
このディストリビューションから代替ドメイン名を削除して、別のディストリビューションに追加するには、「[代替ドメイン名を移動する](alternate-domain-names-move.md)」の手順に従います。ドメインを削除するこの手順を実行し、続けてこのドメインを別のディストリビューションに追加する場合、CloudFront はエッジロケーションに更新するように伝達されることより、このドメインは一定期間新しいディストリビューションにリンクしません。<a name="RemovingADomain"></a>

**ディストリビューションから代替ドメイン名を削除するには**

1. まず、ドメインのイントラネットトラフィックを CloudFront ディストリビューションではない別のリソース (Elastic Load Balancing ロードバランサーなど) にルーティングします。または、CloudFront にトラフィックをルーティングする DNS レコードを削除することもできます。

   ドメインの DNS サービスに応じて、次のいずれかを実行します。
   + **Route 53 を使用している場合**、エイリアスレコードまたは CNAME レコードを更新または削除します。詳細については、「[レコードの編集](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-editing.html)」または「[レコードの削除](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-deleting.html)」を参照してください。
   + **別の DNS サービスプロバイダーを使用している場合**、その DNS サービスプロバイダーが提供するメソッドで CloudFront にトラフィックを送る CNAME レコードを更新または削除します。詳細については、DNS サービスプロバイダーから提供されたドキュメントを参照してください。

1. ドメインの DNS レコードを更新したら、この変更が伝達され、DNS リゾルバーが新しいリソースにトラフィックをルーティングするまで待ちます。URL でドメインを使用するテストリンクを作成することで、以上が完了したことを確認できます。

1. AWS マネジメントコンソール にサインインして、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開き、次の手順で CloudFront ディストリビューションを更新してドメイン名を削除します。

   1. 更新するディストリビューションの ID を選択します。

   1. [**General**] タブで、[**Edit**] を選択します。

   1. [**Alternate Domain Names (CNAMEs) (代替ドメイン名 (CNAME))**] で、ディストリビューションに使用しない代替ドメイン名 (1 つ以上) を削除します。

   1. [**Yes, Edit (はい、編集します)**] を選択します。

# 代替ドメイン名でワイルドカードを使用する
<a name="alternate-domain-names-wildcard"></a>

代替ドメイン名を追加するとき、サブドメインを個別に追加する代わりに、ドメイン名の最初に \$1 ワイルドカードを使用できます。例えば、代替ドメイン名を \$1.example.com にしている場合は、「www.example.com」、「product-name.example.com」、「marketing.product-name.example.com」などの、末尾が「example.com」であるドメイン名であればどれでも URL に使用できます。オブジェクトのパスは、ドメイン名に関係なく同じです。例えば、次のようになります。
+ www.example.com/images/image.jpg
+ product-name.example.com/images/image.jpg
+ marketing.product-name.example.com/images/image.jpg

ワイルドカードを含む代替ドメイン名については、以下の要件に従ってください。
+ 代替ドメイン名は、アスタリスクとドット (\$1.) で始まる必要があります。
+ \$1domain.example.com のように、サブドメイン名の一部をワイルドカードで置き換えることは*できません*。
+ 「subdomain.\$1.example.com」 のように、ドメイン名の途中にあるサブドメインを置き換えることはできません。
+ ワイルドカードを使用する代替ドメイン名を含むすべての代替ドメイン名は、証明書のサブジェクト代替名 (SAN) でカバーされている必要があります。

ワイルドカード付き代替ドメイン名 (\$1.example.com など) には、使用されている別の代替ドメイン名 (example.com など) を含めることができます。

# CloudFront ディストリビューションで WebSockets を使用する
<a name="distribution-working-with.websockets"></a>

Amazon CloudFront は、WebSocket の使用をサポートしています。これは、クライアントとサーバー間の長時間の双方向性接続が必要な場合に便利な TCP ベースのプロトコルです。永続的な接続は、多くの場合、リアルタイムアプリケーションでの要件です。WebSockets を使用するシナリオには、ソーシャルチャットプラットフォーム、オンラインコラボレーションワークスペース、マルチプレイヤーゲーム、および金融取引プラットフォームのようなリアルタイムのデータフィードを提供するサービスが含まれます。WebSocket 接続経由のデータは、全二重通信に対して双方向に流れることができます。

WebSocket 機能は自動的に有効になり、どのディストリビューションでも動作します。WebSockets を使用するには、ディストリビューションにアタッチされているキャッシュ動作で次のいずれかを設定します。
+ すべてのビューワーリクエストのヘッダーをオリジンに転送します [AllViewer マネージドオリジンリクエストポリシー](using-managed-origin-request-policies.md#managed-origin-request-policy-all-viewer)を使用できます。
+ 具体的には、オリジンリクエストポリシーで `Sec-WebSocket-Key` および `Sec-WebSocket-Version` リクエストヘッダーを転送します。

## WebSocket プロトコルの仕組み
<a name="distribution-working-with.websockets.how-it-works"></a>

WebSocket プロトコルは、独立した TCP ベースのプロトコルであり、これによって HTTP のオーバーヘッド (および潜在的なレイテンシーの増加) の一部を回避することができます。

WebSocket 接続を確立するために、クライアントはプロトコルの変更のため HTTP のアップグレードセマンティクスを使用する通常の HTTP リクエストを送信します。その後、サーバーはハンドシェイクを完了できます。WebSocket 接続は開いたままで、クライアントまたはサーバーが毎回新しい接続を確立する必要なしに互いにデータフレームを送信できます。

デフォルトでは、WebSocket プロトコルは通常の WebSocket 接続にポート 80 を使用し、TLS 経由の WebSocket 接続ではポート 443 を使用します。CloudFront [ビューワープロトコルポリシー](DownloadDistValuesCacheBehavior.md#DownloadDistValuesViewerProtocolPolicy) および [プロトコル (カスタムオリジンのみ)](DownloadDistValuesOrigin.md#DownloadDistValuesOriginProtocolPolicy) に選択したオプションは、WebSocket 接続と HTTP トラフィックに適用されます。

## WebSocket の要件
<a name="distribution-working-with.websockets.requirements"></a>

WebSocket リクエストは、以下の標準形式で [RFC 6455](https://datatracker.ietf.org/doc/html/rfc6455) に準拠する必要があります。

**Example サンプルクライアントリクエスト**  

```
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: https://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
```

**Example サンプルサーバー応答**  

```
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Protocol: chat
```

WebSocket 接続がクライアントまたはサーバーによって、またはネットワークの中断によって切断された場合、クライアントアプリケーションはサーバーとの接続を再開する必要があります。

## 推奨される WebSocket ヘッダー
<a name="distribution-working-with.websockets.recomended-settings"></a>

WebSockets を使用する際の予期しない圧縮関連の問題を避けるため、[オリジンリクエストポリシー](origin-request-create-origin-request-policy.md)に以下のヘッダーを含めることをお勧めします。
+ `Sec-WebSocket-Key`
+ `Sec-WebSocket-Version`
+ `Sec-WebSocket-Protocol`
+ `Sec-WebSocket-Accept`
+ `Sec-WebSocket-Extensions`

**注記**  
現在、CloudFront は HTTP/1.1 プロトコル経由の WebSocket 接続のみをサポートしています。

# 許可リストで使用するエニーキャスト静的 IP をリクエストする
<a name="request-static-ips"></a>

ディストリビューションで使用するエニーキャスト静的 IP を CloudFront にリクエストできます。エニーキャスト静的 IP リストには IPv4 の IP アドレスのみ、または IPv4 と IPv6 の両方の IP アドレスを含めることができます。これらの IP アドレスは自分の AWS アカウント専用であり、地理的地域全体に分散しています。

21 個のエニーキャスト静的 IP アドレスをネットワークプロバイダーの許可リストにリクエストして、アプリケーションにアクセスするビューワーのデータ料金を免除できます。または、アウトバウンドセキュリティファイアウォール内でこれらの静的 IP を使用して、承認されたアプリケーションとのトラフィック交換を制御することもできます。エニーキャスト静的 IP リストは、1 つ以上のディストリビューションで使用できます。

Apex ドメイン (example.com など) を CloudFront ディストリビューションに直接ルーティングする場合は、このユースケースで 3 個のエニーキャスト静的 IP アドレスをリクエストできます。次に、DNS に A レコードを追加して、apex ドメインを CloudFront にポイントします。

エニーキャスト静的 IP は、[サーバー名表示 (SNI)](https://en.wikipedia.org/wiki/Server_Name_Indication) で動作します。詳細については、「[SNI を使用して HTTPS リクエストを処理する (ほとんどのクライアントで有効)](cnames-https-dedicated-ip-or-sni.md#cnames-https-sni)」を参照してください。

## 前提条件
<a name="anycast-static-ip-prereqs"></a>

CloudFront ディストリビューションでエニーキャスト静的 IP リストを使用するには、ディストリビューションの料金クラスの **[すべてのエッジロケーションを使用]** を選択する必要があります。料金の詳細については、「[CloudFront の料金](https://aws.amazon.com/cloudfront/pricing/)」を参照してください。

## エニーキャスト静的 IP リストをリクエストする
<a name="request-static-ip-list"></a>

CloudFront ディストリビューションで使用するエニーキャスト静的 IP リストをリクエストします。

**エニーキャスト静的 IP リストをリクエストするには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 左のナビゲーションペインで **[静的 IP]** を選択します。

1. **[リクエスト]** で、CloudFront サポートエンジニアリングに連絡するためのリンクを選択します。

1. ワークロード情報 (1 秒あたりのリクエストバイト数と 1 秒あたりのリクエスト数) を入力します。

1. CloudFront サポートエンジニアリングがリクエストを確認します。確認プロセスには最大 2 日かかる場合があります。

リクエストが承認されたら、エニーキャスト静的 IP リストを作成して 1 つ以上のディストリビューションに関連付けることができます。

## エニーキャスト静的 IP リストを作成する
<a name="create-static-ip-list"></a>

開始する前に、前のセクションで説明したように、エニーキャスト静的 IP リストをリクエストします。

**エニーキャスト静的 IP リストを作成するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 左のナビゲーションペインで **[静的 IP]** を選択します。

1. **[エニーキャスト IP リストを作成]** を選択します。

1. **[名前]** に名前を入力します。

1. **静的 IP ユースケース**では、適切なユースケースを選択します。

1. **[IP アドレスのタイプ]** で、次のオプションから指定します。
   + **IPv4** - IPv4 アドレスのみのリストを割り当てます 
   + **Dualstack** – IPv4 アドレスと IPv6 アドレスの両方のリストを割り当てます

1. サービスの利用規約と料金を確認し、**[送信]** を選択します。

静的 IP リストが作成されたら、割り当てられた IP アドレスを静的 IP リストの詳細ページで確認できます。ディストリビューションを静的 IP リストに関連付けることもできます。

## エニーキャスト静的 IP リストを既存のディストリビューションに関連付ける
<a name="associate-static-ip-list-existing"></a>

開始する前に、前のセクションで説明したように、エニーキャスト静的 IP リストをリクエストして作成します。

次のディストリビューション設定がエニーキャスト静的 IP リストと互換性があることを確認します。
+ [価格クラス](DownloadDistValuesGeneral.md#DownloadDistValuesPriceClass) には、**[すべてのエッジロケーションを使用 (最高のパフォーマンス)]** 設定があります。
+ [IPv6](cloudfront-enable-ipv6.md) が有効になっている場合は、デュアルスタックのエニーキャスト静的 IP リストを関連付けることができます。IPv4 アドレスのみを持つエニーキャスト静的 IP リストは、IPv6 が有効になっているディストリビューションに関連付けることはできません。

**エニーキャスト静的 IP リストを既存のディストリビューションに関連付けるには**
+ 次のいずれかを行います。
  + 静的 IP リストの詳細ページから静的 IP リストを関連付けます。

    1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

    1. 左のナビゲーションペインで **[静的 IP]** を選択します。

    1. 静的 IP リストの名前を選択します。

    1. **[アソシエイトディストリビューション]** を選択します。

    1. 1 つ以上のディストリビューションを選択し、**[アソシエイトディストリビューション]** を選択します。
  + ディストリビューションの詳細ページから静的 IP リストを関連付けます。

    1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

    1. 左のナビゲーションペインで、**[ディストリビューション]** を選択します。

    1. ディストリビューションの名前を選択します。

    1. **[全般]** タブの **[設定]** で、**[編集]** を選択します。

    1. **[エニーキャスト IP リスト]** で、このディストリビューションで使用するエニーキャスト静的 IP リストを選択します。

    1. **[変更を保存]** を選択します。

## エニーキャスト静的 IP リストを新しいディストリビューションに関連付ける
<a name="associate-static-ip-list-new"></a>

開始する前に、前のセクションで説明したように、エニーキャスト静的 IP リストをリクエストして作成します。

**エニーキャスト静的 IP リストを新しいディストリビューションに関連付けるには**
+ 新しい ディストリビューションを作成します。詳細については、「[コンソールに CloudFront ディストリビューションを作成する](distribution-web-creating-console.md#create-console-distribution)」を参照してください。**[設定]** で、エニーキャスト静的 IP リストを使用するために、以下の選択を行う必要があります。
  + **[エニーキャスト IP リスト]** で、ドロップダウンリストからエニーキャスト静的 IP リストを選択します。
  + **[料金クラス]** で、**[すべてのエッジロケーションを使用する (最適なパフォーマンス)]** を選択します。
  + **注意:** エニーキャスト静的 IP がデュアルスタックではなく IPv4 のみを使用している場合は、**[IPv6]** で **[オフ]** を選択します。

ディストリビューションの作成を完了します。必要に応じて、エニーキャスト静的 IP リストに必須ではないその他の設定や構成を選択できます。

エニーキャスト静的 IP [リストに関するクォータの詳細については、「*AWS 全般のリファレンス*」の「Amazon CloudFront endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/cf_region.html#limits_cloudfront)」を参照してください。

## エニーキャスト静的 IP リストを接続グループに関連付ける
<a name="associate-anycast-ip-connection-group"></a>

開始する前に、前のセクションで説明したように、エニーキャスト静的 IP リストをリクエストして作成します。

**エニーキャスト静的 IP リストを新しい接続グループに関連付けるには**

1. **[設定]** で接続グループが有効になっていることを確認します。

1. 接続グループを作成します。詳細については、「[カスタム接続グループを作成する](custom-connection-group.md)」を参照してください。

1. **[設定]** で、エニーキャスト静的 IP リストを使用するために、以下の選択を行う必要があります。

   1. **[エニーキャスト IP リスト]** で、ドロップダウンリストからエニーキャスト静的 IP リストを選択します。

1. 接続グループの作成を完了します。

**注記**  
エニーキャスト静的 IP がデュアルスタックではなく IPv4 のみを使用している場合は、**[IPv6]** で **[オフ]** を選択します。

エニーキャスト静的 IP [リストに関するクォータの詳細については、「*Amazon Web Services 全般のリファレンス*」の「Amazon CloudFront endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/cf_region.html#limits_cloudfront)」を参照してください。

## エニーキャスト静的 IP リストを更新する
<a name="update-static-ip-list"></a>

エニーキャスト静的 IP アドレスを作成してディストリビューションに関連付けた後、エニーキャスト静的 IP リストの IP アドレスタイプを変更できます。

**エニーキャスト静的 IP リストを更新するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 左のナビゲーションペインで **[静的 IP]** を選択します。

1. 静的 IP リストの名前を選択します。

1. **[編集]** を選択します。

1. **[IP アドレスのタイプ]** で、次のオプションから指定します。
   + **IPv4** - IPv4 アドレスのみのリストを割り当てます 
   + **Dualstack** – IPv4 アドレスと IPv6 アドレスの両方のリストを割り当てます
**注記**  
関連付けられたディストリビューションで既に IPv6 が有効になっている場合、**[IPv4]** を選択することはできません。これを行うには、エニーキャスト静的 IP の IP アドレスタイプを更新する前に、IPv6 を無効にします。詳細については、「[CloudFront ディストリビューションの IPv6 を有効にする](cloudfront-enable-ipv6.md)」を参照してください。

1. **[送信]** を選択して変更を保存し、エニーキャスト静的 IP リストを更新します。

# IPAM を使用して独自の IP を CloudFront に持ち込む
<a name="bring-your-own-ip-address-using-ipam"></a>

このチュートリアルでは、IPAM を使用して CloudFront エニーキャスト静的 IP リストの BYOIP CIDR を管理する方法について説明します。

**Topics**
+ [エニーキャスト静的 IP の BYOIP とは](#what-is-byoip-anycast)
+ [この機能を使用する理由](#why-use-byoip)
+ [前提条件](#byoip-prerequisites)
+ [ステップ 1: エニーキャスト静的 IP リストをリクエストする](#request-anycast-static-ip-list)
+ [ステップ 2: エニーキャスト静的 IP リストを作成する](#create-anycast-static-ip-list)
+ [ステップ 3: CloudFront ディストリビューションを作成する](#create-cloudfront-distribution)
+ [ステップ 4: CloudFront リソースに関連付ける](#associate-with-cloudfront-resources)
+ [ステップ 5: 移行の準備をする](#prepare-for-migration)
+ [ステップ 6: CIDR をグローバルにアドバタイズする](#advertise-cidr-globally)

## エニーキャスト静的 IP の BYOIP とは
<a name="what-is-byoip-anycast"></a>

CloudFront は、グローバルサービスの IPAM の BYOIP を通じて独自の IPv4 アドレスを持ち込むことをサポートしています。IPAM の統合インターフェイスを通じて、お客様は独自の IP アドレス (BYOIP) を使用して専用 IP アドレスプールを作成し、CloudFront ディストリビューションに割り当てながら、AWS の世界中のコンテンツ配信ネットワークを活用してアプリケーションとコンテンツを配信できます。IP アドレスは、エニーキャストルーティングを使用して複数の CloudFront エッジロケーションから同時にアドバタイズされます。

## この機能を使用する理由
<a name="why-use-byoip"></a>

**許可リストのネットワークアクセスを制御して、次のことを行います。**
+ ネットワークプロバイダーの IP アドレスを許可リストに登録して、承認されたビューワーのデータ料金を免除する
+ アウトバウンドセキュリティファイアウォールを設定して、承認されたアプリケーションのみにトラフィックを制限する

**運用と移行を簡素化する**
+ 静的 IP を指す A レコードを追加して、apex ドメイン (example.com) を CloudFront に直接ルーティングします
+ IP インフラストラクチャやファイアウォール設定を更新せずに他の CDN から移行します
+ パートナーとクライアントで既存の IP 許可リストを維持します
+ 1 つのエニーキャスト静的 IP リストを複数の CloudFront ディストリビューション間で共有します

**一貫したブランディング**
+ AWS に移行するときは、一貫したブランディングのために既存の IP アドレススペースを維持します

## 前提条件
<a name="byoip-prerequisites"></a>

CloudFront ディストリビューションでエニーキャスト静的 IP リストを使用するには、ディストリビューションの料金クラスの **[すべてのエッジロケーションを使用]** を選択する必要があります。料金の詳細については、「[CloudFront の料金](https://aws.amazon.com/cloudfront/pricing/)」を参照してください。Bring-Your-Own-IP (BYOIP) の場合、ディストリビューションまたは接続グループの IPv6 も無効にする必要があります。

開始する前に、次のステップを完了します。
+ IPAM のセットアップ: 「[IPAM をアカウントと統合する](https://docs.aws.amazon.com/vpc/latest/ipam/enable-integ-ipam.html)」および「[IPAM を作成する](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html)」を参照してください。
+ ドメイン検証: 「[ドメインコントロールの検証](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam-domain-verification-methods.html)」。
+ 最上位プールを作成する: 「[独自の IPv4 CIDR を IPAM に持ち込む](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam-console-ipv4.html)」のステップ 1 から 2 に従います。
+ グローバルとしてロケールを持つ IPAM プールを作成し、CloudFront で使用します。詳細については、「[IPAM を使用して独自の IP を CloudFront に持ち込む](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-cloudfront.html)」を参照してください。

**注記**  
**3 つの /24** IPv4 CIDR ブロックが必要です。

## ステップ 1: エニーキャスト静的 IP リストをリクエストする
<a name="request-anycast-static-ip-list"></a>

CloudFront ディストリビューションで使用するエニーキャスト静的 IP リストをリクエストします。<a name="request-anycast-static-ip-list-procedure"></a>

**エニーキャスト静的 IP リストをリクエストするには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 左のナビゲーションペインで **[静的 IP]** を選択します。

1. **[リクエスト]** で、CloudFront サポートエンジニアリングに連絡するためのリンクを選択します。

1. ワークロード情報 (1 秒あたりのリクエストバイト数と 1 秒あたりのリクエスト数) を入力します。

1. CloudFront サポートエンジニアリングがリクエストを確認します。確認プロセスには最大 2 日かかる場合があります。

1. リクエストが承認されたら、エニーキャスト静的 IP リストを作成して 1 つ以上のディストリビューションに関連付けることができます。

## ステップ 2: エニーキャスト静的 IP リストを作成する
<a name="create-anycast-static-ip-list"></a>

開始する前に、前のセクションで説明したように、エニーキャスト静的 IP リストをリクエストします。<a name="create-anycast-static-ip-list-procedure"></a>

**エニーキャスト静的 IP リストを作成するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 左のナビゲーションペインで **[静的 IP]** を選択します。

1. **[エニーキャスト IP リストを作成]** を選択します。

1. **[名前]** に名前を入力します。

1. **静的 IP ユースケース**で、ユースケースとして **[BYOIP]** を選択します。

次の手順は、標準のリージョン BYOIP プロセスとは異なり、グローバルサービスのパターンを確立します。

### AWS CLI
<a name="create-anycast-cli"></a>

AWS CLI の最新バージョンのインストールまたは更新。詳細については、[AWS Command Line Interfaceユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)を参照してください。

1. CIDR ブロックがプロビジョニングされた IPAM プールの IpamPoolArn を取得します。詳細については、「[AWS CLI のみを使用した IPAM への自分のパブリック IPv4 CIDR の取り込み](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam-ipv4.html)」を参照してください。

1. CIDR ブロックと IPAM 設定を使用してエニーキャスト IP リストを作成します。

   ```
   aws cloudfront create-anycast-ip-list \
       --name byoip-aip-1 \
       --ip-count 3 \
       --region us-east-1 \
       --ip-address-type ipv4 \
       --ipam-cidr-configs '[{"Cidr":"1.1.1.0/24","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-005d58a8aa8147abc"},{"Cidr":"2.2.2.0/24","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-005d58a8aa8147abc"},{"Cidr":"3.3.3.0/24","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-005d58a8aa8147abc"}]'
   ```

**注記**  
プールから特定の IP アドレスを選択することはできません。CloudFront は自動的にこれを行います。

## ステップ 3: CloudFront ディストリビューションを作成する
<a name="create-cloudfront-distribution"></a>

CloudFront の場合、指示に従って[標準ディストリビューションを作成](distribution-web-creating-console.md)するか、[マルチテナントディストリビューション](distribution-config-options.md)を使用できます。

## ステップ 4: CloudFront リソースに関連付ける
<a name="associate-with-cloudfront-resources"></a>
+ [エニーキャスト静的 IP リストを既存のディストリビューションに関連付ける](request-static-ips.md#associate-static-ip-list-existing)
+ [エニーキャスト静的 IP リストを新しいディストリビューションに関連付ける](request-static-ips.md#associate-static-ip-list-new)
+ [エニーキャスト静的 IP リストを接続グループに関連付ける](request-static-ips.md#associate-anycast-ip-connection-group)

## ステップ 5: 移行の準備をする
<a name="prepare-for-migration"></a>

詳細については、「*Amazon VPC ユーザーガイド*」の「[ステップ 4: 移行の準備](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-cloudfront.html#step-4-prepare-for-migration)」を参照してください。

## ステップ 6: CIDR をグローバルにアドバタイズする
<a name="advertise-cidr-globally"></a>

詳細については、「*Amazon VPC ユーザーガイド*」の「[ステップ 5: CIDR をグローバルにアドバタイズする](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-cloudfront.html#step-5-advertise-cidr-globally)」を参照してください。

# CloudFront ディストリビューションでの gRPC の使用
<a name="distribution-using-grpc"></a>

Amazon CloudFront は、HTTP/2 上に構築されたオープンソースのリモートプロシージャコール (RPC) フレームワークである gRPC をサポートしています。gRPC は、ペイロードをバッファリングするバイナリプロトコルと双方向ストリーミングを提供するため、低レイテンシーの通信を必要とするアプリケーションに適しています。

CloudFront は gRPC リクエストを受信してオリジンに直接プロキシします。CloudFront を使用して、次の 4 種類の gRPC サービスをプロキシできます。
+ 単項 RPC
+ サーバーストリーミング RPC
+ クライアントストリーミング RPC
+ 双方向ストリーミング RPC

## CloudFront における gRPC の仕組み
<a name="how-grpc-works-cloudfront"></a>

CloudFront で gRPC を設定するには、gRPC サービスを提供するオリジンをディストリビューションのオリジンとして設定します。gRPC 以外のサービスと gRPC サービスの両方を提供するオリジンを使用できます。CloudFront は、受信リクエストが gRPC リクエストなのか HTTP/HTTPS リクエストなのかを `Content-Type` ヘッダーに基づいて判断します。リクエストの `Content-Type` ヘッダーの値が `application/grpc` である場合、リクエストは gRPC リクエストと見なされ、CloudFront はリクエストをオリジンにプロキシします。

**注記**  
ディストリビューションで gRPC リクエストを処理できるようにするには、サポートされている HTTP バージョンの 1 つとして HTTP/2 を含め、HTTP メソッド (`POST` を含む) を許可します。CloudFront は安全な (HTTPS ベースの) gRPC 接続のみをサポートするため、gRPC オリジンエンドポイントは HTTPS をサポートするように設定する必要があります。gRPC はエンドツーエンドの HTTPS のみをサポートします。カスタムオリジンを使用している場合は、[[プロトコル]](DownloadDistValuesOrigin.md#DownloadDistValuesOriginProtocolPolicy) 設定が HTTPS をサポートしていることを確認します。

ディストリビューションの gRPC サポートを有効にするには、次の手順を実行します。

1. ディストリビューションのキャッシュ動作を更新して、HTTP メソッド (`POST` メソッドを含む) を許可します。

1. `POST` メソッドを選択したら、表示される gRPC チェックボックスをオンにします。

1. サポートされている HTTP バージョンの 1 つとして **[HTTP/2]** を指定します。

詳細については、以下の各トピックを参照してください。
+ [HTTP/2 経由で gRPC リクエストを許可する](DownloadDistValuesCacheBehavior.md#enable-grpc-distribution)
+ 「*Amazon CloudFront API Reference*」の「[GrpcConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GrpcConfig.html)」

gRPC はキャッシュできない API トラフィック専用であるため、キャッシュ設定は gRPC リクエストには影響しません。オリジンリクエストポリシーを使用して、gRPC オリジンに送信する gRPC リクエストにカスタムヘッダーを追加できます。CloudFront で AWS WAF を使用すると、gRPC ディストリビューションへのアクセスを管理し、ボットを制御して、gRPC アプリケーションをウェブエクスプロイトから保護できます。CloudFront gRPC は、[CloudFront Functions](cloudfront-functions.md) をサポートしています。

HTTPS ステータスに加えて、grpc-status も gRPC レスポンスで受信します。grpc-status に指定できる値の一覧については、「[Status codes and their use in gRPC](https://grpc.github.io/grpc/core/md_doc_statuscodes.html)」を参照してください。

**注意事項**  
gRPC は、以下の CloudFront 機能をサポートしていません。  
[カスタムエラーレスポンス](GeneratingCustomErrorResponses.md)
 gRPC は `POST` メソッドを使用するため、gRPC では[オリジンフェイルオーバー](high_availability_origin_failover.md)はサポートされていません。CloudFront は、ビューワーリクエストの HTTP メソッドが `GET`、`HEAD`、または `OPTIONS` の場合にのみ、セカンダリオリジンにフェイルオーバーします。
CloudFront は gRPC リクエストをオリジンに直接プロキシし、リージョナルエッジキャッシュ (REC) をバイパスします。gRPC は REC をバイパスするため、gRPC は [Lambda@Edge](lambda-at-the-edge.md) や [Origin Shield](origin-shield.md) をサポートしていません。
gRPC は、AWS WAF リクエスト本文の検査ルールをサポートしていません。これらのルールをディストリビューションのウェブ ACL で有効にした場合、gRPC を使用するすべてのリクエストでは、リクエスト本文の検査ルールを無視します。他のすべての AWS WAF ルールは引き続き適用されます。詳細については、「[ディストリビューションで AWS WAF を有効にする](WAF-one-click.md)」を参照してください。