2022年10月末に「実行環境間の接続」という機能をリリース致しました。
実行環境間の接続は、エージェント実行環境で動作するフローと、クラウド実行環境で動作するフローの間で相互にメッセージのやり取りをできるようにする機能です。
ユーザーより、どんなユースケースなのかわからない
、というお声をいただきましたので、簡単にご紹介したいと思います。
想定するユースケース
例えば、この図のようなデバイスで集めたセンサデータをデータベースに格納することを考えます。
デバイス(エージェント実行環境)からセンサーデータをクラウド実行環境にデータを送信し、クラウド実行環境からデータベースにデータを送信するというような使い方を想定しています。実行環境間はMQTT通信のためHTTP通信よりもデータ量が少なくてすみます。
と、ここで疑問が生じます。
直接デバイスからデータ送った方が合理的ではないだろうか、と。これには理由があります。
直接データを送ることのリスク
確かに、直接データベースにデータを送信する方が簡単そうです。
しかし、図のようにデバイスの台数が増えると、そのデバイスの数だけデータベースのクレデンシャル情報を配布する必要があり、その分セキュリティのリスクは高まります。
変更管理のリスク
また、新しい別のシステムにデータを送信したくなった場合を考えます。
デバイス側のフローを全て変更する必要が出てきます。変更作業が増えますし、そもそも出荷後のデバイスの変更はあまりやりたくないと考える人もいるかも知れません。
あいだにクラウド実行環境を挟む理由
これらの課題をクラウド実行環境と実行環境間の接続機能を使うことで解決します。
クラウド実行環境がデータベースへのデータ送信の責務を担うことで、データベースアクセスのためのクレデンシャル情報をデバイス全部に配布する必要がなくなります。
デバイスを増やしたいときも、同じNode-REDフローが使用できるので、デバイスの製造や出荷のプロセスもシンプルになります。
別のシステムにデバイスからのデータを送信したくなったらクラウド実行環境上のフロー1箇所だけを変更すればよいです。
このようにクラウド実行環境があいだにあることで様々なメリットを享受することができます。
まとめ
IoTでたくさんのデバイスからのデータを収集するときに「実行環境間の接続」機能をぜひご検討ください。ご不明点があればお気軽にお問い合せください。
よろしくお願い致します。
参考ドキュメント