

# 代替ドメイン名 (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 など) を含めることができます。