Cloud DNS への移行

Cloud DNS では、他の DNS プロバイダの既存の DNS ドメインを Cloud DNS に移行できます。この手順では、ドメイン用のマネージド ゾーンの作成、既存の DNS 構成のインポート、レジストラのネームサーバー レコードの更新に必要なステップについて説明します。

始める前に

gcloud コマンドライン ツールを初めて使用する場合は、gcloud SDK を設定します。

次のコマンドを実行してプロジェクト名を指定し、Cloud Console で認証を行います。

gcloud auth login

また、コマンドに --project パラメータを指定すると、さまざまなプロジェクトを呼び出してコマンドを実行できます。

ステップ 1: マネージド ゾーンを作成する

既存のドメインを移行するには、まず、DNS レコードを格納するマネージド ゾーンを作成します。ゾーンを作成しても、ドメイン登録を更新するか、明示的にリゾルバをポイントするか、ゾーンのネームサーバーの 1 つに直接クエリを実行するまで、新しいゾーンは使用できません。

gcloud

ゾーンを作成するには、次のコマンドを使用します。

gcloud dns managed-zones create --dns-name=example.com.
--description=A zone examplezonename

次のコマンド オプションを置き換えます。

  • example.com.: DNS 名
  • A zone: ゾーンの説明
  • examplezonename: DNS ゾーンを識別する名前

ステップ 2: 既存のプロバイダから DNS 構成をエクスポートする

ゾーンファイルのエクスポート方法については、プロバイダのドキュメントをご覧ください。Cloud DNS は、BIND または YAML レコード形式のゾーンファイルのインポートをサポートしています。

例:

  • Dyn の場合は、Download Your Zone File(英語)をご覧ください。
  • エクスポートをサポートしていない AWS Route 53 の場合は、オープンソースの cli53 ツールを使用できます。

ステップ 3: レコードセットをインポートする

他のプロバイダからエクスポートしたファイルは、gcloud コマンドを使用してマネージド ゾーンにインポートできます。

レコードセットを正しくインポートするには、apex レコードを削除するか、gcloud タブで記載されているフラグを使用する必要があります。

gcloud

レコードセットをインポートするには、dns record-sets import コマンドを使用します。--zone-file-format フラグは、import に BIND ゾーン形式のファイルが想定されていることを伝えます。このフラグを省略すると、import は YAML 形式のレコード ファイルを想定します。

gcloud dns record-sets import -z=examplezonename
--zone-file-format path-to-example-zone-file

次のコマンド オプションを置き換えます。

  • examplezonename: DNS ゾーンの名前

dns record-sets import コマンドの使用方法について詳しくは、コマンドのリファレンス ページをご覧ください。

ステップ 4: DNS 伝搬 を検証する

Linux の watch コマンドと dig コマンドを使用して、Cloud DNS ネームサーバーによってピックアップされた変更のモニタリングと確認を行えます。

  1. ゾーンの Cloud DNS ネームサーバーをルックアップします。

      gcloud dns managed-zones describe examplezonename
      

    次のコマンド オプションを置き換えます。

    • examplezonename: 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)。

  2. ネームサーバーでレコードが利用できるか確認します。

    watch dig example.com @your_zone_nameserver
    

    your_zone_nameserver は、前のコマンドから返されたネールサーバーの名前で置き換えます。

  3. 変更内容を確認したら、Ctrl-C キーを押して終了します。

watch コマンドは、デフォルトでは 2 秒ごとに dig コマンドを実行します。権威ネームサーバーはユーザーが加えた変更を 120 秒以内にピックアップしますが、このコマンドを使用すれば実際に変更がピックアップされたタイミングを知ることができます。

ステップ 5: レジストラのネームサーバー レコードを更新する

レジストラ プロバイダにログインして、ステップ 4 で確認したネームサーバーを指すように権威ネームサーバーを変更します。このとき、レジストラがレコードに対して設定している有効期間(TTL)をメモしておきます。これにより、新しいネームサーバーの使用開始までの時間がわかります。

ステップ 6: 変更が適用されるのを待ち、検証する

インターネット上のドメインの権威ネームサーバーを取得するには、次の Linux コマンドを実行します。

dig +short NS example.com

すべての変更内容が伝播していることがこの出力結果に示されていれば、完了です。変更内容が伝播していない場合、ネームサーバーが変更されるまで、定期的に確認するか、コマンドを 2 秒ごとに自動実行します。自動実行する場合、次のコマンドを実行します。

watch dig +short NS example.com

Ctrl-C はコマンドを終了します。

Linux を使用していない場合は、nslookup コマンドを使用します。

次のステップ