ドメインの設定を変更するというのは神経をつかいます。万一間違えればサーバに接続できなくなる訳で、初期設定や移行時はよくとも、プログラマブルに自在にやるというのは相当大変なものです。 しかしAmazon Web Servicesの提供するRoute53にはAPIがあり、プログラマブルな管理もできるようになっています。そのためのツールとしてRoadworkerを紹介します。

Roadworkerの使い方

RoadworkerはRubygemsでインストールできます。

gem install roadworker

まず最初に現状のデータを取得します。

roadwork -e -o Routefile
vi Routefile

内容は次のような感じです。

# -*- mode: ruby -*-
# vi: set ft=ruby :
hosted_zone "devrel.jp." do
  rrset "devrel.jp.", "A" do
    dns_name "xxxxxxxx.cloudfront.net."
  end

  rrset "devrel.jp.", "MX" do
    ttl 3600
    resource_records(
      "1 aspmx.l.google.com.",
      "5 alt1.aspmx.l.google.com.",
      "5 alt2.aspmx.l.google.com.",
      "10 aspmx2.googlemail.com.",
      "10 aspmx3.googlemail.com."
    )
  end
end

hosted_zone "moongift.co.jp." do
  rrset "moongift.co.jp.", "A" do
    dns_name "xxxxxxxxxxx.cloudfront.net."
  end
end

後はこれを編集し、実行することでRoute53の内容が更新される仕組みです。

roadwork -a --dry-run
roadwork -a

Roadworkerを使うことで、Gitのpushをフックしてエラーがなければ実際に反映するといったような仕組みも作れるようになります。バージョン管理することでより自動化したドメイン管理ができるようになりそうです。

RoadworkerはRuby製、MIT Licenseのオープンソース・ソフトウェアです。

winebarrel/roadworker