代替ドメイン名を別のディストリビューションに移動する - Amazon CloudFront

代替ドメイン名を別のディストリビューションに移動する

ディストリビューションに代替ドメイン名を追加しようとしても、代替ドメイン名が別のディストリビューションで既に使用されている場合は、CNAMEAlreadyExists エラー (指定した 1 つ以上の CNAME が既に別のリソースに関連付けられています) が発生します。例えば、www.example.com をディストリビューションに追加しようとしても、www.example.com が別のディストリビューションに既に関連付けられている場合は、このエラーが発生します。

その場合、既存の代替ドメイン名を 1 つのディストリビューション (ソースディストリビューション) から別のディストリビューション (ターゲットディストリビューション) に移動できます。プロセスの概要を次のステップに示します。詳細については、概要の各ステップにあるリンクを参照してください。

代替ドメイン名を移動するには
  1. ターゲットディストリビューションを設定します。このディストリビューションには、移動する代替ドメイン名を対象とする SSL/TLS 証明書が必要です。詳細については、「ターゲットディストリビューションを設定する」を参照してください。

  2. ソースディストリビューションを検索します。AWS Command Line Interface (AWS CLI) を使用して、代替ドメイン名が関連付けられているディストリビューションを検索できます。詳細については、「ソースディストリビューションを検索する」を参照してください。

  3. 代替ドメイン名を移動します。これを行う方法は、ソースディストリビューションとターゲットディストリビューションが同じ AWS アカウントにあるかどうかによって異なります。詳細については、「代替ドメイン名を移動する」を参照してください。

ターゲットディストリビューションを設定する

代替ドメイン名を移動する前に、ターゲットディストリビューション (代替ドメイン名の移動先のディストリビューション) を設定する必要があります。

ターゲットディストリビューションを設定するには
  1. 移動する代替ドメイン名を含む SSL/TLS 証明書を取得します。お持ちでない場合は、AWS Certificate Manager (ACM) にリクエストするか、別の認定権限 (CA) から取得して ACM にインポートします。米国東部 (バージニア北部) (us-east-1) リージョンの証明書をリクエストまたはインポートしていることを確認します。

  2. ターゲットディストリビューションを作成していない場合は、新しく作成します。ターゲットディストリビューションの作成の一環として、(前のステップの) 証明書をディストリビューションに関連付けます。詳細については、「ディストリビューションを作成する」を参照してください。

    ターゲットディストリビューションを既に作成している場合は、(前のステップの) 証明書をターゲットディストリビューションに関連付けます。詳細については、「ディストリビューションを更新する」を参照してください。

  3. 代替ドメイン名をターゲットディストリビューションのディストリビューションドメイン名に関連付ける DNS TXT レコードを作成します。代替ドメイン名の前にアンダースコア (_) を付けて TXT レコードを作成します。次に、DNS の TXT レコードの例を示します。

    _www.example.com TXT d111111abcdef8.cloudfront.net

    CloudFront は、この TXT レコードを使用して、代替ドメイン名の所有権を検証します。

ソースディストリビューションを検索する

1 つのディストリビューションから別のディストリビューションに代替ドメイン名を移動する前に、ソースディストリビューション (代替ドメイン名が現在使用されているディストリビューション) を検索する必要があります。ソースディストリビューションとターゲットディストリビューションの両方の AWS アカウント ID が分かっている場合は、代替ドメイン名の移動方法を決定できます。

代替ドメイン名のソースディストリビューションを検索するには
  1. 以下の例に示すように、AWS Command Line Interface (AWS CLI) の CloudFront list-conflicting-aliases コマンドを使用します。www.example.com を代替ドメイン名に置き換え、EDFDVBD6EXAMPLE を、以前に設定したターゲットディストリビューションの ID に置き換えます。ターゲットディストリビューションと同じ AWS アカウントにある認証情報を使用して、このコマンドを実行します。このコマンドを使用するには、ターゲットディストリビューションに対する cloudfront:GetDistributioncloudfront:ListConflictingAlias アクセス許可が必要です。

    aws cloudfront list-conflicting-aliases --alias www.example.com --distribution-id EDFDVBD6EXAMPLE

    コマンドの出力には、指定されたドメイン名と競合または重複するすべての代替ドメイン名のリストが表示されます。次に例を示します。

    • コマンドに www.example.com を指定すると、コマンドの出力には www.example.com および、重複するワイルドカード付き代替ドメイン名 (*.example.com) が含まれます。

    • コマンドに *.example.com を指定すると、コマンドの出力には、*.example.com と、そのワイルドカードでカバーされる代替ドメイン名 (例えば、www.example.com、test.example.com、dev.example.com など) が含まれます。

    コマンドの出力内の代替ドメイン名ごとに、それが関連付けられているディストリビューションの ID と、ディストリビューションを所有する AWS アカウント ID を確認できます。ディストリビューション ID とアカウント ID は部分的に非表示になっているため、所有しているディストリビューションとアカウントを識別できますが、所有していないディストリビューションとアカウントの情報は保護されます。

  2. コマンドの出力から、移動する代替ドメイン名のディストリビューションを検索し、ソースディストリビューションの AWS アカウント ID を書き留めます。ソースディストリビューションのアカウント ID とターゲットディストリビューションを作成したアカウント ID を比較し、これら 2 つのディストリビューションが同じ AWS アカウントにあるかどうかを判断します。これは、代替ドメイン名の移動方法を決定するのに役立ちます。

    代替ドメイン名の移動については、次のトピックを参照してください。

代替ドメイン名を移動する

代替ドメインの移動方法については、状況に応じて、次の方法から選択します。

ソースディストリビューションとターゲットディストリビューションが同じ AWS アカウントにある場合

AWS CLI の associate-alias コマンドを使用して、代替ドメイン名を移動します。この方法は、代替ドメイン名が apex ドメイン (ルートドメインとも呼ばれます。例: example.com) である場合を含めて、同じアカウントでのすべての移動で機能します。詳細については、「associate-alias を使用して代替ドメイン名を移動する」を参照してください。

ソースディストリビューションとターゲットディストリビューションが異なる AWS アカウントにある場合

ソースディストリビューションにアクセスでき、代替ドメイン名が apex ドメイン (ルートドメインとも呼ばれます。例: example.com) 以外のもので、その代替ドメイン名と重複するワイルドカードをまだ使用していない場合は、ワイルドカードを使用して代替ドメイン名を移動します。詳細については、「ワイルドカードを使用して代替ドメイン名を移動する」を参照してください。

ソースディストリビューションの AWS アカウントにアクセスできない場合は、AWS CLI の associate-alias コマンドを使用して代替ドメイン名を移動します。ソースディストリビューションが無効になっている場合は、代替ドメイン名を移動できます。詳細については、「associate-alias を使用して代替ドメイン名を移動する」を参照してください。associate-alias コマンドが機能しない場合は、AWS Support に問い合わせてください。詳細については、「AWS Support にお問い合わせいただき、代替ドメイン名を移動する」を参照してください。

associate-alias を使用して代替ドメイン名を移動する

ソースディストリビューションがターゲットディストリビューションと同じ AWS アカウントにある場合、または別のアカウントにあるが無効な場合は、AWS CLI の CloudFront associate-alias コマンドを使用して代替ドメイン名を移動できます。

関連エイリアスを使用して代替ドメイン名を移動するには
  1. 以下の例に示すように、AWS CLI を使用して CloudFront の associate-alias コマンドを実行します。www.example.com を代替ドメイン名に、EDFDVBD6EXAMPLE をターゲットディストリビューションの ID に置き換えます。ターゲットディストリビューションと同じ AWS アカウントにある認証情報を使用して、このコマンドを実行します。このコマンドの使用には、次の制約があることに注意してください。

    • ターゲットディストリビューションに対する cloudfront:AssociateAliascloudfront:UpdateDistribution アクセス許可が必要です。

    • ソースディストリビューションとターゲットディストリビューションが同じ AWS アカウントにある場合、ソースディストリビューションに対する cloudfront:UpdateDistribution アクセス許可が必要です。

    • ソースディストリビューションとターゲットディストリビューションが異なる AWS アカウントにある場合、ソースディストリビューションを無効にする必要があります。

    • ターゲットディストリビューションは、「ターゲットディストリビューションを設定する」で説明されているように設定する必要があります。

    aws cloudfront associate-alias --alias www.example.com --target-distribution-id EDFDVBD6EXAMPLE

    このコマンドは、ソースディストリビューションから代替ドメイン名を削除し、ターゲットディストリビューションに追加することで、両方のディストリビューションを更新します。

  2. ターゲットディストリビューションが完全にデプロイされたら、代替ドメイン名の DNS レコードがターゲットディストリビューションのディストリビューションドメイン名を参照するように DNS 構成を更新します。

ワイルドカードを使用して代替ドメイン名を移動する

ソースディストリビューションがターゲットディストリビューションと異なる AWS アカウントにあり、ソースディストリビューションが有効になっている場合は、ワイルドカードを使用して代替ドメイン名を移動できます。

注記

ワイルドカードを使用して apex ドメイン (example.com など) を移動することはできません。ソースディストリビューションとターゲットディストリビューションが異なる AWS アカウントにある場合の apex ドメインの移動については、AWS Support にお問い合わせください。詳細については、「AWS Support にお問い合わせいただき、代替ドメイン名を移動する」を参照してください。

ワイルドカードを使用して代替ドメイン名を移動するには
注記

このプロセスでは、ディストリビューションを複数回更新します。各ディストリビューションが最新の変更を完全にデプロイするまで待ってから次のステップに進みます。

  1. ターゲットディストリビューションを更新して、移動する代替ドメイン名に対応したワイルドカード付き代替ドメイン名を追加します。例えば、移動する代替ドメイン名を www.example.com にしている場合は、代替ドメイン名 *.example.com をターゲットディストリビューションに追加します。これを行うには、ターゲットディストリビューションの SSL/TLS 証明書にワイルドカード付きのドメイン名を含める必要があります。詳細については、「ディストリビューションを更新する」を参照してください。

  2. 代替ドメイン名の DNS 設定を更新して、ターゲットディストリビューションのドメイン名を参照します。例えば、移動する代替ドメイン名が www.example.com の場合、www.example.com の DNS レコードを更新して、トラフィックをターゲットディストリビューションのドメイン名 (例: d111111abcdef8.cloudfront.net) にルーティングします。

    注記

    DNS 設定を更新した後でも、代替ドメイン名はソースディストリビューションによって引き続き提供されます。これは、代替ドメイン名がソースディストリビューションで現在設定されているためです。

  3. ソースディストリビューションを更新して代替ドメイン名を削除します。詳細については、「ディストリビューションを更新する」を参照してください。

  4. ターゲットディストリビューションを更新して代替ドメイン名を追加します。詳細については、「ディストリビューションを更新する」を参照してください。

  5. dig (または類似の DNS クエリツール) を使用して、代替ドメイン名の DNS レコードの解決先がターゲットディストリビューションのドメイン名になっていることを検証します。

  6. (オプション) ターゲットディストリビューションを更新してワイルドカード付き代替ドメイン名を削除します。

AWS Support にお問い合わせいただき、代替ドメイン名を移動する

ソースディストリビューションとターゲットディストリビューションが異なる AWS アカウントにある場合に、ソースディストリビューションの AWS アカウントにアクセスできないか、ソースディストリビューションを無効にできない場合は、AWS Support にお問い合わせいただき代替ドメイン名を移動できます。

AWS Support にお問い合わせいただき、代替ドメイン名を移動するには
  1. ターゲットディストリビューションをセットアップします。これには、ターゲットディストリビューションを参照する DNS TXT レコードも含まれます。詳細については、「ターゲットディストリビューションを設定する」を参照してください。

  2. AWS Support にお問い合わせいただき、ドメインの所有権を証明し、ドメインを新しい CloudFront ディストリビューションに移動するようにリクエストします。

  3. ターゲットディストリビューションが完全にデプロイされたら、代替ドメイン名の DNS レコードがターゲットディストリビューションのディストリビューションドメイン名を参照するように DNS 構成を更新します。