Azure IoT Hub とは
モノのインターネット (IoT) は、インターネットや他のネットワークを介して他のデバイスやサービスに接続し、データを交換する物理デバイスのネットワークです。 現在、接続されているデバイスは世界中に 100 億台以上あり、毎年さらに追加されています。 必要なセンサーとソフトウェアを埋め込むことができるものはすべて、インターネット経由で接続できます。
Azure IoT Hub は、クラウドでホストされる管理サービスです。IoT アプリケーションとそこに接続されたデバイスとの間における通信において、中央のメッセージ ハブとしての役割を担います。 何百万ものデバイスとそのバックエンド ソリューションとを、高い信頼性で安全に接続することができます。 IoT ハブには、ほぼすべてのデバイスを接続することができます。
device-to-cloud メッセージ、デバイスからのファイルのアップロード、クラウドからデバイスを制御するための要求と応答の手法など、いくつかのメッセージング パターンがサポートされています。 IoT Hub は、監視もサポートしており、デバイスの作成、デバイスの接続、デバイスの失敗を効率的に追跡することができます。
IoT Hub は、数百万のデバイスの同時接続、および IoT ワークロードをサポートするための毎秒数百万のイベントに対応するようにスケーリングします。
IoT Hub を他の Azure サービスと統合して、完全なエンド ツー エンドのソリューションを構築できます。 たとえば、次のようなサービスを使います。
Azure Event Grid を使うと、信頼性が高く、スケーラブルかつ安全な方法で重要なイベントに迅速に対応できます。
Azure Logic Apps は、ビジネス プロセスを自動化します。
Azure Machine Learning は、機械学習と AI モデルをソリューションに追加します。
Azure Stream Analytics は、デバイスからのデータ ストリーミングに対してリアルタイムの分析計算を実行します。
IoT デバイス
IoT デバイスは、ブラウザーやモバイル アプリなどの他のクライアントとは異なります。 具体的には、IoT デバイスの特性は次のとおりです。
- 多くの場合、人間が操作することのない組み込みシステムです。
- 物理アクセスに大きなコストがかかる離れた場所にデプロイされている場合があります。
- ソリューション バックエンドからのみ到達可能です。
- 電力と処理のリソースが限られている場合があります。
- ネットワーク接続が断続的に切れたり、遅かったり、高コストである場合があります。
- 専用、カスタム、または業界固有のアプリケーション プロトコルを使用する必要がある場合があります。
デバイスの ID と認証
すべての IoT ハブには、それに対する接続が許可されたデバイスおよびモジュールに関する情報を保存する ID レジストリがあります。 デバイスまたはモジュールを接続できるようにするには、そのデバイスまたはモジュールのエントリが IoT ハブの ID レジストリに存在する必要があります。 ID レジストリに保存されている資格情報に基づいて、デバイスまたはモジュールが IoT ハブで認証されます。
デバイスと IoT Hub の間では、2 つの認証方法がサポートされています。 SAS トークンベースの認証または x.509 証明書認証を使用できます。
SAS トークン方式では、各呼び出しに対称キーを関連付けることによって、IoT Hub にデバイスで実行する各呼び出しの認証を提供します。 X.509 認証では、トランスポート層セキュリティ (TLS) 標準接続の確立の一部として IoT デバイスを認証できます。 2 つの方法のどちらを選ぶかは、主に、デバイスの認証に求められる安全さのレベルと、デバイスに秘密キーを安全に格納する機能によって決まります。
IoT Hub Device Provisioning Service を使用して、一度に多数のデバイスを設定し、プロビジョニングできます。
詳しくは、「デバイス管理と制御」をご覧ください。
デバイスの通信
IoT デバイスと IoT Hub の間のインターネット接続は、トランスポート層セキュリティ (TLS) 標準を使ってセキュリティ保護されます。 Azure IoT では TLS 1.2、TLS 1.1、TLS 1.0 の順序でサポートされます。 TLS 1.0 のサポートは、旧バージョンとの互換性を保つために提供されます。 TLS 1.2 を使用するようにハブを構成する方法については、IoT Hub での TLS のサポートを参照してください。これにより、最も高いセキュリティが確保されます。
通常、IoT デバイスは、センサーからクラウド内のバックエンド サービスにデータを送信します。 ただし、対応している通信の種類はそれだけではなく、たとえば、バックエンド サービスからデバイスにコマンドを送信することもできます。 次に例を示します。
- 冷凍トラックから IoT ハブに 5 分おきに温度を送信する。
- 問題の診断のためにデータの送信頻度を変更するコマンドをデバイスに送信するバックエンド サービス。
- 化学プラント内の回分反応器を監視しているデバイスから、温度が特定の値を超えたときにアラートを送信する。
詳しくは、「デバイスのインフラストラクチャと接続」をご覧ください。
デバイス テレメトリ
たとえば、速度や温度などのセンサー データ、見逃されたイベントなどのエラー メッセージ、デバイスが正常な状態であることを示す情報メッセージといったテレメトリを、デバイスから受信します。 IoT デバイスはイベントをアプリケーションに送信して、分析情報を取得します。 アプリケーションでは、異なるエンドポイントでの処理や保存のために、イベントの特定のサブセットが必要になる場合があります。
デバイスのプロパティ
プロパティは IoT ハブから読み取ったり設定したりできます。また、アクションが完了したときに、プロパティを使って通知を送信することができます。 デバイス上の特定のプロパティの例としては、気温が挙げられます。 温度は、デバイス上で更新できる書き込み可能なプロパティにできるほか、デバイスにアタッチされている温度センサーから読み取ることもできます。
IoT Hub 内でプロパティを有効にするには、デバイス ツインまたはプラグ アンド プレイを使用します。
デバイス コマンド
コマンドの例としては、デバイスの再起動があります。 IoT Hub では、デバイス上で直接メソッドを呼び出せるようにすることで、コマンドが実装されます。 ダイレクト メソッドは、デバイスとの要求/応答型通信を表し、すぐに要求の成功または失敗が確定する (ユーザーが指定したタイムアウト後) という点で HTTP 呼び出しに似ています。 この方法は、デバイスが応答できるかどうかに応じて即座に実行するアクションが異なるシナリオで便利です。
デバイス データを操作する
IoT Hub を使用すると、ご自身のデバイス データの価値を、他の Azure サービスを使って引き出せるため、事後対応型の管理から、予測型の問題解決に移行することができます。 お使いの IoT ハブを他の Azure サービスと接続することで、機械学習、分析、AI を活用してリアルタイムのデータを操作し、処理を最適化して、より詳細な分析情報を取得できます。
Note
Azure IoT Hub によって、サービス インスタンスをデプロイする地域の外部に顧客データが格納されたり、処理されたりすることはありません。 詳細については、Azure でのリージョン間レプリケーションに関するページを参照してください。
組み込みエンドポイントが既定でデバイス データを収集する
組み込みエンドポイントが、お使いのデバイスから既定でデータを収集します。 データは、専用の IoT デバイス エンドポイントに対する要求 - 応答パターンを使用して収集され、最大継続期間の 7 日間、デバイスでのアクション実行に使用できます。 デバイス エンドポイントでは次のようなデータが受け入れられます。
- デバイスからクラウドへのメッセージを送信します。
- クラウドからデバイスへのメッセージを受信します。
- ファイルのアップロードの開始。
- デバイス ツインのプロパティを取得して更新します。
- ダイレクト メソッド要求の受信。
IoT Hub のエンドポイントの詳細については、IoT Hub エンドポイントに関するページをご覧ください。
メッセージ ルーティングを使用して他のエンドポイントにデータを送信する
さらに処理するために、データを別のサービスにルーティングすることもできます。 IoT ソリューションがスケールアウトされると、デバイスの数、イベントの量、イベントの種類、各種サービスも変化します。 このパターンに対応するには、柔軟、スケーラブル、一貫性があり、信頼性の高い方法でイベントをルーティングする必要があります。 メッセージ ルーティングの複数の使用方法がわかるチュートリアルについては、「チュートリアル: IoT Hub メッセージ ルーティングを使用してデバイス データを Azure Storage に送信する」をご覧ください。
IoT Hub では、Storage コンテナー、Event Hubs、Service Bus キュー、Service Bus トピック、Cosmos DB などの Azure サービスに対するカスタム エンドポイントの設定がサポートされています。 エンドポイントを設定したら、これらのエンドポイントのいずれかに IoT データをルーティングして、ダウンストリーム データ操作を実行できます。
IoT Hub は Event Grid とも統合されているため、複数のサブスクライバーにデータをファン アウトできます。 Event Grid は、Azure のさまざまなサービスおよびアプリケーション全体でイベントの管理を簡単にするフル マネージド イベント サービスです。 Event Grid を使うと、イベント ドリブン アプリケーションとサーバーレス アーキテクチャの構築が簡単になります。
詳しくは、「IoT Hub のメッセージ ルーティングと Event Grid の比較」をご覧ください。
次のステップ
エンド ツー エンドの IoT ソリューションを試すには、IoT Hub のクイック スタートをご覧ください。
- デバイスから IoT Hub へのテレメトリの送信
- IoT プラグ アンド プレイ デバイスから IoT Hub へのテレメトリの送信
- クイック スタート: IoT ハブに接続されたデバイスを制御する
Azure IoT を使用して IoT ソリューションを構築してデプロイする方法の詳細については、以下のページを参照してください。