IoT Edge デバイスをゲートウェイとして使用する方法How an IoT Edge device can be used as a gateway

IoT Edge ソリューションのゲートウェイは、デバイス接続とエッジ分析を IoT デバイスに提供します。ゲートウェイ以外ではこれらの機能は提供されません。Gateways in IoT Edge solutions provide device connectivity and edge analytics to IoT devices that otherwise wouldn't have those capabilities. Azure IoT Edge を使うと、目的が接続、ID、エッジ分析のいずれに関係していても、IoT ゲートウェイのあらゆるニーズを満たすことができます。Azure IoT Edge can be used to satisfy any need for an IoT gateway, whether it's related to connectivity, identity, or edge analytics. この記事のゲートウェイ パターンでは、ダウンストリーム デバイスの接続の特性とデバイスの ID のみが示されており、ゲートウェイでのデバイス データの処理方法は示されていません。Gateway patterns in this article only refer to characteristics of downstream device connectivity and device identity, not how device data is processed on the gateway.

パターンPatterns

ゲートウェイとして IoT Edge デバイスを使用する方法には、透過、プロトコル変換、ID 変換の 3 パターンがあります。There are three patterns for using an IoT Edge device as a gateway: transparent, protocol translation, and identity translation.

各パターンの大きな違いは、透過的なゲートウェイでは、追加の処理を必要とせずに、ダウンストリーム デバイスと IoT Hub 間でメッセージが渡されることです。A key difference between the patterns is that a transparent gateway passes messages between downstream devices and IoT Hub without needing any additional processing. ただし、プロトコル変換と ID 変換では、通信を可能にするためにゲートウェイで処理する必要があります。Protocol translation and identity translation, however, require processing on the gateway to enable communication.

ゲートウェイでは IoT Edge モジュールを使用して、ダウンストリーム デバイスから IoT Hub にメッセージを渡す前に、エッジで分析や事前処理を実行できます。Any gateway can use IoT Edge modules to perform analytics or pre-processing at the edge before passing messages from downstream devices to IoT Hub.

ダイアグラム - 透過、プロトコル、および ID ゲートウェイ パターン

透過パターンTransparent pattern

"透過的" ゲートウェイ パターンの場合、IoT Hub に理論的に接続できるデバイスは、代わりにゲートウェイ デバイスに接続できます。In a transparent gateway pattern, devices that theoretically could connect to IoT Hub can connect to a gateway device instead. ダウンストリーム デバイスは独自の IoT Hub ID を持ち、MQTT、AMQP、HTTP のいずれかのプロトコルを使用しています。The downstream devices have their own IoT Hub identities and are using any of the MQTT, AMQP, or HTTP protocols. ゲートウェイは、デバイスと IoT Hub の間の通信を単純に受け渡します。The gateway simply passes communications between the devices and IoT Hub. デバイスも、IoT Hub を介してそれと対話しているユーザーも、ゲートウェイが通信を仲介していることを認識しません。Both the devices and the users interacting with them through IoT Hub are unaware that a gateway is mediating their communications. このように認識されないことは、ゲートウェイが "透過的" と見なされることを意味します。This lack of awareness means the gateway is considered transparent.

IoT Edge ランタイムには、透過的なゲートウェイ機能が含まれています。The IoT Edge runtime includes transparent gateway capabilities. 詳細については、「透過的なゲートウェイとして機能するように IoT Edge デバイスを構成する」を参照してください。For more information, see Configure an IoT Edge device to act as a transparent gateway.

プロトコル変換パターンProtocol translation pattern

"プロトコル変換" ゲートウェイは、透過的なゲートウェイ パターンとは対照的に "非透過的" ゲートウェイとも呼ばれます。A protocol translation gateway is also known as an opaque gateway, in contrast with the transparent gateway pattern. このパターンの場合、MQTT、AMQP、または HTTP をサポートしていないデバイスでは、代わりにゲートウェイ デバイスを使用して IoT Hub にデータを送信できます。In this pattern, devices that do not support MQTT, AMQP, or HTTP can use a gateway device to send data to IoT Hub on their behalf. ゲートウェイは、ダウンストリーム デバイスによって使用されているプロトコルを認識します。またゲートウェイは、IoT Hub 内で ID を持つ唯一のデバイスです。The gateway understands the protocol used by the downstream devices, and is the only device that has an identity in IoT Hub. すべての情報は、1 つのデバイスつまりゲートウェイから送信されているように見えます。All information looks like it is coming from one device, the gateway. クラウド アプリケーションでデバイスごとにデータを分析する必要がある場合、ダウンストリーム デバイスは追加の識別情報をメッセージに埋め込む必要があります。Downstream devices must embed additional identifying information in their messages if cloud applications want to analyze the data on a per-device basis. また、ツインやメソッドなどの IoT Hub プリミティブは、ゲートウェイ デバイスでのみ使用でき、ダウンストリーム デバイスでは使用できません。Additionally, IoT Hub primitives like twins and methods are only available for the gateway device, not downstream devices.

IoT Edge ランタイムには、プロトコル変換機能は含まれていません。The IoT Edge runtime does not include protocol translation capabilities. このパターンでは、使用されるハードウェアやプロトコルに固有であることが多いカスタムまたはサード パーティのモジュールが必要です。This pattern requires custom or third-party modules that are often specific to the hardware and protocol used. Azure Marketplace には、選択できるプロトコル変換モジュールがいくつか含まれています。Azure Marketplace contains several protocol translation modules to choose from.

ID 変換パターンIdentity translation pattern

"ID 変換" ゲートウェイ パターンの場合、IoT Hub に接続できないデバイスは、代わりにゲートウェイ デバイスに接続できます。In an identity translation gateway pattern, devices that cannot connect to IoT Hub can connect to a gateway device, instead. ゲートウェイでは、ダウンストリーム デバイスに代わって、IoT Hub の ID とプロトコル変換が提供されます。The gateway provides IoT Hub identity and protocol translation on behalf of the downstream devices. ゲートウェイは、ダウンストリーム デバイスによって使われているプロトコルを認識し、ダウンストリーム デバイスに ID を提供し、IoT Hub のプリミティブを変換できるほど十分にスマートです。The gateway is smart enough to understand the protocol used by the downstream devices, provide them identity, and translate IoT Hub primitives. ダウンストリーム デバイスは、ツインとメソッドを備えたファースト クラスのデバイスとして IoT Hub に認識されます。Downstream devices appear in IoT Hub as first-class devices with twins and methods. ユーザーは、IoT Hub のデバイスと対話することができ、中間にゲートウェイ デバイスがあることには気付きません。A user can interact with the devices in IoT Hub and is unaware of the intermediate gateway device.

IoT Edge ランタイムには、ID 変換機能は含まれていません。The IoT Edge runtime does not include identity translation capabilities. このパターンでは、使用されるハードウェアやプロトコルに固有であることが多いカスタムまたはサード パーティのモジュールが必要です。This pattern requires custom or third-party modules that are often specific to the hardware and protocol used. ID 変換パターンを使用する例については、「Azure IoT Edge LoRaWAN スタート キット」を参照してください。For a sample that uses the identity translation pattern, see Azure IoT Edge LoRaWAN Starter Kit.

ユース ケースUse cases

すべてのゲートウェイ パターンには次の利点があります。All gateway patterns provide the following benefits:

  • エッジでの分析 – AI サービスをローカルに使って、クラウドに完全に忠実なテレメトリを送信することなく、ダウンストリーム デバイスからのデータを処理します。Analytics at the edge – Use AI services locally to process data coming from downstream devices without sending full-fidelity telemetry to the cloud. ローカルに洞察を検索して対応し、データのサブセットのみを IoT Hub に送信します。Find and react to insights locally and only send a subset of data to IoT Hub.
  • ダウンストリーム デバイスの分離 – ゲートウェイ デバイスは、すべてのダウンストリーム デバイスをインターネットへの露出から保護できます。Downstream device isolation – The gateway device can shield all downstream devices from exposure to the internet. 接続されていない OT ネットワークと、Web へのアクセスを提供する IT ネットワークの間に配置できます。It can sit in between an OT network that does not have connectivity and an IT network that provides access to the web.
  • 接続の多重化 - IoT Edge ゲートウェイを介して IoT Hub に接続するデバイスはすべて、基になっている同じ接続を使用します。Connection multiplexing - All devices connecting to IoT Hub through an IoT Edge gateway use the same underlying connection.
  • トラフィックのスムージング - IoT Edge デバイスは、メッセージをローカルに保持しながら、IoT Hub でトラフィックを調整する場合に指数のバックオフを自動的に実装します。Traffic smoothing - The IoT Edge device will automatically implement exponential backoff if IoT Hub throttles traffic, while persisting the messages locally. このメリットにより、急増するトラフィックに対するソリューションの回復力が高まります。This benefit makes your solution resilient to spikes in traffic.
  • オフライン サポート - ゲートウェイ デバイスは、IoT Hub に配信できないメッセージとツインの更新を保存します。Offline support - The gateway device stores messages and twin updates that cannot be delivered to IoT Hub.

プロトコル変換を行うゲートウェイでは、リソースに制約がある既存のデバイスと新しいデバイスをサポートできます。A gateway that does protocol translation can support existing devices and new devices that are resource constrained. 既存の多くのデバイスは、ビジネスの洞察に役立つデータを生成します。しかし、クラウドへの接続を考慮して設計されてはいません。Many existing devices are producing data that can power business insights; however they were not designed with cloud connectivity in mind. 非透過的なゲートウェイを使うと、このデータの制約がなくなり、IoT ソリューションで使用できるようになります。Opaque gateways allow this data to be unlocked and used in an IoT solution.

ID 変換を行うゲートウェイを使うと、プロトコル変換の利点が提供され、さらにクラウドからダウンストリーム デバイスを完全に管理できます。A gateway that does identity translation provides the benefits of protocol translation and additionally allows for full manageability of downstream devices from the cloud. IoT ソリューションのすべてのデバイスは、使用しているプロトコルに関係なく、IoT Hub に認識されます。All devices in your IoT solution show up in IoT Hub regardless of the protocol they use.

チート シートCheat sheet

透過的、非透過的 (プロトコル)、およびプロキシ ゲートウェイを使ったときの IoT Hub プリミティブを比較した簡単なチート シートを次に示します。Here is a quick cheat sheet that compares IoT Hub primitives when using transparent, opaque (protocol), and proxy gateways.

プリミティブPrimitive 透過的なゲートウェイTransparent gateway プロトコル変換Protocol translation ID 変換Identity translation
IoT Hub ID レジストリに格納されている IDIdentities stored in the IoT Hub identity registry 接続されているすべてのデバイスの IDIdentities of all connected devices ゲートウェイ デバイスの ID のみOnly the identity of the gateway device 接続されているすべてのデバイスの IDIdentities of all connected devices
デバイス ツインDevice twin 各接続のデバイスには、独自のデバイス ツインが含まれているEach connected device has its own device twin デバイスとモジュール ツインはゲートウェイにのみ含まれているOnly the gateway has a device and module twins 各接続のデバイスには、独自のデバイス ツインが含まれているEach connected device has its own device twin
ダイレクト メソッドおよびクラウドからデバイスへのメッセージDirect methods and cloud-to-device messages クラウドは接続された各デバイスを個別にアドレスできるThe cloud can address each connected device individually クラウドはゲートウェイ デバイスのみをアドレスできるThe cloud can only address the gateway device クラウドは接続された各デバイスを個別にアドレスできるThe cloud can address each connected device individually
IoT Hub のスロットルおよびクォータIoT Hub throttles and quotas 各デバイスに適用するApply to each device ゲートウェイ デバイスに適用するApply to the gateway device 各デバイスに適用するApply to each device

非透過的なゲートウェイ (プロトコル変換) パターンを使用する場合、そのゲートウェイを介して接続するすべてのデバイスは、同一のクラウドからデバイスのキューを共有します。これには最大で 50 のメッセージを含めることができます。When using an opaque gateway (protocol translation) pattern, all devices connecting through that gateway share the same cloud-to-device queue, which can contain at most 50 messages. したがって、各フィールド ゲートウェイを介して接続するデバイスが非常に少なく、クラウドからデバイスへのトラフィックが少ない場合にのみ、非透過的なゲートウェイ パターンを使用する必要があります。It follows that the opaque gateway pattern should be used only when few devices are connecting through each field gateway, and their cloud-to-device traffic is low.

次のステップNext steps

透過的なゲートウェイを設定する 3 つの手順を学習します。Learn the three steps to set up a transparent gateway: