お名前ドットコムで取得しているドメインのNSを切り替え、あるAWSアカウントにあるホストゾーンを別のAWSアカウントのホストゾーンへ移行する方法です。
お名前ドットコム以外のドメイン取得サービスでもやる事はほとんど変わらないので、参考になれば幸いです。
移行元のAWSアカウントのホストゾーンをエクスポートし、移行先に同じドメイン名でホストゾーンを作成後にインポート、最後にNSの切り替えを行います。
公式の方法でエクスポート・インポートをする場合、エクスポート後にファイルを修正したりなどが面倒だったため、cli53というツールを使いました。
macの場合はbrewからインストールできます。
brew install cli53
windowsの場合は下記からインストーラーのダウンロードができます。
https://github.com/barnybug/cli53/releases/tag/0.8.22
移行元と移行先のAWSのcredentialを定義している前提で説明します。
なんのこっちゃ分からない…という方はこちらの記事を読んで設定してください。
cli53を使ってエクスポートを行います。
下記コマンドで移行元のホストゾーンのエクスポート(ゾーンファイルの出力)を行います。
cli53 export --profile profile_a example.com > example.com
次に移行先のホストゾーンを作成します。
cli53 create --profile profile_b example.com
作成したホストゾーンに対してインポートします。
ちなみにSOAレコードとNSレコードは上書きされないのでご安心ください。
cli53 import --profile profile_b --file example.com example.com
正しくインポートが出来ているか確認します。
cli53 export --profile profile_b example.com
このとき、NSレコード4行を控えておきます。
@ 172800 IN NS ns-xxx.awsdns-xx.org.
@ 172800 IN NS ns-xxx.awsdns-xx.com.
@ 172800 IN NS ns-xxx.awsdns-xx.co.uk.
@ 172800 IN NS ns-xxx.awsdns-xx.net.
表示された内容を確認し、大丈夫そうならNSの切り替えに移ります。
本記事ではお名前ドットコムで説明していますが、他のドメイン取得サービスでも大きく変わらないはずなので置き換えて頂ければと思います。
お名前ドットコムにログインし、ネームサーバーの設定メニューから「ネームサーバーの設定」を選択します。
該当のドメイン名のリンクを押下し、チェックボックスにチェックを入れて「他のネームサーバーを利用」を選択します。
すると現在のネームサーバの情報が入力されているため、先ほど控えたNSレコードに書き換えます。
書き換えたら「確認画面へ進む」で内容を確認し、OKなら「設定する」ボタンを押下します。
しばらく待ってみて下記コマンドで新しいNSに切り替わっていれば成功です。
nslookup -type=NS example.com
早めに確認したい場合はGoogleやCloudflareのDNSを使って確認します。
nslookup -type=NS example.com 8.8.8.8
nslookup -type=NS example.com 1.1.1.1
これでダウンタイム無しで移行は完了です。
おつかれさまでした。
※各プロバイダーのキャッシュが消えるタイミングが違うので、古い方のホストゾーンも3日ほど残しておくのが良いと思います。
※cli53は使い勝手が良いのでホストゾーン周りをいじる際は今後も活躍しそうです。