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

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

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

ホストゾーンを別の AWS アカウント に移行する場合は、以下の推奨ステップに従います。

これらのステップは、レコードの変更頻度が低いホストゾーンに最適です。頻繁にレコードが更新されるホストゾーンの場合は、次の点を考慮してください。

  • 移行中にリソースレコードを更新しないでください。

  • 委任が移管された後、古いホストゾーンと新しいホストゾーンの両方でリソースレコードの変更を公開します。

前提条件

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

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

注記

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

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

ステップ 1: 移行の準備をする

準備ステップは、ホストゾーンの移行に関連するリスクを最小限に抑える上で役立ちます。

1. ゾーンの可用性を監視する

ドメイン名の可用性をゾーンで監視できます。これにより、移行のロールバックにつながる可能性のある問題に対処できます。CloudWatch またはクエリログを使用してトラフィックが最も多いドメイン名を監視できます。クエリログのセットアップの詳細については、「Amazon Route 53 のモニタリング」を参照してください。

監視はシェルスクリプトまたはサードパーティサービスを通じて実行できます。ただし、ドメインが利用できないために顧客からフィードバックを得る可能性もあるため、ロールバックが必要かどうかを判断する唯一のシグナルではありません。

2. TTL 設定を下げる

レコードの TTL (有効期限) 設定は、DNS リゾルバーがレコードをキャッシュし、キャッシュされた情報を使用する期間を指定します。TTL が期限切れになると、リゾルバーはドメインの DNS サービスプロバイダに別のクエリを送信し、最新の情報を取得します。

NS レコードの一般的な TTL 設定は 172800 秒、つまり 2 日です。NS レコードには、ドメインネームシステム (DNS) がドメインのトラフィックをルーティングする方法に関する情報を得るために使用できるネームサーバーがリストされています。現在の DNS サービスプロバイダーと Route 53 の両方で NS レコードの TTL を下げることで、DNS を Route 53 に移行している際に問題が検出された場合のドメインのダウンタイムを短縮できます。TTL を下げないと、何か問題が発生した場合、ドメインはインターネット上で最大 2 日間使用できなくなる可能性があります。

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

  2. ナビゲーションペインで [Hosted Zones] (ホストゾーン) を選択します。

  3. ホストゾーンの名前を選択します。

  4. NS レコードを選択し、[Record details] (レコードの詳細) ペインで [Edit record] (レコードの編集) を選択します。

  5. [TTL (Seconds)] の値を変更します。60 秒から 900 秒 (15 分) の間の値を指定することをお勧めします。

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

3. (DNSSEC を構成している場合) 親ゾーンから DS レコードを削除する

ドメインで DNSSEC を設定している場合は、ドメインを Route 53 に移行する前に、親ゾーンから Delegation Signer (DS) レコードを削除します。

親ゾーンが Route 53 を介してホストされている場合、詳細については「ドメインのパブリックキーの削除」を参照してください。別のレジストラが親ゾーンをホストしている場合は、それらのホストに対し DS レコードの削除を依頼します。

Route 53 は現在、DNSSEC 設定の移行をサポートしていません。そのため、親ゾーンから DS レコードを削除して、移行前にドメインに対して実行された DNSSEC 検証を無効にする必要があります。移行後、新しいホストゾーンで DNSSEC を設定し、それぞれの DS レコードを親ゾーンに追加することで、DNSSEC 検証を再度有効化できます。

4. 移行ホストゾーンに依存する他の進行中のオペレーションがないことを確認します。

一部のオペレーションは、移行ホストゾーンの DNS 解決に依存します。例えば、TLS/SSL 証明書の更新プロセスでは DNS レコードの変更が必要になる場合があり、プロバイダーは検証方法として DNS レコードの解決を試みます。移行前に、ホストゾーンの移行による予期しない影響を避けるために、他のオペレーションが行われていないことを確認する必要があります。

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

ホストゾーンを移行するアカウントに新しいホストゾーンを作成します。

AWS CLI またはコンソールの手順のタブを選択します。

CLI

次のコマンドを入力します。

aws route53 create-hosted-zone \ --name $hosted_zone_name \ --caller-reference $unique_string

詳細については、「create-hosted-zone」を参照してください。

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

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

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

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

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

「準備ステップ 1 の TTL 設定を下げる」の「TTL 設定を下げる」と同様、新しいゾーンの NS TTL も下げます。

ステップ 3: (オプション) ヘルスチェックを移行する

新しいアカウントの DNS レコードを、移行元のアカウントの Route 53 ヘルスチェックに関連付けることができます。Route 53 ヘルスチェックを移行するには、既存のヘルスチェックと同じ設定で新しいアカウントに新しいヘルスチェックを作成する必要があります。詳細については、「Amazon Route 53 ヘルスチェックの作成 」を参照してください。

ステップ 4: 古いホストゾーンから新しいホストゾーンにレコードを移行する

コンソールまたは AWS CLI を使用して、AWS アカウント から別の にレコードを移行できます。

Console

ゾーンに少数のレコードしか含まれていない場合は、Route 53 コンソールを使用して古いゾーンのレコードを一覧表示し、メモして、新しいゾーンに作成することを検討できます。ステップ 3: (オプション) ヘルスチェックを移行する でヘルスチェックを移行した場合は、新しいホストゾーンにレコードを作成するときに、新しいヘルスチェック ID を指定する必要があります。詳細については、以下の各トピックを参照してください。

「ステップ 1 の TTL を下げる設定」と同様に、新しいゾーンでも NS TTL を下げる必要があります。

CLI

ゾーンに多数のレコードが含まれている場合は、移行するレコードをエクスポートしてファイルにし、そのファイルを編集し、編集したファイルを使用して新しいホストゾーンにレコードを作成します。以下の手順では AWS CLI コマンドを使用しますが、この目的ではサードパーティー製ツールも使用できます。

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

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

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

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

    この出力のコピーを作成します。新しいホストゾーンにレコードを作成した後は、新しいホストゾーンで AWS CLI の list-resource-record-sets コマンドを実行し、2 つの出力を比較して、すべてのレコードが作成されたことを確認することをお勧めします。

  2. 移行するレコードを編集する

    change-resource-record-sets コマンドで使用する前に、エクスポートしたファイルを編集します。テキストエディターの検索と置き換え機能を使用して、これらの変更を行うことができます。

    注記

    次の手順では、テキストエディターを使用した手動編集について説明します。上級ユーザーは、jq、Python、またはその他のスクリプト言語などのプログラムツールを使用して、これらの変換を自動化できます。

    移行するレコードを含むこの手順のステップ 1 で作成したファイルのコピーを開き、次の変更を行います。

    • ファイルの上部にある ResourceRecordSets 要素を Changes 要素に置き換えます。

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

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

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

      注記

      JSON 検証ツールを使用して、すべての中括弧と角括弧が正しい場所に配置されていることを確認します。オンライン JSON 検証ツールを検索するには、ブラウザで「JSON 検証ツール」を検索します。

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

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

        重要

        エイリアスレコードが他のリソース (ロードバランサーなど) を指している場合は、ホストゾーン ID を、ドメインのホストゾーン ID に変更しないでください。ホストゾーン ID を誤って変更した場合は、ホストゾーン ID をドメインのホストゾーン ID ではなく、リソース自体のホストゾーン ID にロールバックしてください。ホストゾーン ID は、リソースの作成に使用した AWS コンソールで見つけることができます。

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

        重要

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

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

    • ステップ 3: (オプション) ヘルスチェックを移行する でヘルスチェックを移行した場合は、新しく作成されたヘルスチェック ID に関連付けるようにレコードを変更します。

    次の例に示すのは、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." } } ] }
  3. 大きなファイルを小さなファイルに分割する

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

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

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

  4. 新しいホストゾーンにレコードを作成する

    次の CLI を入力します。

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

    次の値を指定します。

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

    • path-to-file-that-contains-records で、前のステップで編集したディレクトリのパスとファイル名を指定します。

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

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

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

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

次の値を指定します。

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

  • path-to-output-file で、出力を保存するディレクトリのパスとファイル名を指定します。ステップ 4 で使用したファイル名とは異なるファイル名を使用します。

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

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

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

  • Route 53 コンソールを使用してマイナーな修正を行います。詳細については、「レコードの編集」を参照してください。

  • 新しいホストゾーンで NS レコードと SOA レコードを除くすべてのレコードを削除し、ステップ 4 の手順を繰り返します。

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

新しいホストゾーンでレコードの移行が終了したら、ドメイン登録のネームサーバーを変更し、新しいホストゾーンのネームサーバーを使用します。詳細については、「Amazon Route 53 を既存ドメインの DNS サービスにする」を参照してください。

ホストゾーンが使用中の場合、例えばユーザーがドメイン名を使用してウェブサイトを参照したり、ウェブアプリケーションにアクセスしたりしている場合、ウェブサイトやアプリケーションのトラフィック、E メールなど、ホストゾーンのトラフィックと可用性を引き続きモニタリングする必要があります。

  • トラフィックが遅くなったり停止したりした場合 — ドメイン登録のネームサービスを古いホストゾーンの以前のネームサーバーに戻します。その後、何が悪かったのかを見極めます。

  • トラフィックに影響がない場合 – 次のステップに進みます。

ステップ 7: NS レコードの TTL を高い値に戻す

新しいホストゾーンで、NS レコードの TTL をより一般的な値、例えば 172800 秒 (2 日) に変更します。これにより、DNS リゾルバーがドメインのネームサーバーのクエリを送信するのを頻繁に待つ必要がないため、ユーザーのレイテンシーが改善されます。

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

  2. ナビゲーションペインで [Hosted Zones] (ホストゾーン) を選択します。

  3. ホストゾーンの名前を選択します。

  4. NS レコードを選択し、[Record details] (レコードの詳細) ペインで [Edit record] (レコードの編集) を選択します。

  5. [TTL (Seconds)] の値を、DNS リゾルバーがドメインのネームサーバーの名前をキャッシュする秒数に変更します。172800 秒の値を推奨します。

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

ステップ 8: DNSSEC 署名を再度有効にし、信頼チェーンを確立する (必要な場合)

2 つのステップで DNSSEC 署名を再度有効にできます。

  1. Route 53 の DNSSEC 署名を有効にし、AWS Key Management Service のカスタマー管理キーに基づいたキー署名キー (KSK) を Route 53 が作成するようにリクエストします。

  2. Delegation Signer (DS) レコードを親ゾーンに追加して、ホストゾーンの信頼チェーンを作成します。これにより、信頼された暗号化署名を使用して DNS 応答を認証できます。

手順については、「DNSSEC 署名を有効にし、信頼チェーンを確立します。」を参照してください。

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

古いホストゾーンが不要であることが明らかな場合は、オプションで削除できます。手順については、「パブリックホストゾーンの削除」を参照してください。

重要

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