AWS IoT の仕組み - AWS IoT Core

AWS IoT の仕組み

AWS IoT は、IoT ソリューションの実装に使用できるクラウドサービスとデバイスサポートを提供します。AWS は、IoT ベースのアプリケーションをサポートする多くのクラウドサービスを提供しています。どこから始めればよいかを理解できるように、このセクションでは、IoT ユニバースの概要を知るための重要な概念の図と定義を示します。

IoT ユニバース

一般に、モノのインターネット (IoT) は、この図に示す主要なコンポーネントで構成されています。


                    IoT ユニバース

Apps

アプリケーションを使用すると、エンドユーザーは IoT デバイスと、それらのデバイスが接続されているクラウドサービスによって提供される機能にアクセスできます。

クラウドサービス

クラウドサービスは、インターネットに接続されている分散型の大規模データストレージおよび処理サービスです。その例を以下に示します。

  • IoT 接続および管理サービス。

    AWS IoT は、IoT 接続および管理サービスの一例です。

  • Amazon Elastic Compute Cloud や AWS Lambda などのコンピューティングサービス。

  • Amazon DynamoDB などのデータベースサービス

Communications

デバイスは、さまざまな技術やプロトコルを使用してクラウドサービスと通信します。その例を以下に示します。

  • Wi-Fi/ブロードバンドインターネット

  • ブロードバンドセルラーデータ

  • 狭帯域セルラーデータ

  • Long-range Wide Area Network (LoRaWAN)

  • 独自の RF 通信

Devices

デバイスとは、インターフェイスと通信を管理するハードウェアの一種です。デバイスは、通常、監視および制御対象の実際のインターフェイスの近くに配置されます。デバイスには、マイクロコントローラ、CPU、メモリなどのコンピューティングおよびストレージリソースを含めることができます。その例を以下に示します。

  • Raspberry Pi

  • Arduino

  • 音声インターフェイスアシスタント

  • LoRaWAN およびデバイス

  • Amazon Sidewalk デバイス

  • カスタム IoT デバイス

Interfaces

インターフェイスは、デバイスを物理世界に接続するコンポーネントです。

  • ユーザーインターフェイス

    デバイスとユーザーが相互に通信することを可能にするコンポーネント。

    • 入力インターフェイス

      ユーザーがデバイスと通信できるようにする

      例: キーパッド、ボタン

    • 出力インターフェイス

      デバイスがユーザーと通信できるようにする

      例:英数字表示、グラフィック表示、インジケーターライト、アラームベル

  • センサー

    デバイスが理解できる方法で外部で何かを測定または感知する入力コンポーネント。その例を以下に示します。

    • 温度センサー (温度をアナログ電圧に変換)

    • 湿度センサー (相対湿度をアナログ電圧に変換)

    • アナログ-デジタル変換器 (アナログ電圧を数値に変換)

    • 超音波距離測定単位 (距離を数値に変換)

    • 光学センサー (光レベルを数値に変換)

    • カメラ (画像データをデジタルデータに変換)

  • アクチュエータ

    デバイスが外部で何かを制御するために使用できる出力コンポーネント。その例を以下に示します。

    • ステッピングモーター (電気信号を動きに変換)

    • リレー (高電圧と電流を制御)

AWS IoT サービスの概要

IoT ユニバースでは、AWS IoT は世界とインタラクションするデバイスおよびそれらのデバイスと AWS IoT の間で送受信されるデータをサポートするサービスを提供します。AWS IoT は、この図に示されているサービスで構成されており、お客様の IoT ソリューションをサポートします。


                    AWS IoT アーキテクチャ

AWS IoT デバイスソフトウェア

AWS IoT は、お客様の IoT デバイスをサポートするためにこのソフトウェアを提供しています。

AWS IoT Greengrass

AWS IoT Greengrass では、AWS IoT をエッジデバイスに拡張します。それによりエッジデバイスは、生成するデータに対してローカルでアクションを実行し、管理、分析、耐久性のあるストレージのためにクラウドを使用できます。AWS IoT Greengrass を使用すると、コネクテッドデバイスで AWS Lambda 関数、Docker コンテナ、またはその両方を実行し、機械学習モデルに基づいて予測を実行し、デバイスデータを常に同期させ、他のデバイスと安全に通信できます。これはインターネットに接続していないときでも可能です。

AWS IoT Device Tester

FreeRTOS および AWS IoT Greengrass 用 AWS IoT Device Tester は、マイクロコントローラ用のテストオートメーションツールです。 AWS IoT Device Tester は、デバイスをテストして FreeRTOS または AWS IoT Greengrass を実行し AWS IoT サービスと相互運用するかどうかを確認します。

AWS IoTDevice SDKs

AWS IoT Device SDK と Mobile SDK は、デバイスを AWS IoT に効率的に接続するのに役立ちます。AWS IoT Device および Mobile SDK には、オープンソースライブラリ、サンプル付きの開発者ガイド、移植ガイドが含まれているので、選択したプラットフォーム上で革新的な IoT 製品またはソリューションを構築できます。

FreeRTOS

FreeRTOS は、マイクロコントローラー用のオープンソースのリアルタイムオペレーティングシステムであり、IoT ソリューションに小型で低電力のエッジデバイスを含めることを可能にします。FreeRTOS には、カーネルと、多くのアプリケーションをサポートする一連のソフトウェアライブラリが含まれています。FreeRTOS システムは、小型で低電力のデバイスを AWS IoT に安全に接続し、AWS IoT Greengrass を実行するより強力なエッジデバイスをサポートできます。

AWS IoT コントロールサービス

IoT ソリューション内のデバイスを管理するには、次の AWS IoT サービスに接続します。

AWS IoT Core

AWS IoT Core は、コネクテッドデバイスが安全にクラウドアプリケーションやその他のデバイスとやり取りできるようにするマネージド型クラウドサービスです。 AWS IoT Core は多くのデバイスやメッセージをサポートし、それらのメッセージを処理して AWS IoT エンドポイントおよびその他のデバイスにルーティングできます。 AWS IoT Core を使用すると、アプリケーションは、接続されていない場合でも、すべてのデバイスとインタラクションできます。

AWS IoT デバイスの管理

AWS IoT Device Management サービスは、デバイスフリートを構成する大量のコネクテッドデバイスを追跡、モニタリング、および管理するのに役立ちます。AWS IoTDevice Management サービスは、IoT デバイスがデプロイされた後に適切かつ安全に機能することを確実にするのに役立ちます。また、デバイスへのアクセスのためのセキュアなトンネリングを提供し、デバイスの正常性を監視し、問題を検出してリモートでトラブルシューティングし、デバイスのソフトウェアとファームウェアの更新を管理するサービスも提供します。

AWS IoT Device Defender

AWS IoT Device Defender は、IoT デバイスのフリートを保護するのに役立ちます。AWS IoTDevice Defender は、IoT 設定を継続的に監査し、セキュリティのベストプラクティスから逸脱していないことを確認します。AWS IoTDevice Defender は、ID 証明書が複数のデバイス間で共有されている、または ID 証明書が取り消されたデバイスが AWS IoT Core に接続しようとしているなど、セキュリティリスクを引き起こす可能性のある IoT 設定のギャップを検出すると、アラートを送信します。

AWS IoT Things Graph

AWS IoT Things Graph は、さまざまなデバイスとウェブサービスを視覚的に接続して IoT アプリケーションを構築できるようにするサービスです。AWS IoTThings Graph は、デバイスとウェブサービス間のインタラクションを接続および調整するための視覚的なドラッグアンドドロップインターフェイスを提供するため、IoT アプリケーションを効率的に構築できます。

AWS IoT データサービス

IoT ソリューションのデバイスからのデータを分析し、以下の AWS IoT サービスを使用して適切な措置を講じます。

AWS IoT Analytics

AWS IoT Analytics を使用すると、大量の非構造化 IoT データに対して高度な分析を効率的に実行および運用できます。AWS IoTAnalytics では、IoT デバイスからのデータの分析に必要な難しい各ステップを自動化することができます。AWS IoTAnalytics では、分析用の時系列データストアに保存する前に IoT データのフィルタリング、変換を行い、強化します。組み込みの SQL クエリエンジンまたは機械学習を使用して、1 回限りのクエリまたはスケジュールされたクエリを実行してデータを分析できます。

AWS IoT SiteWise

AWS IoT SiteWise は、施設内のゲートウェイ上で動作するソフトウェアを提供することにより、MQTT メッセージまたは API によって産業機器から渡されたデータを大規模に収集、保存、整理、監視します。ゲートウェイはオンプレミスのデータサーバーに安全に接続し、データを収集して整理し、AWS クラウドに送信するプロセスを自動化します。

AWS IoT Events

AWS IoT Events は、IoT センサーとアプリケーションからのイベントを検出して応答します。Events とは、移動信号を使用して照明および防犯カメラを起動させる人感センサーなど、想定以上の複雑な状況があることを示すデータのパターンです。AWS IoTEvents は、複数の IoT センサーやアプリケーションからのデータを継続的にモニタリングし、 AWS IoT Core 、IoT SiteWise、DynamoDB などの他のサービスと統合することで、早期検出と独自の洞察を実現します。

AWS IoT Core のサービス

AWS IoT Core は、IoT デバイスを AWS クラウドに接続するサービスを提供します。これにより、他のクラウドサービスやアプリケーションがコネクテッドデバイスとインタラクションできるようになります。


                    デバイスゲートウェイ、メッセージブローカー、ルールエンジン、デバイスシャドウ、および AWS IoT Core が提供する他のサービスを表示する 
				AWS IoT Core
			 の概要ビュー

次のセクションでは、図に示されている各 AWS IoT Core サービスについて説明します。

AWS IoT Core メッセージングサービス

AWS IoT Core 接続サービスは、IoT デバイスとの安全な通信を提供し、デバイスと AWS IoT の間で送受信されるメッセージを管理します。

デバイスゲートウェイ

デバイスから AWS IoT へのセキュアかつ効率的な通信を可能にします。デバイス通信は X.509 証明書を使用するセキュアなプロトコルによって保護されます。

メッセージブローカー

デバイスと AWS IoT アプリケーションが相互にメッセージをパブリッシュおよび受信するためのセキュアなメカニズムを提供します。パブリッシュとサブスクライブには、MQTT を直接または WebSocket を介して使用できます。AWS IoT がサポートするプロトコルの詳細については、デバイス通信プロトコル を参照してください。デバイスおよびクライアントは、HTTP REST インターフェイスを使用して、メッセージをブローカーにデータを発行することもできます。

メッセージブローカーは、サブスクライブしているデバイスと、Device Shadow サービスやルールエンジンなどの他の AWS IoT Core サービスにデバイスデータを配信します。

AWS IoT Core for LoRaWAN

AWS IoT Core for LoRaWAN を使用すると、LoRaWAN Network Server (LNS) を開発および運用することなく、LoRaWAN デバイスとゲートウェイを AWS に接続することで、プライベート LoRaWAN ネットワークを設定できます。LoRaWAN デバイスから受信したメッセージは、ルールエンジンに送信され、そこでフォーマットされて、他の AWS IoT サービスに送信されます。

ルールエンジン

ルールエンジンは、ストレージと追加処理のために、メッセージブローカーから他の AWS IoT サービスにデータを接続します。例えば、DynamoDB テーブルを挿入、更新、または照会したり、Rules エンジンで定義した式に基づいて Lambda 関数を呼び出したりできます。SQL ベースの言語を使用して、メッセージペイロードからデータを選択し、データを処理して、他のサービス (Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB、AWS Lambda など) にデータを送信できます。メッセージブローカーや他のサブスクライバーにメッセージを再発行するルールを作成することもできます。詳細については、「」を参照してくださいAWS IoT のルール

AWS IoT Core コントロールサービス

AWS IoT Core コントロールサービスは、デバイスのセキュリティ、管理、および登録機能を提供します。

カスタム認証サービス

カスタム認証サービスと Lambda 関数を使用して、独自の認証および認可戦略を管理できるカスタムオーソライザーを定義できます。カスタムオーソライザーにより、AWS IoT はデバイスを認証し、ベアラトークンの認証と認証戦略を使用してオペレーションを認証することができます。

カスタムオーソライザーは、JSON Web Token の検証や OAuth プロバイダーのコールアウトなど、さまざまな認証戦略を実装できます。MQTT オペレーションを認証するためにデバイスゲートウェイが使用するポリシー文書を戻す必要があります。詳細については、「」を参照してくださいカスタム認証

デバイスプロビジョニングサービス

デバイスに必要なリソース (モノのオブジェクト、証明書、1 つ以上のポリシー) を記述したテンプレートを使用して、デバイスをプロビジョニングできます。モノのオブジェクトは、デバイスを記述する属性を含むレジストリのエントリです。デバイスは AWS IoT で認証するために証明書を使用します。ポリシーは、デバイスが AWS IoT で実行できるオペレーションを決定します。

テンプレートには、ディクショナリ (マップ) の値で置き換えられる変数が含まれています。同じテンプレートを使用して、ディクショナリのテンプレート変数に異なる値を渡すだけで、複数のデバイスをプロビジョニングすることができます。詳細については、「」を参照してくださいデバイスプロビジョニング

グループレジストリ

グループはこれらをグループに分類することで、複数のデバイスを一度に管理できるようにします。グループ内にもグループが含まれているので、グループ階層を構築することもできます。親グループで行った操作は、子グループでも適用されます。親グループ内のすべてのデバイスおよび子グループ内のすべてのデバイスにも同じアクションが適用されます。グループに付与されたアクセス許可は、グループ内のすべてのデバイスとそのすべての子グループに適用されます。詳細については、「」を参照してくださいAWS IoT によるデバイスの管理

ジョブサービス

AWS IoT に接続された 1 つ以上のデバイスに送信され実行される一連のリモート操作を定義できます。たとえば、一連のデバイスに対して、アプリケーションやファームウェア更新のダウンロードとインストール、再起動、証明書のローテーション、またはリモートトラブルシューティングオペレーションの実行を指示するジョブを定義できます。

ジョブを作成するには、実行するリモートオペレーションの説明と、それを実行するターゲットのリストを指定します。ターゲットは個々のデバイス、グループ、またはその両方にすることができます。詳細については、「」を参照してくださいJobs

[Registry]

AWS クラウドで各デバイスに関連付けられたリソースの整理に使用されます。デバイスを登録し、各デバイスに最大 3 つのカスタム属性を関連付けることができます。また、各デバイスに証明書と MQTT クライアント ID を関連付けて、デバイスの管理とトラブルシューティングの機能を強化することもできます。詳細については、「」を参照してくださいAWS IoT によるデバイスの管理

セキュリティとアイデンティティサービス

AWS クラウドの安全性の責任共有を提供します。デバイスは、メッセージブローカーにデータをセキュアに送信するために、認証情報を安全な場所に保管する必要があります。メッセージブローカーとルールエンジンは、AWS のセキュリティ機能を使用して、デバイスまたは他の AWS のサービスにデータをセキュアに送信します。詳細については、「」を参照してくださいAuthentication

AWS IoT Core データサービス

AWS IoT Core データサービスにより、常に接続されていないデバイスにおいても、IoT ソリューションが信頼性の高いアプリケーション体験を提供できます。

デバイスシャドウ

デバイスの現在の状態情報の保存と取得に使用される JSON ドキュメントです。

Device Shadow サービス

Device Shadow サービスはデバイスの状態を維持し、デバイスがオンラインであるかどうかにかかわらず、アプリケーションがデバイスと通信できるようにします。デバイスがオフラインの場合、Device Shadow サービスは接続されたアプリケーションのためにデータを管理します。デバイスが再接続すると、Device Shadow サービス内のシャドウの状態と同期します。デバイスは、常に接続されていない可能性のあるアプリケーションやその他のデバイスで使用できるように、現在の状態をシャドウに発行することもできます。詳細については、「」を参照してくださいAWS IoT Device Shadow サービス

AWS IoT Core サポートサービス

Alexa Voice Service (AVS) Integration for AWS IoT

コネクテッドデバイスで Alexa Voice を利用できるようにします。AVS for AWS IoT は Alexa を統合するコストと複雑さを緩和します。この機能は、大量の計算処理およびメモリのオーディオタスクをデバイスからクラウドにオフロードするために AWS IoT を使用します。その結果、エンジニアリング部品表 (EBOM) コストが削減されるため、デバイスメーカーは、費用対効果の高い方法で Alexa をリソースに制約のある IoT デバイスにもたらし、消費者は自宅、オフィス、ホテルの部屋の一部で Alexa と直接話をしてアンビエントエクスペリエンスを体験することができます。

AVS for AWS IoT は、1 MB 未満の組み込み RAM を搭載した ARM Cortex M クラスなど、Alexa の組み込み機能を MCU で有効にします。これを行うには、AVS は、クラウド内の仮想 Alexa 組み込みデバイスにメモリと計算タスクをオフロードします。これにより、EBOM コストを最大 50% 削減できます。詳細については、「」を参照してくださいAlexa Voice Service (AVS) Integration for AWS IoT

AWS IoT Core の Amazon Sidewalk 統合

Amazon Sidewalk は、接続オプションを改善してデバイスの連携を改善する共有ネットワークです。Amazon Sidewalk は、ペットや貴重品を探すデバイス、スマートホームセキュリティと照明制御を提供するデバイス、家電製品やツールのリモート診断を提供するデバイスなど、お客様のさまざまなデバイスをサポートしています。 AWS IoT Core の Amazon Sidewalk 統合により、デバイスメーカーは Sidewalk デバイスフリートを AWS IoT クラウドに追加できます。

詳細については、「 AWS IoT Core の Amazon Sidewalk 統合」を参照してください。