2011年1月21日金曜日

"Route 53"の利用

スズキです。

今、もっとも熱いAWSのプロダクトは"Elastic Beanstalk"かもしれませんが、
今回のクイックレビューは"Route 53"です。

"Route 53"はAWSが用意したDNSサービスで、
AWSのサービスらしく、すべてAPIが用意されており、
プログラムで、DNSの操作を行うことができます。

まずは、下記より"Route 53"が利用出来るようにサインアップしておく必要があります。
http://aws.amazon.com/route53/

"Route 53"の操作は以下の"dnscurl.pl"を利用するので
http://aws.amazon.com/developertools/Amazon-Route-53/9706686376855511
適当な(Perlが使える)UNIX環境上で作業することにします。

▼"dnscurl.pl"のダウンロード

# curl -OL http://awsmedia.s3.amazonaws.com/catalog/attachments/dnscurl.pl

※必要に応じてCPANモジュールを入れておく必要があります。

▼認証ファイルの作成

# vi secret.conf
--------
%awsSecretAccessKeys = (
 "suz-lab" => {
  id => "AAAAAAAA",
  key => "SSSSSSSS",
 },
);
--------
# chmod 600 secret.conf

※idにはAWSのアクセスキー、keyにはAWSのシークレットキーを記述します。

▼ゾーン作成ファイルの作成

# vi hosted_zone.xml
--------
<?xml version="1.0"?>
<CreateHostedZoneRequest
  xmlns="https://route53.amazonaws.com/doc/2010-10-01/">
 <Name>suz-lab.com.</Name>
 <CallerReference>suz-lab</CallerReference>
 <HostedZoneConfig>
  <Comment>suz-lab zone</Comment>
 </HostedZoneConfig>
</CreateHostedZoneRequest>
--------

▼ゾーンの作成

# perl dnscurl.pl --keyfile secret.conf --keyname suz-lab -- -X POST ¥
> -H "Content-Type: text/xml; charset=UTF-8" ¥
> --upload-file hosted_zone.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/Z3M5OPEHXP6JOU</Id>
  <Name>suz-lab.com.</Name>
  <CallerReference>suz-lab</CallerReference>
  <Config>
   <Comment>suz-lab zone</Comment>
  </Config>
 </HostedZone>
 <ChangeInfo>
  <Id>/change/CP1BS9HXHYGRO</Id>
  <Status>PENDING</Status>
  <SubmittedAt>2011-01-21T11:06:37.156Z</SubmittedAt>
 </ChangeInfo>
 <DelegationSet>
  <NameServers>
   <NameServer>ns-170.awsdns-21.com</NameServer>
   <NameServer>ns-956.awsdns-55.net</NameServer>
   <NameServer>ns-1914.awsdns-47.co.uk</NameServer>
   <NameServer>ns-1102.awsdns-09.org</NameServer>
  </NameServers>
 </DelegationSet>
</CreateHostedZoneResponse>
--------

※Id(Z3M5OPEHXP6JOU)はよく使うので覚えておきます。
※設定すべきネームサーバもいくつか取得できます。

▼ゾーンの確認

# perl dnscurl.pl --keyfile secret.conf --keyname suz-lab -- ¥
> https://route53.amazonaws.com/2010-10-01/hostedzone/Z3M5OPEHXP6JOU
--------
<?xml version="1.0"?>
<GetHostedZoneResponse
  xmlns="https://route53.amazonaws.com/doc/2010-10-01/">
 <HostedZone>
  <Id>/hostedzone/Z3M5OPEHXP6JOU</Id>
  <Name>suz-lab.com.</Name>
  <CallerReference>suz-lab</CallerReference>
  <Config>
   <Comment>suz-lab zone</Comment>
  </Config>
 </HostedZone>
 <DelegationSet>
  <NameServers>
   <NameServer>ns-170.awsdns-21.com</NameServer>
   <NameServer>ns-956.awsdns-55.net</NameServer>
   <NameServer>ns-1914.awsdns-47.co.uk</NameServer>
   <NameServer>ns-1102.awsdns-09.org</NameServer>
  </NameServers>
 </DelegationSet>
</GetHostedZoneResponse>
--------

▼レコード作成ファイルの作成

# vi resource_record.xml
--------
<?xml version="1.0"?>
<ChangeResourceRecordSetsRequest
  xmlns="https://route53.amazonaws.com/doc/2010-10-01/">
 <ChangeBatch>
  <Comment>add test</Comment>
  <Changes>
   <Change>
    <Action>CREATE</Action>
    <ResourceRecordSet>
     <Name>test.suz-lab.com.</Name>
     <Type>A</Type>
     <TTL>14400</TTL>
     <ResourceRecords>
      <ResourceRecord>
       <Value>192.168.1.10</Value>
      </ResourceRecord>
     </ResourceRecords>
    </ResourceRecordSet>
   </Change>
  </Changes>
 </ChangeBatch>
</ChangeResourceRecordSetsRequest>
--------

▼レコードの作成

# perl dnscurl.pl --keyfile secret.conf --keyname suz-lab -- -X POST ¥
> -H "Content-Type: text/xml; charset=UTF-8" ¥
> --upload-file resource_record.xml ¥
> https://route53.amazonaws.com/2010-10-01/hostedzone/Z3M5OPEHXP6JOU/rrset
--------
<?xml version="1.0"?>
<ChangeResourceRecordSetsResponse
  xmlns="https://route53.amazonaws.com/doc/2010-10-01/">
 <ChangeInfo>
  <Id>/change/C25KZ8FGH5KOSA</Id>
  <Status>PENDING</Status>
  <SubmittedAt>2011-01-21T11:33:28Z</SubmittedAt>
 </ChangeInfo>
</ChangeResourceRecordSetsResponse>
--------

▼レコードの確認

# host test.suz-lab.com ns-170.awsdns-21.com
--------
Using domain server:
Name: ns-170.awsdns-21.com
Address: 205.251.192.170#53
Aliases:
test.suz-lab.com has address 192.168.1.10

これで、"Route 53"でDNSレコードの管理ができるようになりました。

--------
http://www.suz-lab.com

0 コメント: