別の AWS アカウントへのホストゾーンの移行 - Amazon Route 53

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

別の AWS アカウントへのホストゾーンの移行

1 つの AWS アカウントから別のアカウントにホストゾーンを移行する場合は、古いホストゾーンでレコードをプログラムによりリストし、出力を編集してから、編集された出力を使用して新しいホストゾーンでプログラムによりレコードを作成します。以下の点に注意してください。

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

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

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

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

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

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

注記

CLI を設定し、ホストゾーンを作成したアカウントと、ホストゾーンの移行先アカウントの両方を使用中に CLI を使用できるようにします。詳細については、https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.htmlの「AWS Command Line Interface ユーザーガイド設定」を参照してください。

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

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

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

注記

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

別のアカウントを使用して新しいホストゾーンを作成するには

  1. AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/route53/ にある Route 53 コンソールを開きます。

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

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

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

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

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

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

移行するレコードを含むファイルを作成するには

  1. AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/route53/ にある Route 53 コンソールを開きます。

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

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

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

    2. 移行するホストゾーンを見つけます。多数のホスト・ゾーンがある場合は、 正確なドメイン名 ホストされたゾーンの名前を入力し、 入力する をクリックして、リストをフィルターします。

    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出力を保存するディレクトリのパスとファイル名を指定します。

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

    • AWS CLI は、100 個を超えるレコードが含まれているホストゾーンのページ分割を自動的に処理します。詳細については、以下を参照してください。 AWS Command Line Interfaceのページネーションオプションの使用AWS Command Line Interface ユーザーガイド.

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

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

      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 より前のバージョンの Windows PowerShell の Windows コンピュータで AWS CLI を実行している場合は、次のコマンドを実行します。

    aws route53 list-resource-record-sets --hosted-zone-id ZOLDZONE12345 | Out-File c:\temp\list-records-ZOLDZONE12345.txt -Encoding utf8
  4. この出力のコピーを作成します。新しいホストゾーンにレコードを作成した後は、新しいホストゾーンで AWS CLI の list-resource-record-sets コマンドを実行し、2 つの出力を比較して、すべてのレコードが作成されたことを確認することをお勧めします。

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

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

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

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

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

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

  • Changes 要素を追加します。

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

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

    注記

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

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

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

    • エイリアスレコードをファイルの末尾に移動します。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 > path-to-output-file

    次の値を指定します。

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

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

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

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

    aws route53 list-resource-record-sets --hosted-zone-id ZNEWZONE67890 > 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 の有効期限が切れ、リゾルバーがドメインのネームサーバーを要求します。リゾルバーは現在のネームサーバーを取得します。

ステップ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 マネジメントコンソールにサインインし、https://console.aws.amazon.com/route53/ にある Route 53 コンソールを開きます。

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

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

    3. 古いホストゾーンの名前を選択します。多数のホスト・ゾーンがある場合は、 正確なドメイン名 ホストされたゾーンの名前を入力し、 入力する をクリックして、リストをフィルターします。

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

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

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

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