2014年5月1日

Amazon Route 53 用 Dynamic DNS 更新ツールを Go で作った話

なんか記事にするほどのことでもないんだけど。じゃあ記事のするほどのことって何だよ、俺にあるのかよ、って思ったので、深く考えずに書く。

oov.ch で使うネームサーバーとして今までは VALUE-DOMAIN のものを利用してて、特に不満もなかったものの Route 53 の使い方を把握しておいた方が今後のためにもなると思ったので、試しに移行してみることにした。

レコード情報はそんなに量もないし手作業でチマチマ入力して、dig コマンドで適宜応答も確認しながらやったのでこれといったトラブルもなく比較的スムースに移行は完了した。っぽい。

ただ、遊び用の自宅サーバーには Dynamic DNS 的な奴が必要で、これは編集画面でチマチマ触ってるだけじゃ無理そうなのでちょっと調べた。すると Amazon Route 53 Authentication Tool for Curl と AWS Route 53 Dynamic DNS Updater Script を使うと比較的簡単にできるという情報がゴロゴロ転がってきた。

それらをそのまま使えば多分解決するものの、そんなに難しいことをするわけじゃないだろうし自作してみてもいいかな、と思ってGo言語で作ってみることにした。できた。

https://github.com/oov/r53ddns

AWS へのアクセスには github.com/crowdmob/goamz/aws を使った。
Route 53 周りも一応実装はあったものの、ChangeResourceRecordSet でバッチ処理が出来なかったりとか若干イケてない気配がしたので、この辺に関しては自前で用意した。

自分が触るサーバは間違いなく Go が使える状態になっているので go get すればすぐ使えて便利だし、あと、あれだ、あの、なんでもない。

--ip オプションのデフォルト値は http://checkip.dyndns.org/ になってるけど、はるか昔に自分で自分のために用意した GAE 上で動く同じようなものがあるので、自分の環境ではこっちを使うようにした。
Clip to Evernote