IoT の概念と Azure IoT Hub

モノのインターネット (IoT) は、インターネットや他のネットワークを介して他のデバイスやサービスに接続し、データを交換する物理デバイスのネットワークです。 現在、接続されているデバイスは世界中に 100 億台以上あり、毎年さらに追加されています。 必要なセンサーとソフトウェアを埋め込むことができるものはすべて、インターネット経由で接続できます。

Azure IoT Hub は、クラウドでホストされる管理サービスです。IoT アプリケーションとそこに接続されたデバイスとの間における通信において、中央のメッセージ ハブとしての役割を担います。 何百万ものデバイスとそのバックエンド ソリューションとを、高い信頼性で安全に接続することができます。 IoT ハブには、ほぼすべてのデバイスを接続することができます。

クラウドからデバイスを制御するための要求と応答の手法、device-to-cloud テレメトリ、デバイスからのファイルのアップロードなど、サポートされるメッセージング パターンはいくつかあります。 IoT Hub は、監視もサポートしており、デバイスの作成、デバイスの接続、デバイスの失敗を効率的に追跡することができます。

IoT Hub は、数百万のデバイスの同時接続、および IoT ワークロードをサポートするための毎秒数百万のイベントに対応するようにスケーリングします。 IoT ハブのスケーリングについて詳しくは、IoT Hub のスケーリングに関するページを参照してください。 IoT Hub によって提供されるサービス レベルの詳細については、価格に関するページを確認してください。

IoT Hub を他の Azure サービスと統合して、完全なエンド ツー エンドのソリューションを構築できます。 たとえば、次のようなサービスを使います。

  • Azure Event Grid を使うと、信頼性が高く、スケーラブルかつ安全な方法で重要なイベントに迅速に対応できます。

  • Azure Logic Apps は、ビジネス プロセスを自動化します。

  • Azure Machine Learning は、機械学習と AI モデルをソリューションに追加します。

  • Azure Stream Analytics は、デバイスからのデータ ストリーミングに対してリアルタイムの分析計算を実行します。

IoT Central アプリケーションによって、スケーラブルで回復性があるインフラストラクチャの一部として、複数の IoT ハブが使用されています。

各 Azure サブスクリプションにはサービスの悪用を防ぐために既定のクォータ制限が設けられています。 これらの制限が IoT ソリューションの範囲に影響する可能性があります。 現在、サブスクリプションごとの IoT ハブの数は 50 個に制限されています。 クォータの増加を要求する場合は、サポートに連絡してください。 詳細については、IoT Hub のクォータと調整に関するページを参照してください。 クォータ制限の詳細については、次のいずれかの記事を参照してください。

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 では、Storage コンテナー、Event Hubs、Service Bus キュー、Service Bus トピック、Cosmos DB などの、既存のさまざまな Azure サービスに対するカスタム エンドポイントの設定がサポートされています。 エンドポイントを設定したら、これらのエンドポイントのいずれかに IoT データをルーティングして、ダウンストリーム データ操作を実行できます。

IoT Hub は Event Grid とも統合されているため、複数のサブスクライバーにデータをファン アウトできます。 Event Grid は、Azure のさまざまなサービスおよびアプリケーション全体でイベントの管理を簡単にするフル マネージド イベント サービスです。 パフォーマンスとスケールを実現するために、イベント ドリブン アプリケーションとサーバーレス アーキテクチャの構築を簡素化します。 メッセージ ルーティングと Event Grid の使用の違いについては、メッセージ ルーティングと Event Grid の比較に関するページをご覧ください

次のステップ

エンド ツー エンドの IoT ソリューションを試すには、IoT Hub のクイック スタートをご覧ください。

Azure IoT を使用して IoT ソリューションを構築してデプロイする方法の詳細については、以下のページを参照してください。