さくらのクラウドに「クラウドDNS」サービスが追加されました*1*2。
現在はベータ版なので、月末までは無料で試用できます。さくらのクラウドの各種サービスは API から設定が可能*3なので、昔作ったRoute53 を使ったダイナミック DNSのさくらのクラウド版を構築してみることにしました。要領は昔作った SCHotBackup(さくらのクラウド API を使って日次でアーカイブをとるスクリプトを書いてみた)の時とほぼ同じです。
† 準備
まず、さくらのクラウド DNS でDDNS として運用するゾーンを作成し、リソース ID を取得しておきます。
このゾーンは現在のスクリプトの制限によりDDNS 専用となります(他のレコードを作っても消えてしまいます)ので注意してください。一応ですが他のレコードとの混在に対応してみました。また、API 用のトークンとシークレットについては「コマンドライン操作ツール「sacloud CLI」とNode.js用モジュールを公開しました | さくらのクラウドニュース」を参考に取得しておいてください。
† 実装
突貫で作ったものなので、ある程度 DNS の知識がある人向け用です。
今回も実装はシェルスクリプトです。コードは GitHub のhsur/SCDdns に置いてあります。
† lastip.txt
現在の IP アドレスが格納されるファイルです。chmod 644 などとして、ユーザーの書き込み権限を与えておいてください。
† config.json
token, secret, resource_id, hostname にはそれぞれ、API トークン, API トークンシークレット, クラウドDNS のリソース ID, ホスト名を設定します。
作成したゾーンのゾーン名が ddns.example.com で、ホスト名が abc の場合、FQDN は abc.ddns.example となります。
† scddns.sh
設定が完了したら以下のシェルスクリプトを実行すると、起動したホストのグローバル IP がさくらのクラウドDNS に登録されます。
IP が替わっていなければ API を叩かないようになっているので、cron で10分おきにでも起動すれば良いでしょう。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7889
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。