noip.com で DDNS 設定

前回 DigitalOcean にて OpenVPN サーバーをセットアップしました。ずっと起動させっぱなしでも$5/月なわけですが、必要なときにしか起動させない予定です。
shutdown しておくだけだと費用がかかるため snapshot を取得して仮想サーバーは削除してしまいます。必要になったら snapshot から起動させれば IP アドレス以外は元通りになります。
VPN サーバーなので IP アドレスが変わるたびにクライアントの設定を変更するのは面倒です。そこで DDNS っぽいサービスを使って起動時に毎度 DNS を更新することにします。

使うのは https://www.noip.com/ にしてみました。

こんな簡単なスクリプトを /etc/update-noip.sh として書いて /etc/rc.local に書きました。

#!/bin/sh

USERNAME=foobar
PASSWORD=secret
HOSTNAME=*****.noip.me
MYIP=$(curl -s http://httpbin.org/ip | grep origin | awk '{print $2}' | sed -e 's/"//g')

curl -s -u $USERNAME:$PASSWORD -o /dev/null \
  "https://dynupdate.no-ip.com/nic/update?hostname=$HOSTNAME&myip=$MYIP"

90日間更新しないとホスト名が消えちゃうので長期間使わない場合はログインして更新してあげるなりなんなりしてあげる必要があります。有料プランに切り替えればこの制限はなくなります。

DNS は AWS の Route53 を使っているので AWS の API で更新しようかとも思いましたが、IAM でリソース単位の制御はできないということで、ドメインまるごと更新可能なシークレットキーを置いておくのも嫌かなということで今回の構成としました。

Route 53 を使ってみた

【試してみた】Amazon Route 53にドメインを移動してみた。 | Pocketstudio.jp log3 を見て、お、私も試してみようと。

簡単すぎて上記のブログ以上に書くことがない...

個人のドメインはお名前.comのサービス使ってたし、めったにいじることもないから運用面で特に変わるところはないんだけど、費用がどの程度かかるのかは様子見かな。

さて、お仕事のドメインを Route 53 に移すかどうかだな。
BIND とかの運用なくせるなら良いけど内部用 DNS サーバーは必要だし、AWS のサービスとて 100% 信頼できるわけじゃないからなぁ。

でもこれらが全部落ちることはないから大丈夫か。

  • ns-1464.awsdns-55.org.
  • ns-1541.awsdns-00.co.uk.
  • ns-315.awsdns-39.com.
  • ns-754.awsdns-30.net.

ついでに AWS 用アカウントを Google Authenticator で2要素認証にしてみた。