コマンドラインから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