GoDaddyでDynamicDNS的なことをやる

自宅を中野から横浜に引っ越して、一気にいろいろな環境が変わりました。なにしろ中野の自宅は作業場を別に持っていたために1Kで済ませていたので、自宅で何かをやるという感じではありませんでした。それが、今回の横浜では3DK。作業場で1部屋取れますし(法人としては新宿を本店所在地にしましたが・・・)、インターネット接続も以前はマンションに備え付けのものだったのが、今回は光回線をちゃんと引きました。

自宅サーバというほどではないが・・・

自宅の作業場にはディスプレイを2つ置きました。メインは27インチで基本的にはMacBook Proをクラムシェルモードで接続します。もう一つ、24インチも置いて、こちらは何年ものかのWindowsマシン(Core i3のIntel NUC)を。Raspberry Piも24インチ側で画面を出せるようにしています。

さらに、オンプレミスでのディープラーニング環境をもうちょっとちゃんとしようということで、GPU搭載マシンを導入することにしました。その辺のこともあるので、ディスプレイの使い分けについては、もう少し変動するかもしれません。

そんな状態なので、自宅外から(場合によっては自宅内の別の部屋からも)そうしたマシンに接続したくなるわけです。というわけで、自宅サーバ化が必要になる。自宅サーバといっても、Webサーバを置いて、このブログを動かそうとかいうわけではありません。それは、あくまで外部の業者に任せて、安定運用したいですから。でも、ちょっとSmart KeyboardをつないだiPad ProからWindowsデスクトップを使いたいとか、今後はディープラーニング用マシンのNotebookを使いたいということもあるでしょう。でも、使用している光回線(フレッツ光+IIJmio)では固定IPが使えないので、DynamicDNSが必要になるわけです。

GoDaddyはDynamicDNSに対応しているか?

DynamicDNSなんて、何年ぶりだろう?みたいな話なのですが、とにかく実現しないと行けない。

inoccu.comのドメインは、GoDaddyという海外のドメイン取得業者でDNS運用しています。GoDaddyではDynamicDNSのサービスは提供されていません(というか、提供されていないことになっています)。しかし、開発者向けのAPIが提供されていて、DNSのAレコードをAPIで更新することができるのです。ということは、DynamicDNSできるってことじゃん。

godaddy-ddnsを使う

GitHubにはgodaddy-ddnsというスクリプトを公開されている人がいて、有り難くそれを使わせてもらいます。

Pythonスクリプトなので、Raspberry Pi上で1時間おきにCronでスクリプトを呼び出して、最新のIPアドレスに更新します。理論的には平均30分のダウンタイム(IPアドレスの変更に追随出来ていない時間)が生まれる可能性がありますが、その程度なら問題ないでしょう。

ちなみに、上記リポジトリのREADMEには、codecs / email / opensslの3つのモジュールが必要と書いてありますが、pip3でそのとおりインストールしようとしてもcodecsとemailは失敗するかもしれません。私の環境(Raspbian Stretch+Python 3.5.3)ではopensslだけしかインストールできなかったのですが、それでもこのスクリプトは動くようです。ちょっと気になるけど。まぁ、動けば良し。

作業場(書斎)の整備進行中

そんなわけで、いろいろと整備進行中なので、引き続きブログに書いていきたいと思います。’

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。画像認識モデルを活用したアプリや、生成AIを業務に組み込むためのサービス「Gen2Go」の開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。