プラットフォーム概要¶
My-IoTプラットフォーム¶
My-IoTは、バックエンドとしてAmazonによって提供されているクラウドサービスであるAmazon Web Services(AWS)を利用しています。
My-IoTの機能は、AWSの各サービスを利用して構築されています。
My-IoTプラットフォームの概要を下図に示します。
項目名 |
説明 |
---|---|
IoT Core |
My-IoTエッジの認証、プロビジョニング、My-IoTエッジとAWS間の通信を行うためのMQTTブローカーを提供します
|
Lambda |
WebサイトのAPI処理やWebサーバー機能などの、My-IoTの各ロジックを実行を行います
|
カスタムLambda |
開発者がクラウドアプリケーションとして開発することのできるLambdaです
|
DynamoDB(イベントデータ) |
カスタムLambdaから登録されるイベントデータが格納されています。開発者はカスタムLambdaからイベントを登録することで、イベントをトリガーとして他のカスタムLambdaを実行したり連携することができます
|
DynamoDB(一時保存データ) |
カスタムLambdaから登録される一時保存データが格納されています。開発者はカスタムLambdaで処理した結果の一時保存や読み出しを行うことができます。
|
DynamoDB(My-IoTデータ) |
エッジ情報やアプリケーション情報など、My-IoTクラウドのデータが格納されています
|
Elasticsearch |
My-IoTデータストアの役割を担っています
My-IoTエッジから送信されたセンサーデータやログデータが格納されています
|
API Gateway |
My-IoTのWebGUIへのアクセスするためのインターフェースを提供します
|
S3 |
Webサイトのリソースや公開データファイルなど、My-IoTクラウドのリソースが格納されています
|
CloudFront |
クラウドアプリケーションとして登録されたWebアプリのリソースファイルや、公開データファイルにアクセスする際に経由されます
|
WAF |
公開データファイルにアクセスする際に、アクセス元を制限する役割を担っています
|
Cognito |
IoTストアや、Webアプリへアクセスする際のユーザー認証を行います
|
各サービスの詳細は、 AWSのドキュメント を参照してください。
My-IoTクラウドでは、My-IoTエッジとの接続や認証、データのやり取りはIoT Coreを介して行い、IoTストアへのリクエストは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では、「テナント」という単位でリソースを管理しています。
テナントIDはテナントを識別するためのIDであり、サインアップしたMy-IoTアカウントやMy-IoTに登録したMy-IoTエッジ、構築したIoTシステムなどのリソースはテナントに紐づけて管理されます。
利用者がインストールしたクラウドアプリケーションなどが利用するDynamo DBやElasticsearch(My-IoTデータストア)などのリソースはテナント間で共有していますが、格納されているデータはテナントごとに分離して管理されており、テナント間で参照することは不可能となっています。
開発者が登録して公開したエッジアプリケーション、エッジプログラムケーション、クラウドアプリケーションなどはテナントに関わらず全てのユーザーに公開され、誰でも利用可能となります。