Cloud DNS では、他の DNS プロバイダの既存の DNS ドメインを Cloud DNS に移行できます。ここでは、ドメイン用のマネージド ゾーンの作成、既存のプロバイダからの DNS 構成のエクスポート、既存の DNS 構成のインポート、登録事業者のネームサーバー レコードの記録、移行の確認を行う手順について説明します。
始める前に
- Google Cloud CLI を初めて使用する場合は、gcloud CLI を設定します。 
- プロジェクト名を指定し、 Google Cloud コンソールで認証するために、次のコマンドを実行します。 - gcloud auth login - また、コマンドに - --projectパラメータを指定すると、さまざまなプロジェクトを呼び出してコマンドを実行できます。
マネージド ゾーンを作成する
既存のドメインを移行するには、まず、DNS レコードを格納するマネージド ゾーンを作成します。ゾーンを作成しても、ドメイン登録を更新するか、リゾルバにそのゾーンを示すか、ゾーンのネームサーバーの 1 つに対してクエリを実行するまで、新しいゾーンは使用されません。
gcloud
サブスクリプションを作成するには、dns managed-zones create コマンドを実行します。
gcloud dns managed-zones create --dns-name=example.com. --description=A_ZONE EXAMPLE_ZONE_NAME
次のように置き換えます。
- example.com.: DNS 名
- A_ZONE: ゾーンの説明
- EXAMPLE_ZONE_NAME: DNS ゾーンを識別する名前
既存のプロバイダから DNS 構成をエクスポートする
ゾーンファイルをエクスポートするには、プロバイダのドキュメントをご覧ください。Cloud DNS は、BIND または YAML レコード形式のゾーンファイルのインポートをサポートしています。
次に例を示します。
- Dyn の場合は、Download Your Zone File をご覧ください。 
- エクスポートをサポートしていない AWS Route 53 の場合は、オープンソースの cli53 ツールを使用できます。 
レコードセットをインポートする
他のプロバイダからファイルをエクスポートしたら、gcloud コマンドを使用してマネージド ゾーンにインポートできます。
レコードセットを正しくインポートするには、apex レコードを削除するか、gcloud タブに記載されているフラグを使用する必要があります。
gcloud
レコードセットをインポートするには、dns record-sets import コマンドを実行します。--zone-file-format フラグは、import に BIND ゾーン形式のファイルが想定されていることを伝えます。このフラグを省略すると、import は YAML 形式のレコード ファイルを想定します。
gcloud dns record-sets import -z=EXAMPLE_ZONE_NAME --zone-file-format path-to-example-zone-file
EXAMPLE_ZONE_NAME は、DNS ゾーンの名前に置き換えます。
DNS 伝播を検証する
Cloud DNS ネームサーバーが変更を認識したことを監視して、確認するには、Linux の watch コマンドと dig コマンドを使用します。
gcloud と Linux
- ゾーンの Cloud DNS ネームサーバーを検索するには、 - dns managed-zones describeコマンドを実行します。- gcloud dns managed-zones describe EXAMPLE_ZONE_NAME - EXAMPLE_ZONE_NAMEは、DNS ゾーンの名前に置き換えます。- 出力は次のようになります。 - nameServers: - ns-cloud-a1.googledomains.com. - ns-cloud-a2.googledomains.com. - ns-cloud-a3.googledomains.com. - ns-cloud-a4.googledomains.com. - 出力で、名前の - ns-cloud-部分に続く文字はネームサーバー シャードと呼ばれます。このようなシャードは 5 つあります(アルファベットの A~E)。シャードの詳細については、ネームサーバーの制限をご覧ください。
- ネームサーバーでレコードが利用できるか確認します。 - watch dig example.com @ZONE_NAME_SERVER - ZONE_NAME_SERVER は、前のコマンドから返されたネールサーバーの名前で置き換えます。 
- 変更内容を確認したら、 - Ctrl+Cキーを押して終了します。
watch コマンドは、デフォルトでは 2 秒ごとに dig コマンドを実行します。権威ネームサーバーはユーザーが加えた変更を 120 秒以内にピックアップしますが、このコマンドを使用すれば実際に変更がピックアップされたタイミングを知ることができます。
登録事業者のネームサーバー レコードを更新する
ドメイン登録プロバイダにログインして、手順 1 で確認したネームサーバーを指すように権威ネームサーバーを変更します。このとき、登録事業者がレコードに対して設定した有効期間(TTL)をメモしておきます。これにより、新しいネームサーバーの使用開始までの時間がわかります。
変更が適用されるのを待ち、検証する
インターネット上のドメインの権威ネームサーバーを取得するには、次の Linux コマンドを実行します。
dig +short NS example.com
すべての変更が伝搬したことが出力に示されていれば、この作業は完了です。変更内容が伝播していない場合、ネームサーバーが変更されるまで、定期的に確認するか、コマンドを 2 秒ごとに自動実行します。自動実行する場合、次のコマンドを実行します。
watch dig +short NS example.com
Ctrl+C はコマンドを終了します。
Linux を使用していない場合は、nslookup コマンドを使用します。
次のステップ
- レコードの追加、削除、更新については、レコードを管理するをご覧ください。
- Cloud DNS レコードタイプに JSON 形式を使用する場合は、レコード形式(JSON)をご覧ください。
- Cloud DNS の使用時に発生する可能性のある一般的な問題の解決策については、トラブルシューティングをご覧ください。
- Cloud DNS の概要については、Cloud DNS の概要をご覧ください。
- Cloud DNS コマンドラインについては、Google Cloud CLI のドキュメントをご覧ください。