Amazon Route53 使ってみた

やりたいと思ったAmazon Route53
面倒で後回しにしていたけど、
Amazon Route53 使ってみた@第1回クラウド女子会の資料があがっていたので早速やってみた。
Amazon Route53を利用するための準備

  • Amazon Route53の申し込み
  • dnscurl.plのダウンロード
  • perl-Digest-HMACインストール
  • ~/.aws-secret作成

dnscurl.plのダウンロード

curl -O http://awsmedia.s3.amazonaws.com/catalog/attachments/dnscurl.pl
chmod +x dnscurl.pl

perl-Digest-HMACインストール

yum install perl-Digest-HMAC

~/.aws-secret(アクセス証明書)作成

%awsSecretAccessKeys = (
“my-aws-account” => {
id => “アクセスキーID”,
key => “シークレットアクセスキー”,
},
);

これで下準備はOK

[ad#ad-links]

HostedZone作成

MyCreateRequest.xml

<CreateHostedZoneRequest xmlns=”https://route53.amazonaws.com/doc/2010-10-01/”>
<Name>barasu.org.</Name>
<CallerReference>2011020100</CallerReference>
<HostedZoneConfig>
<Comment>Route 53 barasu</Comment>
</HostedZoneConfig>
</CreateHostedZoneRequest>

登録コマンド

./dnscurl.pl –keyname my-aws-account — -H “Content-Type: text/xml; charset=UTF-8” -X POST –upload-file ./MyCreateRequest.xml https://route53.amazonaws.com/2010-10-01/hostedzone

登録結果

<?xml version=”1.0″?>
<CreateHostedZoneResponse xmlns=”https://route53.amazonaws.com/doc/2010-10-01/”><HostedZone><Id>/hostedzone/Z2E93PYZZSCJO9</Id><Name>barasu.org.</Name><CallerReference>2011020100</CallerReference><Config><Comment>Route 53 barasu</Comment></Config></HostedZone><ChangeInfo><Id>/change/C29GZOGEHIY0LU</Id><Status>PENDING</Status><SubmittedAt>2011-02-01T00:55:29.249Z</SubmittedAt></ChangeInfo><DelegationSet><NameServers><NameServer>ns-494.awsdns-61.com</NameServer><NameServer>ns-853.awsdns-42.net</NameServer><NameServer>ns-1100.awsdns-09.org</NameServer><NameServer>ns-1728.awsdns-24.co.uk</NameServer></NameServers></DelegationSet></CreateHostedZoneResponse>

読みにくいので読める形式に改行しておく

<?xml version=”1.0″?>
<CreateHostedZoneResponse xmlns=”https://route53.amazonaws.com/doc/2010-10-01/”> <HostedZone>
<Id>/hostedzone/Z2E93PYZZSCJO9</Id>
<Name>barasu.org.</Name>
<CallerReference>2011020100</CallerReference>
<Config>
<Comment>Route 53 barasu</Comment>
</Config>
</HostedZone>
<ChangeInfo>
<Id>/change/C29GZOGEHIY0LU</Id>
<Status>PENDING</Status>
<SubmittedAt>2011-02-01T00:55:29.249Z</SubmittedAt>
</ChangeInfo>
<DelegationSet>
<NameServers>
<NameServer>ns-494.awsdns-61.com</NameServer>
<NameServer>ns-853.awsdns-42.net</NameServer>
<NameServer>ns-1100.awsdns-09.org</NameServer>
<NameServer>ns-1728.awsdns-24.co.uk</NameServer>
</NameServers>
</DelegationSet>
</CreateHostedZoneResponse>

ns-494.awsdns-61.comやns-853.awsdns-42.net他2台のサーバに登録されたことが確認できる。

digにてちゃんと引けることを確認

dig barasu.org soa @ns-494.awsdns-61.com

登録されたDNS情報は

./dnscurl.pl –keyname my-aws-account — https://route53.amazonaws.com/2010-10-01/hostedzone/Z2E93PYZZSCJO9

で確認可能です。
ランダムな英数字「Z2E93PYZZSCJO9」はかなり重要になります。

[ad#ad-links]

レコード追加
レコード追加もXMLで書いてUploadします。
vps.barasu.org 59.106.183.188を登録するためのXMLは下記の通り

<?xml version=”1.0″ encoding=”UTF-8″?>
<ChangeResourceRecordSetsRequest xmlns=”https://route53.amazonaws.com/doc/2010-10-01/”>
<ChangeBatch>
<Comment>Test for Amazon Route 53</Comment>
<Changes>
<Change>
<Action>CREATE</Action>
<ResourceRecordSet>
<Name>vps.barasu.org.</Name>
<Type>A</Type>
<TTL>300</TTL>
<ResourceRecords>
<ResourceRecord>
<Value>59.106.183.188</Value>
</ResourceRecord>
</ResourceRecords>
</ResourceRecordSet>
</Change>
</Changes>
</ChangeBatch>
</ChangeResourceRecordSetsRequest>

Aレコードの登録は下記コマンド

./dnscurl.pl –keyname my-aws-account — -H “Content-Type: text/xml; charset=UTF-8” -X POST –upload-file MyRecordsRequest.xml https://route53.amazonaws.com/2010-10-01/hostedzone/Z2E93PYZZSCJO9/rrset

削除の場合はCREATEをDELETEに変更して流し直してください。
CNAMEの場合はAをCNAMEに変更したらOKです。

更新はどうするんだろうか???
DELETE, CREATEしか受け付けないっぽいから消して再作成?
まじで???

しばらくbind9ではなくAmazon Route53を利用して運用してみよう。

MXを登録するためのXML

<?xml version=”1.0″ encoding=”UTF-8″?>
<ChangeResourceRecordSetsRequest xmlns=”https://route53.amazonaws.com/doc/2010-10-01/”>
<ChangeBatch>
<Comment>Test for Amazon Route 53</Comment>
<Changes>
<Change>
<Action>CREATE</Action>
<ResourceRecordSet>
<Name>barasu.org.</Name>
<Type>MX</Type>
<TTL>300</TTL>
<ResourceRecords>
<ResourceRecord>
<Value>5 ALT1.ASPMX.L.GOOGLE.COM.</Value>
</ResourceRecord>
</ResourceRecords>
</ResourceRecordSet>
</Change>
</Changes>
</ChangeBatch>
</ChangeResourceRecordSetsRequest>

でもMXのセカンダリを指定しようとすると

<?xml version=”1.0″?>
<ErrorResponse xmlns=”https://route53.amazonaws.com/doc/2010-10-01/”><Error>
<Type>Sender</Type><Code>InvalidChangeBatch</Code>
<Message>Tried to create resource record set barasu.org., type MX but it already exists</Message>
</Error><RequestId>9bc8434e-2db8-11e0-8c35-c944823ddc0a</RequestId></ErrorResponse>

なんてエラーがでる(-_-;;
なんでだーーー