

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

# ホストゾーンを別の AWS アカウントに移行する
<a name="hosted-zones-migrating"></a>

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

これらのステップは、レコードの変更頻度が低いホストゾーンに最適です。頻繁にレコードが更新されるホストゾーンの場合は、次の点を考慮してください。
+ 移行中にリソースレコードを更新しないでください。
+ 委任が移管された後、古いホストゾーンと新しいホストゾーンの両方でリソースレコードの変更を公開します。

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

のダウンロード、インストール、設定については AWS CLI、 [AWS Command Line Interface ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/)を参照してください。

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

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

**Topics**
+ [ステップ 1: 移行の準備をする](#hosted-zones-migrating-prepare)
+ [ステップ 2: 新しいホストゾーンを作成する](#hosted-zones-migrating-create-hosted-zone)
+ [ステップ 3: (オプション) ヘルスチェックを移行する](#hosted-zones-migrating-health-checks)
+ [ステップ 4: 古いホストゾーンから新しいホストゾーンにレコードを移行する](#hosted-zones-migrating-old-to-new)
+ [ステップ 5: 古いホストゾーンと新しいホストゾーンのレコードを比較する](#hosted-zones-migrating-compare)
+ [ステップ 6: ドメイン登録を更新して新しいホストゾーンのネームサーバーを使用する](#hosted-zones-migrating-update-domain)
+ [ステップ 7: NS レコードの TTL をより高い値に戻す](#hosted-zones-migrating-change-ttl)
+ [ステップ 8: DNSSEC 署名を再度有効にし、信頼チェーンを確立する (必要な場合)](#hosted-zones-migrating-enable-dnssec)
+ [ステップ 9: (オプション) 古いホストゾーンを削除する](#hosted-zones-migrating-delete-old-hosted-zone)

## ステップ 1: 移行の準備をする
<a name="hosted-zones-migrating-prepare"></a>

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

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

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

**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 マネジメントコンソール し、[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/) で Route 53 コンソールを開きます。

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

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

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

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

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

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

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

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

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

## ステップ 2: 新しいホストゾーンを作成する
<a name="hosted-zones-migrating-create-hosted-zone"></a>

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

 AWS CLI または コンソールの手順のタブを選択します。
+ [CLI](#migrate-hz-cli)
+ [コンソール](#migrate-hz-console)

------
#### [ CLI ]

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

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

詳細については、「[create-hosted-zone](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/create-hosted-zone.html)」を参照してください。

------
#### [ Console ]<a name="hosted-zones-migrating-create-hosted-zone-procedure"></a>

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

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

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

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

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

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

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

------

## ステップ 3: (オプション) ヘルスチェックを移行する
<a name="hosted-zones-migrating-health-checks"></a>

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

## ステップ 4: 古いホストゾーンから新しいホストゾーンにレコードを移行する
<a name="hosted-zones-migrating-old-to-new"></a>

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

------
#### [ Console ]

ゾーンに少数のレコードしか含まれていない場合は、Route 53 コンソールを使用して古いゾーンのレコードを一覧表示し、メモして、新しいゾーンに作成することを検討できます。[ステップ 3: (オプション) ヘルスチェックを移行する](#hosted-zones-migrating-health-checks) でヘルスチェックを移行した場合は、新しいホストゾーンにレコードを作成するときに、新しいヘルスチェック ID を指定する必要があります。詳細については、以下の各トピックを参照してください。
+ [レコードの一覧表示](resource-record-sets-listing.md)
+ [Amazon Route 53 コンソールを使用したレコードの作成](resource-record-sets-creating.md)
+ [DNS フェイルオーバーの設定](dns-failover-configuring.md)

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

------
#### [ CLI ]

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

****

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* に、出力を保存するディレクトリのパスとファイル名を指定します。
   + `>` 文字を指定すると、指定されたファイルに出力が送信されます。
   + は、100 を超えるレコードを含むホストゾーンのページ分割 AWS CLI を自動的に処理します。詳細については、「 *AWS Command Line Interface ユーザーガイド*[」の AWS 「コマンドラインインターフェイスのページ分割オプションの使用](https://docs.aws.amazon.com/cli/latest/userguide/pagination.html)」を参照してください。

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

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

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

   `change-resource-record-sets` コマンドで使用する前に、エクスポートしたファイルを編集します。テキストエディターの検索と置き換え機能を使用して、これらの変更を行うことができます。
**注記**  
次の手順では、テキストエディターを使用した手動編集について説明します。上級ユーザーは、jq、Python、またはその他のスクリプト言語などのプログラムツールを使用して、これらの変換を自動化できます。

   移行するレコードを含むこの手順のステップ 1 で作成したファイルのコピーを開き、次の変更を行います。
   + ファイルの上部にある ResourceRecordSets 要素を `Changes` 要素に置き換えます。
   + オプション – `Comment` 要素を追加します。
   + ホストゾーン名の NS レコードと SOA レコードに関連する行を削除します。新しいホストゾーンには既にそれらのレコードがあります。
   + レコードごとに、`Action` と `ResourceRecordSets` 要素を追加し、必要に応じて括弧 ( `{ }` ) を追加して JSON コードを有効にします。
**注記**  
JSON 検証ツールを使用して、すべての中括弧と角括弧が正しい場所に配置されていることを確認します。オンライン JSON 検証ツールを検索するには、ブラウザで「JSON 検証ツール」を検索します。
   + ホストゾーンに、同じホストゾーンで他のレコードを参照するエイリアスが含まれている場合は、以下の変更を行います。
     + ホストゾーン ID を、新しいホストゾーンの ID に変更します。
**重要**  
エイリアスレコードが他のリソース (ロードバランサーなど) を指している場合は、ホストゾーン ID を、ドメインのホストゾーン ID に変更しないでください。ホストゾーン ID を誤って変更した場合は、ホストゾーン ID をドメインのホストゾーン ID ではなく、リソース自体のホストゾーン ID にロールバックしてください。リソースホストゾーン ID は、リソースが作成された AWS コンソールにあります。
     + エイリアスレコードをファイルの末尾に移動します。Route 53 は、エイリアスレコードを作成する前に、エイリアスレコードが参照するレコードを作成する必要があります。
**重要**  
1 つ以上のエイリアスレコードが他のエイリアスレコードを参照している場合、エイリアスターゲットであるレコードは、エイリアスレコードを参照する前にファイルに表示される必要があります。たとえば、`alias.example.com` が `alias.alias.example.com` のエイリアスターゲットである場合、`alias.example.com` がファイルの先頭に表示される必要があります。
     + トラフィックをトラフィックポリシーインスタンスにルーティングするエイリアスレコードを削除します。レコードをメモし、後で再作成できるようにします。
   + [ステップ 3: (オプション) ヘルスチェックを移行する](#hosted-zones-migrating-health-checks) でヘルスチェックを移行した場合は、新しく作成されたヘルスチェック 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."
               }
           }
       ]
   }
   ```

1. 大きなファイルを小さなファイルに分割する

   レコードが多数ある場合や、多くの値 (多数の IP アドレスなど) を含むレコードがある場合は、ファイルをより小さなファイルに分割しなければならないことがあります。最大値は以下のとおりです。
   + 各ファイルには、最大 1,000 件のレコードを含めることができます。
   + すべての `Value` 要素での結合された値の最大の長さは 32,000 バイトです。

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

   次の 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 コンソールを使用したレコードの作成](resource-record-sets-creating.md)」を参照してください。

------

## ステップ 5: 古いホストゾーンと新しいホストゾーンのレコードを比較する
<a name="hosted-zones-migrating-compare"></a>

新しいホストゾーンですべてのレコードを正常に作成したことを確認するには、以下の 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 コンソールを使用してマイナーな修正を行います。詳細については、「[レコードの編集](resource-record-sets-editing.md)」を参照してください。
+ 新しいホストゾーンで NS レコードと SOA レコードを除くすべてのレコードを削除し、ステップ 4 の手順を繰り返します。

## ステップ 6: ドメイン登録を更新して新しいホストゾーンのネームサーバーを使用する
<a name="hosted-zones-migrating-update-domain"></a>

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

ホストゾーンが使用中の場合、例えばユーザーがドメイン名を使用してウェブサイトを参照したり、ウェブアプリケーションにアクセスしたりしている場合、ウェブサイトやアプリケーションのトラフィック、E メールなど、ホストゾーンのトラフィックと可用性を引き続きモニタリングする必要があります。
+ **トラフィックが遅くなったり停止したりした場合** — ドメイン登録のネームサービスを古いホストゾーンの以前のネームサーバーに戻します。その後、何が悪かったのかを見極めます。
+ **トラフィックに影響がない場合** – 次のステップに進みます。

## ステップ 7: NS レコードの TTL をより高い値に戻す
<a name="hosted-zones-migrating-change-ttl"></a>

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

**TTL を変更するには**

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

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

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

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

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

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

## ステップ 8: DNSSEC 署名を再度有効にし、信頼チェーンを確立する (必要な場合)
<a name="hosted-zones-migrating-enable-dnssec"></a>

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

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

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

手順については、「[DNSSEC 署名を有効にし、信頼チェーンを確立します。](dns-configuring-dnssec-enable-signing.md)」を参照してください。

## ステップ 9: (オプション) 古いホストゾーンを削除する
<a name="hosted-zones-migrating-delete-old-hosted-zone"></a>

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

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