aquadrops *

Technologies and Labs, Lifelog and more.

2011-11-22

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で行います。

その辺りはまた。