みなさん、こんにちは ソラコムソリューアーキテクトの小梁川(ニックネーム: koya)です。
2022/9/15に、IoT入門セミナー〜クラウド活用編〜 を開催いたしました。多くのご参加をいただきまして誠にありがとうございます。こちらのブログでは開催したイベントのまとめやデモの動画紹介、そしてお寄せいただいたQAについてご紹介します。
IoT入門セミナー ~クラウド活用編の概要
本セミナーは「なぜ、クラウドやSaaS型サービスがIoTにとって相性が良いのか?」そして「IoTでのクラウド活用は、どのように実現するのか?」という点を中心にご紹介しました。
まずは、冒頭のアンケートでクラウド利用の有無や、利用経験のあるサービスをお伺いしました。
多くのお客様がクラウド利用経験がある一方で、本セミナーにご期待いただいている点が「IoTという技術領域において、クラウドサービスの選定や利用の仕方」にありそうだと推察しています。そこで、本セミナーではクラウドの中でもSaaSに近い「マネージドサービス」の活用を中心に解説しています。
IoTを活用されるお客様という視点ではインフラ設備やIaaSをベースにゼロからシステムを作るのではなく、いち早くデータの可視化や価値化につなげたいというお客様の視点から、構築や運用のコスト、PoCフェーズにおける経済的コストをいかに下げて早く利用につなげるかという点を重視させていただきました。
【デモ動画】 IoTデバイスの設定を変更せずに、データ送信先を切り替える
IoTデバイスからクラウドへデータ送信するには、一般的にはデータ送信先のアドレスをIoTデバイスに書き込みます。しかし、クラウド側の更新によってやむを得ずアドレスが切り替わることもあり得ます。出荷済みIoTデバイスの数が多ければ多いほど、この変更が大変困難な状況を生むことは容易に想像できます。
SORACOM には、クラウドへのデータ転送を中継・支援するサービスがいくつか存在します。IoTデバイスからのデータ送信先はSORACOM上の特定のアドレスに指定しておき、実際の送信先はSORACOM上で設定・変更できるという仕組みです。今回はSORACOM Beamを用いてMQTT通信のデータ転送先を、IoTデバイスの設定には一切手を触れず、SORACOM上の設定変更だけで切り替えるデモを披露しました。
約2分のデモ動画です。
シーンとしては「2つのAWS IoT Coreを開発要と本番用(商用)として運用しており、出荷前には切り替えが必要」というものです。
具体的にはSORACOMの2つのSIMグループA(開発環境)とB(商用環境)に、それぞれ異なるAWS IoTのエンドポイントURL情報、証明書情報を登録しています。そして、SIMグループを変更するだけでデバイス側のプログラムの変更なくアカウントの切り替えが実現できるというものです。
デモのSORACOM と AWS の構成
デモのIoTデバイス側の構成
- 環境センサー : omron 2JCIE-BL
- Raspberry Pi 4 + USBドングル
QA
多くのご質問をお寄せいただきました。ありがとうございます!
デバイスとクラウド間の通信についてのご質問
Q: クラウド側からデバイス内の設定変更は、どのように実現するのですか?
A: こちらはデバイス内のプログラムで意識しておく必要があります。
例えば設定ファイルの書き換えをクラウド側から指示した場合に、プログラムの変数を書き換え可能にしておいたり、再起動しても変更内容が保持されるようになconfigファイルに書き込む(config自体を送る)などが考えられます。クラウド側からの指示、及び設定値の保管としては、 AWS IoT Coreサービスを利用する場合はAWS IoT Device ShadowというJSON型のkey-valueストアを使うなども考えられます。
また、より手軽な方法としては、オンデマンド・リモートアクセスサービス「SORACOM Napter」による、SSHやリモートデスクトップ(RDP)といったリモートメンテナンスでよく利用されるプロトコルでの操作があります。共通して言えるのは、あらかじめデバイスをどの方法でメンテナンスするのかという方針と、その方針に沿った実装や設定をデバイス上で仕掛けておく必要があるということです。
Q: デバイスからSORACOMへ送るにはどのような設定やデータ形式になりますか?
A: SORACOM側では、決まったデータ形式の指定はございません。
HTTP上でJSONフォーマットでも、UDP上でバイナリ形式でも対応できます。むしろ、バックエンド(クラウド側)の要件に合わせて設計してください。また、デバイスとバックエンドの間でデータフォーマットの折り合いがつかない場合でも、バイナリ―パーサー機能やインラインプロセッシング「SORACOM Orbit」によるSORACOM上でのデータフォーマット変換が可能であるため、デバイスではバイナリ志向、クラウド側ではJSON(テキスト志向)とそれぞれの得意領域での設計もできます。
Q: 熱中症を検出する端末から、LTE-M等でクラウドサーバーへデータ蓄積後、PC等でダッシュボードをモニタリングでき監視できますが、データが異常な場合、PCから熱中症端末へアラートを送る事はできますか?
A: この場合、端末側で受信可能な通知サービスが設計のポイントとなります。
通知サービスがなければ、たとえばMQTTによる双方向通信機能(PubSub)での自前実装が必要となるでしょう。Android OSが導入できるならばLINEやSlackといったメッセージングサービスのAPIや、Firebase Cloud Messagingといったプッシュ通知サービスを利用する事も考えられます。SMSによる受信が可能なら Soracom Cloud SMS Delivery という選択肢もあります。いずれにしても、端末側の対応サービスに寄るところが大きいといえるでしょう。
SORACOMサービスの利用に関するご質問
Q: SORACOM Beam等のサービスを利用できるSIMは、SORACOMのIoT SIMのみですか?
A: SORACOM BeamやFunkなど、今回ご紹介したSORACOM サービスの利用についてはSORACOMのIoT SIMからの通信で利用可能です。また、有線接続やWi-FiからSORACOMサービスを利用する方法もあります。それがSORACOM Arcというサービスです。仮想SIMによるVPNを経由することで、SORACOM BeamやFunkがご利用いただけます。
Q: SORACOM Beamを使うメリットは何でしょうか?
A: デバイス側の実装上からクラウドサービスへの依存度を下げることができます。
これにより、例えばクラウド側のURL変更といった事に強くなる点が挙げられます。またIoTデータ通信サービス「SORACOM Air」での通信は、LTE/5G等の通信自体が暗号化されているため、デバイスとSOARCOM間における通信には、HTTPやTCP/UDP、MQTTといった非暗号化プロトコルの利用が可能です。暗号化によるオーバーヘッドをデバイス上から削減できるため、消費電力の低下や通信量の削減に寄与できます。
Q: SORACOM Beamの料金について教えて下さい
A: リクエスト回数に準じた従量課金で以下の通りです。
- 日本カバレッジ 1 リクエスト(*) あたり 0.00099 円
- グローバルカバレッジ 1 リクエスト(*) あたり 0.0000099 USD
エントリーポイント (Beam) へのリクエスト、Beamから転送先へのリクエスト、それぞれを個別に 1 リクエストとカウントします。詳細はSORACOM Beam紹介のページからもご確認いただけます。また、オンライン見積もりツールでは、実際のリクエスト数を基にした料金も算出可能です。ご利用ください。
Q: AWS利用時にBeamsとFunkの使い分け条件を知りたいです。
A: SORACOM Beamはプロトコル変換が主な機能です。デバイスからは HTTP/TCP/UDP で送信し、クラウド側サービスがHTTPSで受け付けるような形もしくは、MQTTをMQTTSとして送信する形でのアーキテクチャデザインのケースで役立つと思います。SORACOM Funkについては、デバイスからのデータ送信はBeamと同様にHTTP/TCP/UDPで送信いただけますが、そのデータは直接AWS LambdaのようなFaaSサービスを呼び出すことができます。 これらよりSORACOM Beamは、バックエンドサービスをREST HTTP/MQTT topicで受けたいケース、SORACOM Funkは、データの解釈を全面的にプログラムロジックに寄せる場合で検討いただくと良いでしょう。
Q: クラウドへの認証情報を外部ベンダーへ保管することに不安を感じています。
A: SOARCOM Beamをはじめとして、SORACOMのサービスはIoTシステム構築を迅速に行うことを目的として提供しています。そのため、IoTシステムで利用する認証情報をSORACOMへ保管いただく事もあります。まず機能面では、SORACOMプラットフォーム上での認証情報の取り扱いは “登録” だけが可能です。お客様が読み出せる仕組みは提供していません。加えて、お客様の情報の取り扱いについてはセキュリティポリシーや、ソラコム情報セキュリティチェックシートをご用意しています。不安点があればご確認ください。これらを照らし合わせた上で、お客様の当該IoTシステムにおけるセキュリティポリシーが合致しない場合は、認証情報の保管をしなくとも利用可能なサービス(例:データ収集・蓄積サービス「SORACOM Harvest」等)もございますので、ご検討ください。もちろんIoTデータ通信としての「SORACOM Air」のみの利用もできます。SORACOMはこのように、必要な機能や利用可能な機能を組み合わせていただけるのが最大のメリットだと考えています。
ライブデモに関するご質問
Q: デモの設定について、設定にはプログラムの知識はそれなりに必要ですか?
A: 設定自体にはクラウドの知識は必要ではありません。
例えばLinux関連やネットワーク関連の用語の意味するところを理解する必要があるという点はあろうかと思います。設定ガイドなどをご参照ください。
Q: デモ機のRaspberry Pi に遠隔からSSH接続しているのは、どのような仕組みですか?SORACOMのネットワークはインターネットから直接アクセスができないプライベートIPだと伺っていました。
A: ご認識の通り、SOACOM IoT SIMに割り当てられるIPアドレス自体はプライベートIPですので、インターネットへ直接露出しない様になっています。そこで本デモでは、SORACOM Napterというサービスを利用しています。SORACOM Napterからデバイスへ短時間利用できるランダムなIP/ポートの組み合わせ情報が提供され、ソラコムを経由してデバイスへの接続トンネルが作成されています。これによりSSHやRDPが可能です。
クラウド側の構築に関するご質問
Q: クラウドを実装するにあたって、クラウド側のセキュリティなどの設計についてソラコム様にコンサルをお願いすることができるのでしょうか?もしくはコンサルができるパートナーを紹介いただくことは可能でしょうか?
A: はい。ご支援させていただくことは可能です。
ソラコムではIoTプロフェッショナルコンサルタントによる、ワークショップ型プロジェクト支援「SORACOM Booster Pack」というプログラムを用意しています。また、IoTのプロが集う「SPSパートナー」をご紹介もできます。詳細は弊社営業もしくは、お問い合わせなどからご相談ください。
参考資料
共有責任モデル:
- AWS: https://aws.amazon.com/jp/compliance/shared-responsibility-model/
- Microsoft Azure: https://learn.microsoft.com/ja-jp/azure/security/fundamentals/shared-responsibility
- Google Cloud: https://cloud.google.com/blog/ja/products/identity-security/google-cloud-risk-protection-program-now-in-preview
MQTT通信以外での活用
本セッションではMQTTをベースにした通信方式をご紹介させていただきましたが、その他のプロトコルでのソラコムのサービスご活用については、以下の過去の資料もご参照ください。
始めてみようでご紹介した最初に取り掛かりでのおすすめについて
IoT デバイス
- SORACOM IoTストアからご購入できるもの
- USBドングル
- IoT スターターキット for Arduino
これらのデバイスを用いたデータ取得についてはSORACOM Device Meetupの資料や、IoTレシピの「Raspberry Piに遠隔から安全にアクセス」が参考になるかと思います。
AWS IoT
- AWS IoT Core 初級ハンズオン (AWS提供:日本語コンテンツ)
本イベントが皆様のお役に立っていれば幸いです。
― ソラコム 小梁川 (koya)