ホストゾーンを別の AWS アカウントに移行する - Amazon Route 53

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

ホストゾーンを別の AWS アカウントに移行する

あるアカウントから別の AWS アカウントにホストゾーンを移行する場合は、古いホストゾーンのレコードをプログラムで一覧表示し、出力を編集してから、編集した出力を使用して新しいホストゾーンにレコードをプログラムで作成できます。次の点に注意してください。

  • レコードの数が少ない場合には、Route 53 コンソールを使用して、新しいホストゾーンにレコードを作成することもできます。詳細については、「Amazon Route 53 コンソールを使用したレコードの作成」を参照してください。

  • 一部の手順では、 AWS Command Line Interface () を使用しますAWS CLI。これらの手順は、 AWS SDKs 、Amazon Route 53 API、または のいずれかを使用して実行することもできます AWS Tools for Windows PowerShell。このトピックでは、少数のホストゾーンの方が簡単な AWS CLI ため、 を使用します。

  • このプロセスを使用して、既存のホストゾーンと名前は異なるが、同じレコードを持つ新しいホストゾーンでレコードを作成することもできます。

  • トラフィックをトラフィックポリシーインスタンスにルーティングするエイリアスレコードを移行することはできません。

ステップ 1: をインストールまたはアップグレードする AWS CLI

のダウンロード、インストール、設定については AWS CLI、「 AWS Command Line Interface ユーザーガイド」を参照してください。

注記

CLI を設定し、ホストゾーンを作成したアカウントと、ホストゾーンの移行先アカウントの両方を使用中に CLI を使用できるようにします。詳細については、AWS Command Line Interface ユーザーガイド設定を参照してください。

既に を使用している場合は AWS CLI、 CLI コマンドが最新の Route 53 機能をサポートするように、最新バージョンの CLI にアップグレードすることをお勧めします。

ステップ 2: 新しいホストゾーンを作成する

次の手順では、Route 53 コンソールを使用して、移行先のホストゾーンを作成する方法について説明します。

注記

Route 53 は、新しいホストゾーンに 4 つの新しいネームサーバーを割り当てます。ホストゾーンを別の AWS アカウントに移行したら、新しいホストゾーンのネームサーバーを使用するようにドメイン登録を更新する必要があります。このステップについては、プロセス中に後でもう一度お知らせします。

別のアカウントを使用して新しいホストゾーンを作成するには
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/route53/ で Route 53 コンソールを開きます。

    ホストゾーンの移行先となるアカウントのアカウント認証情報を使用してサインインします。

  2. ホストゾーンの作成。詳細については、「パブリックホストゾーンの作成」を参照してください。

  3. ホストゾーン ID を書き留めます。この情報は、プロセス中に後で必要になる場合があります。

  4. Route 53 コンソールからログアウトします。

ステップ 3: 移行するレコードを含むファイルを作成する

1 つのホストゾーンから別のホストゾーンに移行するには、移行するレコードを含むファイルを作成し、ファイルを編集してから、編集したファイルを使用して新しいホストゾーンにレコードを作成します。以下の手順を実行してファイルを作成します。

移行するレコードを含むファイルを作成するには
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/route53/ で Route 53 コンソールを開きます。

    移行先のホストゾーンを作成したアカウントのアカウント認証情報を使用してサインインします。

  2. 移行するホストゾーンのホストゾーン ID を取得します。

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

    2. 移行するホストゾーンを見つけます。ホストゾーンが多数ある場合は、[Exact domain name (完全なドメイン名)] を選択し、ホストゾーンの名前を入力してから、Enterを押してリストをフィルタリングします。

    3. [ホストゾーン ID] 列の値を取得します。

  3. 次のコマンドを実行します。

    aws route53 list-resource-record-sets --hosted-zone-id hosted-zone-id > path-to-output-file

    次の点に注意してください。

    • にはhosted-zone-id、この手順のステップ 2 で取得したホストゾーンの ID を指定します。

    • にはpath-to-output-file、出力を保存するディレクトリパスとファイル名を指定します。

    • > 文字を指定すると、指定されたファイルに出力が送信されます。

    • は、100 を超えるレコードを含むホストゾーンのページ分割 AWS CLI を自動的に処理します。詳細については、「 ユーザーガイド」の AWS 「 コマンドラインインターフェイスのページ分割オプションの使用」を参照してください。 AWS Command Line Interface

      AWS SDKs の 1 つなど、別のプログラムによる方法を使用してレコードを一覧表示する場合、結果のページあたり最大 100 レコードを取得できます。100 個を超えるレコードがホストゾーンに含まれている場合は、すべてのレコードをリストするために複数のリクエストを送信する必要があります。

    • 6.0 より PowerShell 前のバージョンの Windows でコマンドを実行するには、次の構文を使用します。

      aws route53 list-resource-record-sets --hosted-zone-id hosted-zone-id | Out-File path-to-output-file -Encoding utf8

    例えば、Windows コンピュータ AWS CLI で を実行している場合は、次のコマンドを実行できます。

    aws route53 list-resource-record-sets --hosted-zone-id ZOLDZONE12345 > c:\temp\list-records-ZOLDZONE12345.txt

    6.0 より PowerShell 前のバージョンの AWS CLI Windows で を実行している場合は、次のコマンドを実行できます。

    $output = aws route53 list-resource-record-sets --hosted-zone-id <hosted-zone-id>; $mypath = <output-path ; [System.IO.File]::WriteAllLines($mypath,$output)
  4. この出力のコピーを作成します。新しいホストゾーンにレコードを作成したら、新しいホストゾーンで コマンドを実行し AWS CLI list-resource-record-sets、2 つの出力を比較して、すべてのレコードが作成されていることを確認することをお勧めします。

ステップ 4: 移行するレコードを編集する

前の手順で作成したファイルの形式は、新しいホストゾーンにレコードを作成するために使用する change-resource-record-sets コマンドで AWS CLI 必要な形式に近いです。ただし、このファイルではいくらか編集が必要になります。一部の変更は、すべてのレコードに適用する必要があります。適切なテキストエディターの検索と置き換え機能を使用して、これらの変更を行うことができます。

ステップ 3: 移行するレコードを含むファイルを作成する」で作成したファイルのコピーを開き、以下の変更を行います。

  • 出力の最初の 2 行を削除します。

    { "ResourceRecordSets": [
  • NS レコードと SOA レコードに関連する行を削除します。新しいホストゾーンには既にそれらのレコードがあります。

  • オプションComment 要素を追加します。

  • Changes 要素を追加します。

  • 各レコードについて、Action および ResourceRecordSet 要素を追加します。

  • 必要に応じて中括弧 ({ }) を追加し、JSON コードを有効にします。

    注記

    JSON 検証ツールを使用して、すべての中括弧と角括弧が正しい場所に配置されていることを確認します。オンラインの JSON 検証ツールを見つけるには、インターネットで「json validator」を検索します。

  • ホストゾーンに、同じホストゾーンで他のレコードを参照するエイリアスが含まれている場合は、以下の変更を行います。

    • ホストゾーン ID を、新しいホストゾーンの ID に変更します。

      重要

      エイリアスレコードがロードバランサーなどの別のリソースを指している場合は、ホストゾーン ID をドメインのホストゾーン ID ではなく、リソース自体のホストゾーン ID に変更しないでください。ホストゾーン ID を誤って変更した場合は、ホストゾーン ID をドメインのホストゾーン ID ではなく、リソース自体のホストゾーン ID にロールバックします。そのホストゾーン ID は、リソースが作成された AWS コンソールから確認できます。

    • エイリアスレコードをファイルの末尾に移動します。Route 53 は、エイリアスレコードを作成する前に、エイリアスレコードが参照するレコードを作成する必要があります。

      重要

      1 つ以上のエイリアスレコードが他のエイリアスレコードを参照している場合、エイリアスターゲットであるレコードは、エイリアスレコードを参照する前にファイルに表示される必要があります。たとえば、alias.example.comalias.alias.example.com のエイリアスターゲットである場合、alias.example.com がファイルの先頭に表示される必要があります。

    • トラフィックをトラフィックポリシーインスタンスにルーティングするエイリアスレコードを削除します。レコードをメモし、後で再作成できるようにします。

  • このプロセスを使用して、別の名前のホストゾーンでレコードを作成できます。出力の各レコードについて、Name 要素のドメイン名部分を新しいホストゾーンの名前に変更します。例えば、example.com ホストゾーンでレコードをリストし、example.net ホストゾーンでレコードを作成する場合、すべてのレコード名の example.com 部分を example.net に変更します。

    From:

    • "Name": "example.com."

    • "Name": "www.example.com."

    操作:

    • "Name": "example.net."

    • "Name": "www.example.net."

次の例に示すのは、example.com のホストゾーンのレコードの編集されたバージョンです。赤の斜体で示されているテキストが新しい部分です。

{ "Comment": "string", "Changes": [ { "Action": "CREATE", "ResourceRecordSet":{ "ResourceRecords": [ { "Value": "192.0.2.4" }, { "Value": "192.0.2.5" }, { "Value": "192.0.2.6" } ], "Type": "A", "Name": "route53documentation.com.", "TTL": 300 } }, { "Action": "CREATE", "ResourceRecordSet":{ "AliasTarget": { "HostedZoneId": "Z3BJ6K6RIION7M", "EvaluateTargetHealth": false, "DNSName": "s3-website-us-west-2.amazonaws.com." }, "Type": "A", "Name": "www.route53documentation.com." } } ] }

ステップ 5: 大きなファイルを小さなファイルに分割する

レコードが多数ある場合や、多くの値 (多数の IP アドレスなど) を含むレコードがある場合は、ファイルをより小さなファイルに分割しなければならないことがあります。最大値は次のとおりです。

  • 各ファイルには、最大 1,000 件のレコードを含めることができます。

  • すべての Value 要素での結合された値の最大の長さは 32,000 バイトです。

ステップ 6: 新しいホストゾーンでレコードを作成する

新しいホストゾーンにレコードを作成するには、次の AWS CLI コマンドを使用します。

aws route53 change-resource-record-sets --hosted-zone-id id-of-new-hosted-zone --change-batch file://path-to-file-that-contains-records

例:

aws route53 change-resource-record-sets --hosted-zone-id ZNEWZONE1245 --change-batch file://c:/temp/change-records-ZNEWZONE1245.txt

トラフィックポリシーインスタンスにトラフィックをルーティングするエイリアスレコードを削除している場合は、Route 53 コンソールを使用して、それらを再作成します。詳細については、「Amazon Route 53 コンソールを使用したレコードの作成」を参照してください。

ステップ 7: 古いホストゾーンと新しいホストゾーンのレコードを比較する

新しいホストゾーンですべてのレコードを正常に作成したことを確認するには、新しいホストゾーンでレコードをリストし、その出力を、古いホストゾーンからのレコードのリストと比較することをお勧めします。そのためには、以下の手順を実行します。

古いホストゾーンと新しいホストゾーンのレコードを比較するには
  1. 次のコマンドを実行します。

    aws route53 list-resource-record-sets --hosted-zone-id hosted-zone-id --output json > path-to-output-file

    次の値を指定します。

    • にはhosted-zone-id、新しいホストゾーンの ID を指定します。

    • にはpath-to-output-file、出力を保存するディレクトリパスとファイル名を指定します。「ステップ 3: 移行するレコードを含むファイルを作成する」で使用したファイル名とは異なるファイル名を使用します。別のファイル名を使用することにより、新しいファイルが古いファイルを上書きすることがなくなります。

    • > 文字を指定すると、指定されたファイルに出力が送信されます。

    例えば、Windows コンピュータを使用している場合は、次のコマンドを実行します。

    aws route53 list-resource-record-sets --hosted-zone-id ZNEWZONE67890 --output json > c:\temp\list-records-ZNEWZONE67890.txt
  2. 出力を、「ステップ 3: 移行するレコードを含むファイルを作成する」の出力と比較します。

    NS レコードと SOA レコードの値、および「ステップ 4: 移行するレコードを編集する」で行った変更 (異なるホストゾーン ID やドメイン名など) を除いて、2 つの出力は同じになるはずです。

  3. 新しいホストゾーンのレコードが古いホストゾーンのレコードに一致しない場合は、次のいずれかの操作を実行できます。

ステップ 8: ドメイン登録を更新して新しいホストゾーン用のネームサーバーを使用する

新しいホストゾーンでレコードの作成が終了したら、ドメイン登録のネームサーバーを変更し、新しいホストゾーンのネームサーバーを使用します。

重要

ドメイン登録の更新は行わず新しいホストゾーンのネームサーバーも使用しない場合、Route 53 は古いホストゾーンを引き続き使用して、ドメインへのトラフィックをルーティングします。ドメイン登録のネームサーバーを更新せずに古いホストゾーンを削除した場合、ドメインはインターネット上で利用できなくなります。ドメイン登録のネームサーバーを更新せずに新しいホストゾーンのレコードを追加、更新、または削除した場合、トラフィックはそれらの変更に基づいてルーティングされません。

詳細については、「Amazon Route 53 を既存ドメインの DNS サービスとして使用する」を参照してください。

注記

使用中のドメインの DNS サービスを移行するプロセスを使用するか、アクティブでないドメインのプロセスを使用するかにかかわらず、新しいホストゾーンと、そのホストゾーンのレコードを既に作成しているため、以下のステップをスキップできます。

  • ステップ 1: 現在の DNS サービスプロバイダから現在の DNS 設定を取得する

  • ステップ 2: ホストゾーンを作成する

  • ステップ 3: レコードを作成する

ステップ 9: DNS リゾルバーが新しいホストゾーンの使用を開始するまで待つ

ドメインが使用されている場合 (ユーザーがドメイン名を使用してウェブサイトを閲覧したり、ウェブアプリケーションにアクセスしている場合など)、DNS リゾルバーは現在の DNS サービスプロバイダが提供したネームサーバーの名前をキャッシュしています。数分前にその情報をキャッシュした DNS リゾルバーでは、この後最大 2 日保存されます。

注記

古いホストゾーンに示されないレコードを新しいホストゾーンに作成した場合、リゾルバーが新しいホストゾーンのネームサーバーの使用を開始するまで、ユーザーは新しいレコードを使用してリソースにアクセスできません。例えば、インターネットトラフィックをウェブサイトにルーティングするレコード test.example.com を新しいホストゾーンに作成するとします。レコードが古いホストゾーンに表示されない場合は、リゾルバーが新しいホストゾーンの使用を開始するまで、ウェブブラウザで test.example.com を入力できません。

古いホストゾーンを削除する前に、ホストゾーンを別の AWS アカウントに移行することを確実に完了するには、新しいホストゾーンのネームサーバーを使用するようにドメイン登録を更新してから 2 日間待ちます。2 日間が経過すると TTL の有効期限が切れ、リゾルバーがドメインのネームサーバーを要求します。リゾルバーは現在のネームサーバーを取得します。リゾルバーでのクエリのログ記録 を有効にして、新しいホストゾーン内のクエリをモニタリングすることもできます。Resolver でのクエリのログ記録の料金については、「CloudWatch の料金」を参照してください。

ステップ 10: (オプション) 古いホストゾーンを削除する

古いホストゾーンが不要であることが明らかな場合は、オプションで削除できます。

重要

新しいホストゾーンのネームサーバーを使用するようにドメイン登録を更新してから少なくとも 48 時間は、古いホストゾーンもこのホストゾーン内のレコードも削除しないでください。DNS リゾルバーがそのホストゾーンのレコードの使用を停止する前に古いホストゾーンを削除した場合、リゾルバーで新しいホストゾーンの使用を開始するまでドメインはインターネットで利用できないおそれがあります。

デフォルトの NS レコードおよび SOA レコードを除き、ホストゾーンは空である必要があります。古いホストゾーンに多くのレコードが含まれている場合、コンソールを使用して削除すると時間がかかることがあります。1 つのオプションとして、次のステップを実行します。

  1. ステップ 4: 移行するレコードを編集する」で編集したファイルの別のコピーを作成します。

  2. ファイルのコピーで、すべてのレコードについて "Action": "CREATE""Action": "DELETE" に変更します。

  3. レコードを削除するには、次の AWS CLI コマンドを使用します。

    aws route53 change-resource-record-sets --hosted-zone-id id-of-old-hosted-zone --change-batch file:///path-to-file-that-contains-records
    重要

    ホストゾーン ID に指定した値が、新しいホストゾーンの ID ではなく、古いホストゾーンの ID であることを確認します。

  4. 残りのレコードとホストゾーンを削除します。

    1. にサインイン AWS Management Console し、https://console.aws.amazon.com/route53/ で Route 53 コンソールを開きます。

      古いホストゾーンを作成したアカウントのアカウント認証情報を使用してサインインします。

    2. ナビゲーションペインで [Hosted zones.] を選択します。

    3. 古いホストゾーンの名前を選択します。ホストゾーンが多数ある場合は、[Exact domain name (完全なドメイン名)] を選択し、ホストゾーンの名前を入力してから、Enterを押してリストをフィルタリングします。

    4. ホストゾーンに、デフォルトの NS と SOA レコード以外のレコード (トラフィックをトラフィックポリシーインスタンスにルーティングするエイリアスレコードなど) が含まれている場合は、対応するチェックボックスをオンにし、[Delete (削除)] を選択します。

    5. ナビゲーションペインで [Hosted zones] を選択します。

    6. ホストゾーンのリストで、削除するホストゾーンのラジオボタンを選択します。

    7. [削除] をクリックします。