基本構成を理解した上で、各機能を見ていきます。
AWS IoTではAWS側だけでなく、デバイス側も意識する必要があります。
基本構成
AWS IoT の仕組み
IoTデバイスとAWS間はX.509証明書を利用した認証により保護されます。そのため、接続用の証明書をデバイスに紐づける必要があります。
IoTデバイスから送られてきたデータは2種類の用途で使用されます。
デバイスシャドウはデバイスのステータスを管理する機能になります。
ルールエンジンは受信したデータを確認しどのような処理を行うかを定義します。
デバイスの登録情報と証明書は「デバイスレジストリ」に保存されます。
MQTT通信仕様
MQTT の仕様
MQTTはPublish/Subscribeメッセージングモデルでの通信方式となります。
特徴としては「非同期通信」「1対多通信」となります。
通信を行う際は中継用のサーバー(MQTT Server)を介して行います。
メッセージを送信することをPublishと呼んでいます。
データを受信したいデバイスはどのようなデータが欲しいのかをMQTT Serverに事前に要求(登録)します。この動作をSubscribeと呼んでいます。
MQTT ServerはPublishで送られてきたデータをSubscribeの情報を元に適切なデバイスへ転送する機能を実現しています。
MQTTのデータはTopicと呼ばれる階層構造で管理されます。
これはデータを「/(スラッシュ)」で区切ったものになります。Linuxのディレクトリ階層と考えるとわかりやすいかと思います。
デバイス証明書登録
モノの作成
AWSではIoTデバイスを「モノ」という単位で管理します。
英語表記では「AWS IoT things」なので、こちらの方が分かりやすいような気もしますが・・・・
「デバイス証明書作成」→「デバイス証明書にポリシー(権限)を設定」→「デバイス証明書をモノに紐づけ」という流れで設定します。
その後、IoTデバイスに証明書を登録しAWS IoTと通信を行います。
AWS IoT Core ジョブ
ジョブはIoTデバイス側で特定の動作を行わせたい場合に使用します。
例えば、ソフトウェアのアップデートなどをIoTデバイス側で実行させたい場合などに使用します。
AWS IoT ルール
ルールはAWSがIoTデバイスから受信したデータをどのように処理するかを指定します。
例えば、受信したデータをデータベースに登録するとか、特定のデータを受け取った場合にメールで通知するなどの処理を定義します。
コメント