移動中は絶好のブログ時間となっている、ソラコム 松下(max)です。
先日お客様から「SORACOM Beam や Funnel は便利なんだけど、実機が手元にない場合のクラウド側の開発はどうしたらいい?」というご質問をいただきました。
そこで、今日はデバイス実機が無くても SORACOM Beam や Funnel を使って開発を進めていく方法をご紹介します。
SORACOM Beam / SORACOM Funnel のおさらい
SORACOM Beam(以下、Beam) や SORACOM Funnel(以下、Funnel) は、 デバイスやクラウド開発の負担を減らすサービスです。
技術的なご紹介をするのであれば「 beam.soracom.io
や funnel.soracom.io
へデータを送ると、クラウドやオンプレミスなシステムへTLS化を含めたプロトコル変換と転送を行うプロキシ的サービス」となります。
ご質問の主旨
Beam や Funnel はプロキシ的サービスとして紹介しました。そのため、利用するには beam.soracom.io
や funnel.soracom.io
にアクセスできる必要があるのですが、このアドレス(エンドポイント)は SORACOM のネットワーク内に存在するため SORACOM Air に接続する必要があるのです。
一方で特にクラウド側の開発は Beam や Funnel からデータが送られてこないと開発を進めることができませんが、デバイス実機が手元にない場合は、どうしたらよいのでしょうか?というご質問の主旨です。
## 解決策
モバイル ルーターや、スマートフォンのテザリング機能を利用する方法があります。
SORACOM Air は「IoT/M2M向けデータ通信サービス」と紹介されることが多いのですが、実はモバイル ルーターやスマートフォンでもご利用いただくことができます。
そのため、SORACOM Air SIM を挿したモバイル ルーターやスマートフォンは SORACOM のネットワークにつながる事ができるため beam.soracom.io
や funnel.soracom.io
といった SORACOM が提供しているアドレスにアクセスできます。
その結果、モバイル ルーターやスマートフォンのテザリング機能でぶら下がったパソコンも、モバイル ルーターやスマートフォンを経由して SORACOM が提供しているアドレスにアクセスできるという仕組みです。
あとはパソコンから curl コマンドや nc コマンド等を利用して、デバイスからの送信を疑似的に行っていただけますので、クラウド側の開発も実機が無くとも進めることができます。
さらに進んだ開発環境
先にご紹介した方法ではパソコンからの通信はすべて SORACOM を通ることになります。そのため、たとえばインターネットから隔離されている社内システム(ドキュメントが格納されているファイルサーバ等)へのアクセスができなくなってしまうという課題が浮かび上がってきます。
そうなると「 beam.soracom.io
や funnel.soracom.io
へのアクセスは SORACOM のネットワークでいいが、それ以外は社内LANそれ以外のネットワークを使いたい」となるのですが、実はそれも可能です。
昨今の業務用ルーターには LTE 回線を接続することのできる「ワイヤレス WAN インターフェイス」と、FQDN(DNS名)を基に通信先を変更する「 DNS ルーティング機能(もしくは、フィルタ型ルーティング、ポリシールーティング)」があります。
この機能を組み合わせることで「 beam.soracom.io
への接続はワイヤレス WAN インターフェイスに接続された SORACOM のネットワークを、それ以外の通信は有線LANを使う」といったことが可能となります
設定のアイデアは各種メーカーのページをご覧ください。
注意点
さらに進んだ開発環境でもご案内しましたが、モバイル ルーターやテザリング機能を利用した場合、すべての通信が SORACOM を通ることになりますので、通信量/料にはお気を付けください。
おわりに
SORACOM Beam や Funnel の活用は、デバイスやクラウドの開発の手間を減らすことが可能です。
その開発環境自体も手間なく準備して、より価値の高い開発に時間を向けられるようになれば幸いです。
ソラコム “MAX” 松下