稼働中のDNSをRoute 53へ移行するその前にRoute 53の設定値を既存レコードと比較する

稼働中のDNSの既存レコードと移行前のRoute 53の設定値を比較する方法についてのお話です。 知っていればすごく当たり前の方法なんですが、いい話だったのでブログにしました。
2019.11.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

稼働中のDNSの既存レコード移行前のRoute 53の設定値比較する方法についてのお話です。 知っていればすごく当たり前の方法なんですが、いい話だったのでブログにしました。

Route 53とDNSについては、弊社ブログで詳しく書いているのでこちらを御覧ください。

前提のお話

稼働中のDNSをRoute 53へ移行したい。と、いうのはよくあるケースです。

そうした場合、AWSのドキュメントに手順が載っているので、この手順を参考に実施していくことになります。

たとえば、 test.example ドメインのDNSを移行する場合、次の図のようにまずは既存のDNSから設定を取得します。その後、Route53でホストゾーンを作成して、Route53にレコードを作成していきます。

.exampleドメインは例示用トップドメインで、存在しないし名前解決ができないのですが、名前解決できるものとして説明をしていきます。

このときに、Route 53でちゃんと名前解決できるのか dig コマンドを叩いて確認したくなります。 しかし、稼働中のDNSがありそちらで名前解決するので、Route53で名前解決できているのかがわかりません。

ところで、Route 53はパブリックホストゾーンを作成するときに、自動的にNSレコードとSOAレコードを作成します。

この作成されるNSレコードのネームサーバーは、レジストラに登録するものであり test.example ドメインがRoute 53で管理されていることを知っているはずです。

と、いうことは dig コマンドで問い合わせする際、ネームサーバーにRoute 53で作られたものを指定すれば、Route 53で名前解決できていることを確認できます。

試してみる

実際に、Route 53で test.example ホストゾーンを作ってみます。

自動で作成されたNSレコードのネームサーバーの値は、あとで利用するのでメモしておきます。

そして、Aレコードに www.test.example : 192.0.2.100 を作ってみます。

exampleトップドメインは存在しないので、普通にやると名前解決できません。 しかし、作成されたNSレコードに設定されたネームサーバーを指定して dig コマンドを実行することで、外部からRoute 53で設定したレコードが確認できます。

既存レコードと設定を見比べてみる

ネームサーバーを指定することで、外部からRoute 53で設定したレコードを確認できることがわかりました。

よって、次のようなコマンドを実行することで、DNS移行前と移行後の設定値が誤っていないか確認できます。

.exampleドメインは例示用トップドメインで、実際は存在しないし名前解決ができないのですが、名前解決できるものとして説明をしています。

$ DOMAIN=www.test.example
$ ROUTE53NS=ns-xxxx.awsdns-xx.com.
$ echo ${DOMAIN} && \
  echo $(dig ${DOMAIN} +short) "[ORIGIN]" && \
  echo $(dig ${DOMAIN} @${ROUTE53NS} +short) "[ROUTE53]"
www.test.example
192.0.2.100 [ORIGIN]
192.0.2.100 [ROUTE53]

ExcelのDNSレコード設定一覧と、マネジメントコンソールでRoute 53の設定値を目視で確認する。なんて手順よりは、だいぶマシな感じになるかと思います。

(おまけ)クエリログの有効化

ちなみに、Route 53でクエリログを有効にすることで、Route 53で名前解決していることをログとして残すことができます。

実際の手順については、弊社ブログを参照ください。

Route 53のここから設定できます。

クエリログを設定してから、digコマンド等を利用してRoute 53で名前解決すると、Cloud Watch Logsでこんな風にログが出力されます。

切替時の確認で使用するにはとても良いです。しかし、ログの量が大変なことになると思うので取り扱いには注意してください。

その後の作業

設定値が確認できた後は、先ほどリンクを張った手順どおり、現在のDNSのNSレコードをRoute 53 ネームサーバーを使用するよう更新して、Route 53 ネームサーバーを使用するようにドメイン登録を更新するという作業を続けていけば、稼働中のDNSをRoute 53へ移行できます。

終わりに

知っている人には当たり前だったかもしれませんが、自分は気がつかず有用な情報だと思ったのでブログにしました。 どなたかのお役に立てば幸いです。