Amazon Route53ためしてみた
参考URL: http://docs.amazonwebservices.com/Route53/latest/GettingStartedGuide/
下準備
AWSの認証情報を ~/.aws-secrets に保存。フォーマットは
%awsSecretAccessKeys = ( "my-aws-account" => { id => "0F1V9UKMN23IEXAMPLE2", key => "lkTwZRalREYSU7lbSS5VoUhdYREcwsasEXAMPLEQ", }, );
dnscurl.pl をダウンロードし、実行可能属性を付けておく
~/work/r53% curl -O http://awsmedia.s3.amazonaws.com/catalog/attachments/dnscurl.pl ~/work/r53% chmod +x dnscurl.pl
HostedZoneを作る
createリクエストのXML(create.xml)を用意。
<CreateHostedZoneRequest xmlns="https://route53.amazonaws.com/doc/2010-10-01/"> <Name>example.com.</Name> <CallerReference>r53test</CallerReference> <HostedZoneConfig> <Comment>just playing with r53</Comment> </HostedZoneConfig> </CreateHostedZoneRequest>
リクエスト発行
~/work/r53% ./dnscurl.pl --keyname my-aws-account -- -H "Content-Type: text/xml; charset=UTF-8" -X POST --upload-file create.xml https://route53.amazonaws.com/2010-10-01/hostedzone 0.0% <?xml version="1.0"?> <CreateHostedZoneResponse xmlns="https://route53.amazonaws.com/doc/2010-10-01/"><HostedZone><Id>/hostedzone/Z6OFCRATY6S6R</Id><Name>example.com.</Name><CallerReference>r53test</CallerReference><Config><Comment>just playing with r53</Comment></Config></HostedZone><ChangeInfo><Id>/change/C2J08T13S0L6XK</Id><Status>PENDING</Status><SubmittedAt>2010-12-07T02:29:16.554Z</SubmittedAt></ChangeInfo><DelegationSet><NameServers><NameServer>ns-1980.awsdns-55.co.uk</NameServer><NameServer>ns-1216.awsdns-24.org</NameServer><NameServer>ns-123.a
レスポンスが途中で切れてしまった…。dnscurl.plの実行時は |tee out 等として出力を保存した方がいいかもしれない。大事な情報はIdで、今回は Z6OFCRATY6S6R であった。
状況を確認する。
~/work/r53% ./dnscurl.pl --keyname my-aws-account -- https://route53.amazonaws.com/2010-10-01/hostedzone/Z6OFCRATY6S6R | tee out ~/work/r53% less out <?xml version="1.0"?> <GetHostedZoneResponse xmlns="https://route53.amazonaws.com/doc/2010-10-01/"><HostedZone><Id>/hostedzone/Z6OFCRATY6S6R</Id><Name>example.com.</Name><CallerReference>r53test</CallerReference><Config><Comment>just playing with r53</Comment></Config></HostedZone><DelegationSet><NameServers><NameServer>ns-1980.awsdns-55.co.uk</NameServer><NameServer>ns-1216.awsdns-24.org</NameServer><NameServer>ns-123.awsdns-15.com</NameServer><NameServer>ns-846.awsdns-41.net</NameServer></NameServers></DelegationSet></GetHostedZoneResponse>
DNSサーバ等の情報が得られる。
レコードの追加。
まずは普通のAレコード
~/work/r53% cat record.xml <?xml version="1.0" encoding="UTF-8"?> <ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/2010-10-01/"> <ChangeBatch> <Comment> add my instance </Comment> <Changes> <Change> <Action>CREATE</Action> <ResourceRecordSet> <Name>somehost.example.com.</Name> <Type>A</Type> <TTL>14400</TTL> <ResourceRecords> <ResourceRecord> <Value>10.72.36.246</Value> </ResourceRecord> </ResourceRecords> </ResourceRecordSet> </Change> </Changes> </ChangeBatch> </ChangeResourceRecordSetsRequest> ~/work/r53% ./dnscurl.pl --keyname my-aws-account -- -H "Content-Type: text/xml; charset=UTF-8" -X POST --upload-file record.xml https://route53.amazonaws.com/2010-10-01/hostedzone/Z6OFCRATY6S6R/rrset | tee out <?xml version="1.0"?> <ChangeResourceRecordSetsResponse xmlns="https://route53.amazonaws.com/doc/2010-10-01/"><ChangeInfo><Id>/change/C3OBZESBFBJJEN</Id><Status>PENDING</Status><SubmittedAt>2010-12-07T02:52:13.781Z</SubmittedAt></ChangeInfo></ChangeResourceRecordSetsResponse> ~/work/r53% host somehost.example.com ns-123.awsdns-15.com Using domain server: Name: ns-123.awsdns-15.com Address: 205.251.192.123#53 Aliases: somehost.example.com has address 10.72.36.246
他にもドメイン自体にAレコードを振ったり(Nameにexample.comを指定)、ワイルドカードを指定したり(Nameに*.example.comを指定)してみたが、想定通り動作しました。
bind等他のDNSサーバからの移行に関して
ゾーン転送(AXFR)
ゾーン転送(AXFR)はサポートしていないみたいです。セカンダリサーバを立てなくても、すでに多重化されていますので、特に必要ありませんが。
~/work/r53% host -l example.com ns-123.awsdns-15.com ; Transfer failed. ; Transfer failed. Using domain server: Name: ns-123.awsdns-15.com Address: 205.251.192.123#53 Aliases: Host example.com.amazon.com not found: 4(NOTIMP) ; Transfer failed.