Amazon Route 53にbindのゾーン情報を移してみたよ。
1つ前のエントリではGUIを使ってAmazon Route 53に登録してみました。
今回は、既にbindで運用しているドメインを、CUIで移行してみます。
Route 53に接続する為の準備
参考 :
http://docs.amazonwebservices.com/Route53/latest/GettingStartedGuide/
http://aws.amazon.com/developertools/Amazon-Route-53/4495891528591897
DNSサーバにAWSの認証情報ファイルを作成します。
IDとキーで一対になります。’daisuke’というのは認証名です(後ほど使います)。ここは任意につけても構いません。
~/.aws-secrets
%awsSecretAccessKeys = ( # my personal account 'daisuke' => { id => 'AWSのID', key => 'AWSのキー', }, );
ID,キーは、AWSのセキュリティ証明書のページから入手します。
認証情報ファイルのパーミッションを600にします。
chmod 600 ~/.aws-secrets
DNSサーバにPerlのCPANモジュールをインストールします。
Net::DNS::ZoneFile NetAddr::IP Net::DNS Net::IP Digest::HMAC Digest::SHA1 Digest::MD5 MIME::Base64
Route 53に登録するスクリプトをダウンロードします。
wget http://awsmedia.s3.amazonaws.com/catalog/attachments/dnscurl.pl
bindのゾーンファイルをRoute 53へレジストする形式のxmlにコンバートする スクリプトをダウンロードします。
wget http://awsmedia.s3.amazonaws.com/catalog/attachments/bindtoroute53.pl
AWS Management Consoleから、移行するドメインを登録しておきます。登録方法は先のエントリを参照して下さい。
登録すると、Hosted Zone IDが発行されます。後ほど使うので、メモしておきます。
bindのインストールされているサーバから、Route 53に登録します。
今回はdknet.jpというドメインを移行してみます。
まずは、bindのゾーンファイルからRoute 53へレジストする形式のxmlファイルにコンバートします。
NSレコード、SOAレコードはRoute 53に予め設定されており、移行の必要は無いので、除外しています。
perl ./bindtoroute53.pl --ignore-origin-ns --ignore-soa --origin dknet.jp < /var/named/data/dknet.jp.hosts > dknet.jp.xml
コンバートしたxmlファイルをRoute 53に登録します。
keynameオプションの”daisuke”は、~/.aws-secretsに設定した認証名、Hosted Zone IDは、AWS Management Consoleから取得したIDです。
perl ./dnscurl.pl --keyname daisuke -- -H "Content-Type: text/xml; charset=UTF-8" -X POST --upload-file dknet.jp.xml https://route53.amazonaws.com/2010-10-01/hostedzone/Hosted Zone ID/rrset | tee out
AWS Management Consoleから見てみると…
無事登録されていますね!
nslookupの結果も問題なかったので、レジストラ(これもvalue-domain)のDNSの参照先を変えます。
これで完了。
レコードの追加、削除などもdnscurl.plで行います。
その辺りはまた。