プラットフォーム概要

My-IoTプラットフォーム

My-IoTは、バックエンドとしてAmazonによって提供されているクラウドサービスであるAmazon Web Services(AWS)を利用しています。
My-IoTの機能は、AWSの各サービスを利用して構築されています。
My-IoTプラットフォームの概要を下図に示します。

overall01

項目名

説明

IoT Core

My-IoTエッジの認証、プロビジョニング、My-IoTエッジとAWS間の通信を行うためのMQTTブローカーを提供します

Lambda

WebサイトのAPI処理やWebサーバー機能などの、My-IoTの各ロジックを実行を行います

カスタムLambda

開発者がクラウドアプリケーションとして開発することのできるLambdaです

DynamoDB(イベントデータ)

カスタムLambdaから登録されるイベントデータが格納されています。開発者はカスタムLambdaからイベントを登録することで、イベントをトリガーとして他のカスタムLambdaを実行したり連携することができます

DynamoDB(My-IoTデータ)

エッジ情報やアプリケーション情報など、My-IoTクラウドのデータが格納されています

Elasticsearch

My-IoTデータストアの役割を担っています
My-IoTエッジから送信されたセンサーデータやログデータが格納されています

API Gateway

My-IoTのWebGUIへのアクセスするためのインターフェースを提供します

S3

Webサイトのリソースなど、My-IoTクラウドのリソースが格納されています

各サービスの詳細は、 AWSのドキュメント を参照してください。

My-IoTクラウドでは、My-IoTエッジとの接続や認証、データのやり取りはIoT Coreを介して行い、WebサイトのリクエストはAPI Gatewayを介して行います。
いずれもLambdaで各処理が行われ、Lambdaからセンサーデータが格納されているElasticsearchや、エッジ情報などのシステムデータが格納されているDynamoDB、 Webサイトのリソースなどが格納されているS3にアクセスが行われます。
開発者はカスタムLambdaとイベントデータを用いて、My-IoTクラウド上で動作するクラウドアプリケーションを開発することができます。

My-IoTエッジはOSにLinuxが搭載されており、エッジアプリケーションのインストールやエッジ情報の送信などのMy-IoTエッジを制御するための制御スクリプトと、フローベースドプログラミングツールであるNode-RED などのコンポーネントで構成されています。
開発者はNode-REDフローを用いて、My-IoTエッジ上で動作するエッジアプリケーションを開発することができます。
制御スクリプトを介してインストールされたエッジアプリケーションは、Node-RED上で動作しセンサーとの通信や各種処理を行います。

テナントとテナントID

My-IoTでは、契約ごとに「テナント」という単位でリソースを管理しています。
My-IoTコンソーシアムに入会されますと契約ごとにテナントが用意され、テナントIDと呼ばれるIDが発行されます。
テナントIDはテナントを識別するためのIDであり、サインアップしたMy-IoTアカウントやMy-IoTに登録したMy-IoTエッジ、構築したIoTシステムなどのリソースはテナントに紐づけて管理されます。

利用者がインストールしたクラウドアプリケーションなどが利用するDynamo DBやElasticsearch(My-IoTデータストア)などのリソースはテナント間で共有していますが、格納されているデータはテナントごとに分離して管理されており、テナント間で参照することは不可能となっています。

開発者が登録して公開したエッジアプリケーション、エッジプログラムケーション、クラウドアプリケーションなどはテナントに関わらず全てのユーザーに公開され、誰でも利用可能となります。