Cloud DNS への移行

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

始める前に

  1. gcloud コマンドライン ツールをまだ使用していない場合は、gcloud SDK を設定します。

  2. プロジェクト名を指定し、Google Cloud Console で認証するために、次のコマンドを実行します。

    gcloud auth login
    

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

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

既存のドメインを移行するには、まず、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 ゾーンを識別する名前

手順 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=EXAMPLE_ZONE_NAME
--zone-file-format path-to-example-zone-file

EXAMPLE_ZONE_NAME は、DNS ゾーンの名前に置き換えます。

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

Cloud DNS ネームサーバーが変更を認識したことを監視して、確認するには、Linux の watch コマンドと dig コマンドを使用します。

gcloud と Linux

  1. ゾーンの 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)。シャードの詳細については、ネームサーバーの制限をご覧ください。

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

    watch dig example.com @ZONE_NAME_SERVER
    

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

  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 コマンドを使用します。

次のステップ