Google Cloudにも Cloud DNSがあり、DNSサーバーをホスト可能です。
Let’s Encryptのワイルドカード証明書取得のためのCertbotプラグインもCloud DNSをサポートしています。
Cloud DNSの設定
まず、Google Cloud DNS上に既存のDNS情報(ドメインとIPアドレスの組み合わせ)を再現します。
Cloud DNSは Google Cloudコンソールで設定可能です(ネットワークサービス -> Cloud DNS)。
ゾーン作成
対象ドメイン(example.comなど)を指定してゾーンを作成します。
レコードセットを追加
既存のDNS設定を参照して、Aレコード・MXレコード・CNAMEレコードなど、使用しているドメイン設定をすべてGoogle Cloud DNSのレコードセット設定に記載します。
- ルートドメインの設定に@を指定する必要はない
- ドメイン文字列には、基本的に末尾のピリオドも必要
- TXTレコードでスペースの含まれた文字列はダブルクオートで囲む必要あり
- TTLは切り替えを反映する時間のため、動作確認がとれてから長い時間に変更すると安全
ネームサーバー変更
レジストラ(ドメインを購入したサービス)の管理画面で、ネームサーバー変更操作を行います。
ネームサーバーに記載すべきドメイン文字列は、Google Cloudのコンソール画面に掲載されているものをそのまま書き写します。
Google Cloud DNSのNSサーバーはゾーンごとに異なり、ns-cloud-x1.googledomains.com.のようなアドレスが割り当てられます。
- 複数のレコードが掲載されており、すべて書き写す
- 基本的に末尾のピリオドも必要
なお、実際のネームサーバー切り替えタイミングは即時ではありません。既存のTTL設定しだいで時間がかかります。
DNSの状態確認
MacOSやLinuxを利用していれば、ターミナルからdigコマンドで現在のDNS設定値を確認できます。
たとえば、dig @8.8.8.8 ns example.com
というコマンドではネームサーバーを調べます。8.8.8.8はGoogleのPublic DNS上の掲載情報を参照しています。
ただし、digはあるDNSサーバーに問い合わせているだけなので、このコマンドで期待する結果になったとしてもDNS全般が新しい設定に切り替わるまで、なお時間がかかる可能性があることには注意しましょう。
既存ネームサーバーの削除
ネームサーバーが安定的にCloudDNSを参照している状態になれば、既存のネームサーバーを削除できます。
既存のネームサーバーは参照されない状態になるため、もともと追加コストがかかっていないサービス(レジストラの付帯サービスを利用していた場合など)であればあわてて削除しなくても特に問題はありません。
Chuma Takahiro