自宅を中野から横浜に引っ越して、一気にいろいろな環境が変わりました。なにしろ中野の自宅は作業場を別に持っていたために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だけしかインストールできなかったのですが、それでもこのスクリプトは動くようです。ちょっと気になるけど。まぁ、動けば良し。
作業場(書斎)の整備進行中
そんなわけで、いろいろと整備進行中なので、引き続きブログに書いていきたいと思います。’