1.はじめに
以前業務でRoute53にて作成したパブリックホストゾーンを別アカウントに移管しました。
方法や注意点を備忘として記事に残します。
2.実際にやってみた
以下①-③の手順を実施後に移管先AWSアカウントのパブリックホストゾーンへ名前解決を行うようになります。実際にやってみます。
①移管先アカウントで移管するパブリックホストゾーンと同一ドメイン,レコードのパブリックホストゾーンを作成する
移管先アカウントで移管するホストゾーンと同一ドメイン、レコードのパブリックホストゾーンを作成します。SOAレコード、NSレコード以外は同じ設定となるようにします。
移管するホストゾーンのドメインは、test××.netです。
作成したパブリックホストゾーンのNSレコードは③で使うためメモしておきます。
今回はAレコード1つのみがホストゾーン作成後に同一設定するため必要な作業でしたが、レコードが多い場合は公式ドキュメント記載の通り、CLIを用いたレコード一括登録ができます。
②移管元アカウントのパブリックホストゾーンのNSレコードのTTL値をデフォルト値(172800秒)から60秒に変更する。
NSレコードのTTL値はデフォルトで172800秒(2日)あるためDNSリゾルバがキャッシュを保持し切り替え作業を行った後、最大2日切り替わらない可能性があります。
移管作業をより短いダウンタイムで行うため,切り替え予定日から2日前にはNSレコードのTTL値を60秒に変更します。
またDNS権威委任先(今回だとRoute53上のtest××.netゾーン)とDNS権威委任元(今回だとnetゾーン)でNSレコードのTTLに差異があった場合については以下ドキュメントの記述によると、「DNSの仕様では子のNSが権威を持つ(親のNSよりも優先)」と記載があるため、権限委任先である子ゾーンのTTLが優先されることが期待されます。
[参考ドキュメント]親の心子知らず?委任にまつわる諸問題について考える~ランチのおともにDNS~
https://jprs.jp/tech/material/iw2012-lunch-L3-01.pdf
===P9 より抜粋===
委任におけるNSレコードの役割
• 親のNSが委任を、子のNSが権威を示す
• 親のNSの意味(委任情報の提示)
– 「私はそのゾーンをNSで指定した子に
委任しています」
• 子のNSの意味(権威情報の表明)
– 「私はそのゾーンの権威を持っています」
• 委任の成立には上記の双方が必要
• DNSの仕様では子のNSが権威を持つ(親のNSよりも優先)
=========
③登録ドメインのネームサーバーの値を移管先AWSアカウントで作成したパブリックホストゾーンのNSレコード値に更新する。
今回はRoute53で購入、登録したドメインを使っているため、Route53登録ドメイン画面でネームサーバー値を更新することでホストゾーンの切り替えを行います。
切り替え作業の前にコマンドプロンプトで切り替え対象ドメイン(test××.net)を管理しているホストゾーンのネームサーバー値を確認します。
■切り替え前ネームサーバー値
ns-9××.net.
ns-1××.org.
ns-2××.com.
ns-1××.co.uk.
ネームサーバー値はマスクしていますが、移管元アカウントにあるパブリックホストゾーンのネームサーバー値であることがわかります。
Route53登録ドメイン画面でネームサーバー値を移管先アカウントにあるパブリックホストゾーンのネームサーバー値に変更します。
変更作業後TTL値として設定した60秒後にネームサーバー値がを移管先アカウントにあるパブリックホストゾーンのネームサーバー値切り替わるか確認します。
■切り替え後ネームサーバー値
ns-3××.com.
ns-1××.co.uk.
ns-1××.org.
ns-8××.net.
移管先アカウントにあるパブリックホストゾーンのネームサーバー値切り替わっていることを確認しました。
Route53のパブリックホストゾーンの別アカウント移管作業は完了となります。
3.まとめ
Route53のパブリックホストゾーンを別アカウントに移管してみました。
作業自体はシンプルですが、ダウンタイムに注意しながら移管するということが重要なので、本記事が参考になれば幸いです。