Azure IoT Hub サービスの概要Overview of the Azure IoT Hub service

Azure IoT Hub へようこそ。Welcome to Azure IoT Hub. この記事では、Azure IoT Hub の概要と、モノのインターネット (IoT) ソリューションを実装したときに、このサービスを使用する理由について説明します。This article provides an overview of Azure IoT Hub and describes why you should use this service to implement an Internet of Things (IoT) solution. Azure IoT Hub は、何百万もの IoT デバイスとソリューション バックエンド間で、セキュリティで保護された信頼性のある双方向通信を実現する、完全に管理されたサービスです。Azure IoT Hub is a fully managed service that enables reliable and secure bidirectional communications between millions of IoT devices and a solution back end. Azure IoT Hub の特長は次のとおりです。Azure IoT Hub:

  • デバイスとクラウドの間における複数の通信オプションを提供します。Provides multiple device-to-cloud and cloud-to-device communication options. これらのオプションには、一方向メッセージング、ファイル転送、要求/応答メソッドなどがあります。These options include one-way messaging, file transfer, and request-reply methods.
  • 組み込みの宣言型メッセージ ルーティングを他の Azure サービスに提供します。Provides built-in declarative message routing to other Azure services.
  • デバイス メタデータと同期状態情報用にクエリ実行可能なストアを提供します。Provides a queryable store for device metadata and synchronized state information.
  • デバイスごとのセキュリティ キーまたは X.509 証明書を使用して、セキュリティ保護された通信とアクセス制御を実現します。Enables secure communications and access control using per-device security keys or X.509 certificates.
  • デバイス接続イベントおよびデバイス ID 管理イベントの詳細な監視を実現します。Provides extensive monitoring for device connectivity and device identity management events.
  • 最も一般的な言語とプラットフォームのデバイスのライブラリが含まれます。Includes device libraries for the most popular languages and platforms.

IoT Hub と Event Hubs の比較に関する記事では、この 2 つのサービスの主な違いについて説明し、IoT ソリューションで IoT Hub を使用する利点を示しています。The article Comparison of IoT Hub and Event Hubs describes the key differences between these two services and highlights the advantages of using IoT Hub in your IoT solutions.

Azure と IoT Hub で IoT ソリューションをセキュリティ保護する方法について詳しくは、「モノのインターネットの徹底的なセキュリティ」をご覧ください。For more information on how Azure and IoT Hub help secure your IoT solution, see Internet of Things security from the ground up.

Azure IoT Hub as cloud gateway in internet of things solution

注意

IoT アーキテクチャの詳細については、「Microsoft Azure IoT Reference Architecture (Microsoft Azure IoT リファレンス アーキテクチャ)」を参照してください。For an in-depth discussion of IoT architecture, see the Microsoft Azure IoT Reference Architecture.

IoT デバイスの接続の課題IoT device-connectivity challenges

IoT Hub とデバイスのライブラリでは、デバイスをソリューション バック エンドに安定して安全に接続するための課題に対処できます。IoT Hub and the device libraries help you to meet the challenges of how to reliably and securely connect devices to the solution back end. IoT デバイスの特性は次のとおりです。IoT devices:

  • 多くの場合、人間が操作することのない組み込みシステムです。Are often embedded systems with no human operator.
  • 物理アクセスにコストがかかる遠隔地に配置されている場合があります。Can be in remote locations, where physical access is expensive.
  • ソリューション バック エンド経由でしか到達できない場合があります。May only be reachable through the solution back end.
  • 電源や処理リソースが限られている場合があります。May have limited power and processing resources.
  • ネットワーク接続が断続的に切れたり、遅かったり、高コストである場合があります。May have intermittent, slow, or expensive network connectivity.
  • 専用、カスタム、または業界固有のアプリケーション プロトコルを使用することが必要になる場合があります。May need to use proprietary, custom, or industry-specific application protocols.
  • 一般的なハードウェアおよびソフトウェア プラットフォームを多数使用して作成できます。Can be created using a large set of popular hardware and software platforms.

上記の要件に加え、IoT ソリューションはスケール、セキュリティ、および信頼性を提供する必要もあります。In addition to the requirements above, any IoT solution must also deliver scale, security, and reliability. そのため、一連の接続要件は、Web コンテナーやメッセージング ブローカーなどの従来のテクノロジを使用すると、実装するのが難しく、時間がかかります。The resulting set of connectivity requirements is hard and time-consuming to implement when you use traditional technologies, such as web containers and messaging brokers.

Azure IoT Hub を使用する理由Why use Azure IoT Hub?

Azure IoT Hub には、デバイスからクラウドおよびクラウドからデバイスへの通信オプションが豊富に用意されています。Azure IoT Hub offers a rich set of device-to-cloud and cloud-to-device communication options. さらに Azure IoT Hub では、次の方法を使用して、デバイスへの接続の信頼性とセキュリティに関する課題に対処できます。Additionally, Azure IoT Hub addresses the challenges that come with reliably and securely connecting to devices in the following ways:

  • デバイス ツインDevice twins. デバイス ツインを使用すると、デバイス メタデータと状態情報を保存、同期、照会できます。Using Device twins, you can store, synchronize, and query device metadata and state information. デバイス ツインは、デバイスの状態に関する情報 (メタデータ、構成、状態など) を格納する JSON ドキュメントです。Device twins are JSON documents that store device state information like metadata, configurations, and conditions. IoT Hub は、IoT Hub に接続する各デバイスにデバイス ツインを保持します。IoT Hub maintains a device twin for each device that you connect to IoT Hub.

  • デバイスごとの認証およびセキュリティで保護された接続Per-device authentication and secure connectivity. 各デバイスを独自のセキュリティ キーを使用してプロビジョニングし、IoT Hub に接続することができます。You can provision each device with its own security key to enable it to connect to IoT Hub. IoT Hub ID レジストリには、デバイスの ID とキーがソリューションに保存されます。The IoT Hub identity registry stores device identities and keys in a solution. ソリューション バックエンドで個々のデバイスを許可リストと拒否リストのいずれかに追加し、デバイスのアクセスを完全に制御できます。A solution back end can add individual devices to allow or deny lists to enable complete control over device access.

  • 宣言型の規則に基づいた、デバイスからクラウドへのメッセージの Azure サービスへのルーティングRoute device-to-cloud messages to Azure services based on declarative rules. IoT Hub では、ルーティング規則に基づいたメッセージ ルートを定義し、ハブがデバイスからクラウドへのメッセージを送信する場所を制御できます。IoT Hub enables you to define message routes based on routing rules to control where your hub sends device-to-cloud messages. ルーティング規則は、コードの記述を必要としません。また、取り込み後のカスタム メッセージ ディスパッチャーに代わることができます。Routing rules do not require you to write any code, and can take the place of custom post-ingestion message dispatchers.

  • デバイスの接続操作の監視Monitoring of device connectivity operations. デバイス ID の管理操作とデバイス接続イベントに関する詳細な操作ログを受信できます。You can receive detailed operation logs about device identity management operations and device connectivity events. この監視機能では、IoT ソリューションによって接続の問題を特定することが可能になります。This monitoring capability enables your IoT solution to identify connectivity issues. これらのログを使用すれば、不適切な資格情報を提供したり、メッセージの送信頻度が高すぎたり、クラウドからデバイスへのメッセージをすべて拒否したりするデバイスを特定できます。Use these logs to identify devices that provide wrong credentials, send messages too frequently, or reject all cloud-to-device messages.

  • 広範なデバイス ライブラリAn extensive set of device libraries. Azure IoT device SDK は、さまざまな言語とプラットフォーム (多くの Linux ディストリビューション、Windows、リアルタイム オペレーティング システムでは C) で使用でき、サポートされています。Azure IoT device SDKs are available and supported for various languages and platforms--C for many Linux distributions, Windows, and real-time operating systems. Azure IoT デバイス SDK はまた、C#、Java、JavaScript など管理対象言語に対応しています。Azure IoT device SDKs also support managed languages, such as C#, Java, and JavaScript.

  • IoT プロトコルと機能拡張IoT protocols and extensibility. ソリューションでデバイス ライブラリを使用できない場合、IoT Hub は、デバイスで MQTT v3.1.1、HTTPS 1.1、または AMQP 1.0 プロトコルをネイティブに使用できるようにするパブリック プロトコルを公開します。If your solution cannot use the device libraries, IoT Hub exposes a public protocol that enables devices to natively use the MQTT v3.1.1, HTTPS 1.1, or AMQP 1.0 protocols. また、以下の方法で、カスタム プロトコルがサポートされるよう IoT Hub を拡張することもできます。You can also extend IoT Hub to support custom protocols by:

    • IoT Hub で認識される 3 つのプロトコルのいずれかにカスタム プロトコルを変換するフィールド ゲートウェイを、Azure IoT Edge で作成します。Creating a field gateway with Azure IoT Edge that converts your custom protocol to one of the three protocols understood by IoT Hub.
    • クラウドで実行されるオープン ソース コンポーネントである Azure IoT プロトコル ゲートウェイをカスタマイズします。Customizing the Azure IoT protocol gateway, an open source component that runs in the cloud.
  • スケールScale. Azure IoT Hub は、デバイスの数百万単位での同時接続、および毎秒数百万単位のイベントに対応できます。Azure IoT Hub scales to millions of simultaneously connected devices and millions of events per second.

ゲートウェイGateways

通常、IoT ソリューションのゲートウェイは、クラウドにデプロイされるプロトコル ゲートウェイと、デバイスでローカルにデプロイされるフィールド ゲートウェイのいずれかになります。A gateway in an IoT solution is typically either a protocol gateway deployed in the cloud or a field gateway deployed locally with your devices. プロトコル ゲートウェイは、MQTT から AMQP への変換など、プロトコル変換を実行します。A protocol gateway performs protocol translation, for example MQTT to AMQP. フィールド ゲートウェイは、現状分析を実行したり、時間の制約がある判断を行って遅延を短縮したりできます。また、デバイス管理サービスを提供したり、セキュリティとプライバシーの制約を強制したりできるほか、プロトコル変換を行うこともできます。A field gateway can run analytics on the edge, make time-sensitive decisions to reduce latency, provide device management services, enforce security and privacy constraints, and also perform protocol translation. どちらの種類のゲートウェイも、デバイスと IoT Hub の間の仲介役として機能します。Both gateway types act as intermediaries between your devices and your IoT Hub.

フィールド ゲートウェイは通常、ソリューションにおけるアクセスと情報フローの管理において大きな役割を果たすため、単純なトラフィック ルーティング デバイス (ネットワーク アドレス変換デバイスやファイアウォールなど) とは異なります。A field gateway differs from a simple traffic routing device (such as a network address translation device or firewall) because it typically performs an active role in managing access and information flow in your solution.

プロトコル ゲートウェイとフィールド ゲートウェイの両方をソリューションに含めることもできます。A solution may include both protocol and field gateways.

IoT Hub のしくみHow does IoT Hub work?

Azure IoT Hub は、デバイスとソリューション バックエンドの間の対話を仲介するサービス支援通信パターンを実装しています。Azure IoT Hub implements the service-assisted communication pattern to mediate the interactions between your devices and your solution back end. サービス支援通信の目的は、管理システム (IoT Hub など) と信頼されていない物理領域にある特殊用途デバイスとの間に、信頼できる双方向の通信パスを確立することです。The goal of service-assisted communication is to establish trustworthy, bidirectional communication paths between a control system, such as IoT Hub, and special-purpose devices in untrusted physical space. このパターンでは次の原則が確立されています。The pattern establishes the following principles:

  • セキュリティがその他のすべての機能に優先されます。Security takes precedence over all other capabilities.

  • デバイスは、要求されていないネットワーク情報を受け入れません。Devices do not accept unsolicited network information. デバイスは送信のみの方法で、すべての接続とルートを確立します。A device establishes all connections and routes in an outbound-only fashion. ソリューション バックエンドからコマンドを受信する場合、デバイスは定期的に接続を開始して、処理待ちのコマンドがないか確認する必要があります。For a device to receive a command from the solution back end, the device must regularly initiate a connection to check for any pending commands to process.

  • デバイスは、IoT Hub など、ピアリングされている既知のサービスへの接続またはルートの確立のみを行います。Devices should only connect to or establish routes to well-known services they are peered with, such as IoT Hub.

  • デバイスとサービス間またはデバイスとゲートウェイ間の通信パスは、アプリケーション プロトコル レイヤーで保護されます。The communication path between device and service or between device and gateway is secured at the application protocol layer.

  • システム レベルの承認と認証は、デバイスごとの ID に基づいており、System-level authorization and authentication are based on per-device identities. アクセス資格情報とアクセス許可をほぼ瞬時に取り消すことができます。They make access credentials and permissions nearly instantly revocable.

  • 電源または接続の問題が原因で接続が散発的なデバイスの双方向通信は、コマンドと通知が接続したデバイスによって受信されるまで保持されることで機能します。For devices that connect sporadically due to power or connectivity concerns, bidirectional communication works by holding commands and notifications until a device connects to receive them. IoT Hub は、送信されるコマンドのデバイス固有のキューを維持しています。IoT Hub maintains device-specific queues for the commands it sends.

  • アプリケーション ペイロード データは個別に保護され、ゲートウェイを介して特定のサービスに転送されます。Application payload data is secured separately for protected transit through gateways to a particular service.

モバイル業界では、サービス支援通信パターンを使用して、Windows プッシュ通知サービスGoogle Cloud MessagingApple Push Notification Service などのプッシュ通知サービスを実装しています。The mobile industry has used the service-assisted communication pattern to implement push notification services such as Windows Push Notification Services, Google Cloud Messaging, and Apple Push Notification Service.

IoT Hub は、ExpressRoute のパブリック ピアリング パス経由でサポートされます。IoT Hub is supported over ExpressRoute's public peering path.

次のステップNext steps

デバイスからメッセージを送信してそのメッセージを IoT Hub から受信する方法とメッセージ ルートを構成する方法については、「IoT Hub でのメッセージの送受信」を参照してください。To learn how to send messages from a device and receive them from IoT Hub, as well as how to configure message routes, see Send and receive messages with IoT Hub.

IoT Hub では、標準ベースのデバイス管理が可能となっており、リモートからデバイスを管理、構成、更新することができます。詳細については、「IoT Hub を使用したデバイス管理の概要」を参照してください。To learn how IoT Hub enables standards-based device management for you to remotely manage, configure, and update your devices, see Overview of device management with IoT Hub.

クライアント アプリケーションを各種デバイス ハードウェア プラットフォームやオペレーティング システムに実装するために、Azure IoT device SDK を使用できます。To implement client applications on a wide variety of device hardware platforms and operating systems, you can use the Azure IoT device SDKs. device SDK には、IoT Hub へのテレメトリの送信とクラウドからデバイスへのメッセージの受信を容易にするライブラリが含まれています。The device SDKs include libraries that facilitate sending telemetry to an IoT hub and receiving cloud-to-device messages. device SDK を使用すると、さまざまなネットワーク プロトコルのうちのいずれかを選択して IoT Hub と通信することができます。When you use the device SDKs, you can choose from various network protocols to communicate with IoT Hub. 詳細については、device SDK に関する情報を参照してください。To learn more, see the information about device SDKs.

実際にコードを作成してサンプルを実行するには、IoT Hub の使用に関するチュートリアルを参照してください。To get started writing some code and running some samples, see the Get started with IoT Hub tutorial.