はじめに
enebularは無料で利用できるサービスですが、一部の機能は有償機能として提供しています。
最近リリースした有償機能の一つ、リモートメンテナンス機能についてご紹介しようと思います。
リモートメンテナンス機能でできること
RaspberryPI等のデバイスにPCからSSHログインしてデバイスに対する操作ができます。
これだけだと普通にRaspberryPIを買っただけでもできるので、わざわざenebularを使うまでもないと思われるかもしれませんが、enebularを使うとデバイスがFirewallの中にあったり、グローバルIPを振られていなかったりした場合もSSHで接続できるようになるのです(当然、ネットに接続は必要ですが(^.^))。
従来は、SSHでデバイスのメンテナンスをするにはご家庭内のWiFiやセンシングのためにあちこちで稼働するデバイスと同じネットワークに入ったり、デバイスにグローバルIPを付与して外からアクセスできるようにしたりする必要があり大変だったと思いますが、enebularを使えばこれが簡単にできるようになるのです。
リモートメンテナンス機能の利用準備
上で簡単にできると書いたのですが、準備は少々面倒です。
リモートメンテナンス機能では以下の図に示すように中継サーバを使ったSSHポートフォワード環境を作る必要があります。
SSHポートフォワード環境について以下に図示しました。
中継サーバはグローバルIPを持つSSHが稼働するサーバであり、ユーザご自身で準備頂く必要があります。
①では中継サーバの特定のポート(ここでは10022番ポート)に接続があったらデバイスの22番ポートにフォワードする準備のための接続を行います。
これにより②のトンネルが開通します。
トンネルが開通後に、ユーザPCから中継サーバの10022番ポートに接続するとデバイスの22番ポートにSSH接続できるという仕組みです(③)。
環境構築手順の詳細はマニュアルをご参照ください。
また、準備の際にenebularの画面から鍵をダウンロードするのですが、この鍵は二種類ありちょっと分かりづらいため以下の図で補足します。
ユーザはenebularの画面からRelayServerPublicKeyとDevicePrivateKeyをダウンロードできます。
RelayServerPublicKeyは①SSHポートフォワードの準備のための接続
で利用する鍵であり、ユーザが中継サーバに配置する必要があります。
DevicePrivateKeyは③デバイスにSSH接続
で利用する鍵であり、ユーザが自分のPCに配置する必要があります。
リモートメンテナンスの接続
予め上記の利用準備をしておけば、enebularの画面からデバイスのリモートメンテナンスのオン/オフの切り替えを行えるようになります。
ユーザは、画面から以下を入力して切り替えボタンを押すだけです。
- 中継サーバのホスト名(Relay server host)
- 中継サーバのポート番号(Relay server port number)
- 中継サーバにログインする際に利用するユーザ名(Relay server username)
トグルスイッチがオンに切り替わったらSSHポートフォワードの準備が整ったのでご自分のPCから中継サーバの上記で指定したポート番号にSSH接続すればデバイスにログインすることができます。
ssh -i ~/device-<id>.key enebular-remote-admin@<中継サーバのホスト名> -p <中継サーバのポート番号>
上記で~/device-<id>.key
はenebularからダウンロードしたDevicePrivateKeyです。またenebular-remote-admin
はデバイスにSSH接続するためにenebular-agentが用意した固定のユーザ名です。
おわりに
複数のデバイスを利用してIoTシステムを構築することも多いかと思いますが、このような場合にも一つの中継サーバさえ準備しておけば別ポートを使って複数のデバイスをメンテナンスできますので便利です。
有償機能をご利用頂くと、リモートメンテナンス以外にもスケジュールデプロイ機能や、デバイス起動状態/デバイスログをenebularの画面から確認する機能などが使えるようになります。
ぜひenebularの有償機能の利用をご検討頂ければ幸いです。
すごく宣伝みたいになってしまいましたが以上です(´ㅁ`;)