読者です 読者をやめる 読者になる 読者になる

コマンドラインからRoute53を操作する

Route 53 Getting Started Guideでは、Hosted Zoneを操作するためのXMLは別途作っておいて、dnscurl.plというスクリプトで署名してリクエストを送信しています。もう少し高レベルのAPIで操作できるものはないかと探してみたところ、cli53というpythonのツールがあったので試してみました。
barnybug/cli53 - GitHub
ubuntuでのセットアップと使い方は以下のとおりです。

セットアップ

インストールしていなければ、python, gitをインストールします。

$ sudo apt-get install python
$ sudo apt-get install python-setuptools
$ sudo apt-get install git

dnspythonをインストールします。

$ sudo easy_install dnspython

boto - Python interface to Amazon Web Servicesをインストールします。

$ git clone http://github.com/boto/boto
$ cd boto
$ sudo python setup.py install

cli53のリポジトリをクローンします。

$ sudo git clone https://github.com/barnybug/cli53.git /usr/local/

.bashrcにcli53のPATHとAWSのアクセスキーを環境変数を追加します。

export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
export PATH=$PATH:/usr/local/cli53

使い方

Hosted Zoneの作成
cli53のディレクトリで以下のコマンドを実行します。

$ ./cli53.py create example.com
HostedZone:
  CallerReference: 013c9b8c-1d13-4f9c-b2b4-ede1c8bf88c5
  Config:
    Comment:
  Id: /hostedzone/XXXXXXXXXXXXXX
  Name: example.com.
ChangeInfo:
  Status: PENDING
  SubmittedAt: 2011-04-11T06:30:25.140Z
  Id: /change/XXXXXXXXXXXX
DelegationSet:
  NameServers:
    - ns-971.awsdns-57.net
    - ns-1822.awsdns-35.co.uk
    - ns-1220.awsdns-24.org
    - ns-13.awsdns-01.com

awsのDNSサーバに登録されるので、ゾーンをRoute53で運用する場合にはNameServersに記載されているサーバをレジストラに登録します。
Resource Recordの登録
以下のコマンドを実行します。Aレコードを追加する例です。

$ ./cli53.py rrcreate example.com foo A XXX.XXX.XXX.XXX --ttl 3600