Azure IoT Edge とはWhat is Azure IoT Edge

Azure IoT Edge は、企業がデータの管理に手間取ることなくビジネス インサイトに専念できるよう、これまでクラウドで行っていた分析とカスタム ビジネス ロジックをデバイス側で実行できるようにするものです。Azure IoT Edge moves cloud analytics and custom business logic to devices so that your organization can focus on business insights instead of data management. IoT ソフトウェアを構成し、標準のコンテナーでそれをデバイスにデプロイして、すべてをクラウドから監視します。Configuring your IoT software, deploy it to devices via standard containers, and monitoring it all from the cloud.

注意

Azure IoT Edge は、IoT Hub の Free および Standard レベルで利用できます。Azure IoT Edge is available in the free and standard tier of IoT Hub. Free レベルは、テストおよび評価用です。The free tier is for testing and evaluation only. Basic レベルおよび Standard レベルの詳細については、適切な IoT Hub レベルの選び方に関するページを参照してください。For more information about the basic and standard tiers, see How to choose the right IoT Hub tier.

分析は、IoT ソリューションのビジネス上の価値を決める重要な要素ですが、すべての分析をクラウドで行う必要はありません。Analytics drives business value in IoT solutions, but not all analytics needs to be in the cloud. 緊急事態に可能な限り速やかに対応することが要求される場合には、異常検出をデバイス側で実行することができます。If you want a device to respond to emergencies as quickly as possible, you can perform anomaly detection on the device itself. 同様に、帯域幅コストを抑える必要がある場合や、テラバイト規模の生データを転送することが問題になる場合には、データのクリーニングや集約をローカルで行うことが考えられます。Similarly, if you want to reduce bandwidth costs and avoid transferring terabytes of raw data, you can perform data cleaning and aggregation locally. その後、分析のために分析情報をクラウドに送信します。Then, send the insights to the cloud for analysis.

Azure IoT Edge は、次の 3 つのコンポーネントで構成されます。Azure IoT Edge is made up of three components:

  • IoT Edge モジュール: Azure のサービス、サード パーティのサービス、またはカスタム コードを実行するコンテナーです。IoT Edge modules are containers that run Azure services, third-party services, or your own code. モジュールは、IoT Edge デバイスにデプロイされ、そのデバイス上のローカルで実行されます。Modules are deployed to IoT Edge devices and execute locally on those devices.
  • IoT Edge ランタイム: 個々の IoT Edge デバイス上で動作し、各デバイスにデプロイされたモジュールを管理します。The IoT Edge runtime runs on each IoT Edge device and manages the modules deployed to each device.
  • クラウドベースのインターフェイス: IoT Edge デバイスをリモートから監視して管理します。A cloud-based interface enables you to remotely monitor and manage IoT Edge devices.

IoT Edge のモジュールIoT Edge modules

IoT Edge のモジュールは、実行の単位となるもので、Docker 互換のコンテナーとして実装されます。エッジに置かれたビジネス ロジックが、この単位で実行されます。IoT Edge modules are units of execution, implemented as Docker compatible containers, that run your business logic at the edge. 互いに通信を行う複数のモジュールを構成することで、データ処理のパイプラインを作成することができます。Multiple modules can be configured to communicate with each other, creating a pipeline of data processing. カスタム モジュールを開発するか、特定の Azure サービスをパッケージ化して、エッジからオフラインで洞察が得られるモジュールとしてまとめることができます。You can develop custom modules or package certain Azure services into modules that provide insights offline and at the edge.

エッジで利用できる人工知能Artificial Intelligence on the edge

Azure IoT Edge を使用すると、複合イベント処理や機械学習、画像認識など、高価な AI を自社開発することなくデプロイすることができます。Azure IoT Edge allows you to deploy complex event processing, machine learning, image recognition, and other high value AI without writing it in-house. Azure のサービス、たとえば Azure Functions、Azure Stream Analytics、Azure Machine Learning はいずれも、Azure IoT Edge を介してオンプレミスで実行することができます。しかもそれは Azure のサービスに限定されません。Azure services like Azure Functions, Azure Stream Analytics, and Azure Machine Learning can all be run on-premises via Azure IoT Edge, but you’re not limited to Azure services. だれでも AI モジュールを作成し、Azure Marketplace でコミュニティに公開することができます。Anyone is able to create AI modules and make them available to the community for use through the Azure Marketplace.

Bring Your Own CodeBring your own code

デバイスに独自のコードをデプロイする場合にも Azure IoT Edge が役立ちます。When you want to deploy your own code to your devices, Azure IoT Edge supports that, too. Azure IoT Edge には、他の Azure IoT サービスと同じプログラミング モデルが踏襲されています。Azure IoT Edge holds to the same programming model as the other Azure IoT services. 同じコードをデバイスでもクラウドでも実行できます。The same code can be run on a device or in the cloud. コーディングの対象プラットフォームを自由に選べるよう、Azure IoT Edge は Linux と Windows の両方に対応しています。Azure IoT Edge supports both Linux and Windows so you can code to the platform of your choice. Java、.NET Core 2.0、Node.js、C、Python がサポートされているため、開発者は既に身に付けた言語でコードを記述でき、また既存のビジネス ロジックを利用することができます。It supports Java, .NET Core 2.0, Node.js, C, and Python so your developers can code in a language they already know and use existing business logic.

IoT Edge ランタイムIoT Edge runtime

Azure IoT Edge ランタイムは、カスタム ロジックやクラウド ロジックを IoT Edge デバイスで実行することを可能にするものです。The Azure IoT Edge runtime enables custom and cloud logic on IoT Edge devices. IoT Edge デバイスに常駐して管理操作や通信処理を実行します。It sits on the IoT Edge device, and performs management and communication operations. このランタイムによって実行されるいくつかの機能を次に示します。The runtime performs several functions:

  • デバイスにワークロードをインストールし、更新する。Install and update workloads on the device.
  • デバイス上の Azure IoT Edge のセキュリティ標準を維持する。Maintain Azure IoT Edge security standards on the device.
  • IoT Edge モジュールの実行状態を絶えず確保する。Ensure that IoT Edge modules are always running.
  • モジュールの正常性をクラウドにレポートしてリモート監視を可能にする。Report module health to the cloud for remote monitoring.
  • ダウンストリームのリーフ デバイスと IoT Edge デバイス間、IoT Edge デバイス上のモジュール間、IoT Edge デバイスとクラウド間の通信を管理する。Manage communication between downstream leaf devices and an IoT Edge device, between modules on an IoT Edge device, and between an IoT Edge device and the cloud.

IoT Edge ランタイムは、IoT Hub に対して洞察とレポートを送信します。

Azure IoT Edge デバイスをどのように使用するかは開発者しだいです。How you use an Azure IoT Edge device is up to you. そのランタイムは多くの場合、他のオンプレミス デバイスからのデータを集約して処理するゲートウェイに対して AI をデプロイする目的で使用されますが、そのデプロイ モデルは選択肢の 1 つにすぎません。The runtime is often used to deploy AI to gateways which aggregate and process data from other on-premises devices, however this deployment model is just one option. ゲートウェイに接続されているリーフ デバイスまたは直接クラウドに接続されているリーフ デバイスが Azure IoT Edge デバイスとなる場合もあります。Leaf devices could also be Azure IoT Edge devices, regardless of whether they are connected to a gateway or directly to the cloud.

Azure IoT Edge ランタイムは、多数の IoT デバイス上で動作することにより、さまざまな利用形態を実現します。The Azure IoT Edge runtime runs on a large set of IoT devices to enable using the runtime in a wide variety of ways. Linux と Windows の両方のオペレーティング システムに対応し、ハードウェアの細部を抽象化する働きを担います。It supports both Linux and Windows operating systems and abstracts hardware details. 処理するデータが比較的少ない場合や、リソース消費の激しいワークロードを実行するために産業サーバーを使用する場合は、Raspberry Pi 3 よりも小さいデバイスを使用してください。Use a device smaller than a Raspberry Pi 3 if you’re not processing much data, or use an industrialized server to run resource-intensive workloads.

IoT Edge クラウド インターフェイスIoT Edge cloud interface

エンタープライズ デバイスのソフトウェア ライフサイクルは管理が複雑です。Managing the software lifecycle for enterprise devices is complicated. 種類の異なる何百万という IoT デバイスのソフトウェア ライフサイクルを管理するとなれば、なおさら困難が伴います。Managing the software lifecycle for millions of heterogenous IoT devices is even more difficult. ワークロードは、特定の種類のデバイスを想定して作成、構成しなけれなりません。実際のソリューションで存在する何百万台というデバイスに対して大規模にワークロードをデプロイして監視し、デバイスの動作に異常があれば検出する必要があるのです。Workloads must be created and configured for a particular type of device, deployed at scale to the millions of devices in your solution, and monitored to catch any misbehaving devices. これらのアクティビティをデバイス単位で行うことはできないので、一定の規模で実施する必要があります。These activities can’t be done on a per device basis and must be done at scale.

Azure IoT Edge は、Azure IoT ソリューション アクセラレータ とシームレスに連携し、実際のソリューションのニーズに合った一元的なコントロール プレーンを提供します。Azure IoT Edge integrates seamlessly with Azure IoT solution accelerators to provide one control plane for your solution’s needs. ユーザーは Cloud Services を通じて次のことを実行できます。Cloud services allow you to:

  • 特定の種類のデバイス上で動作するワークロードを作成して構成する。Create and configure a workload to be run on a specific type of device.
  • まとまったデバイスに対してワークロードを送信する。Send a workload to a set of devices.
  • 現場のデバイスで実行されるワークロードを監視する。Monitor workloads running on devices in the field.

デバイスのテレメトリとアクションはクラウドで調整される

次の手順Next steps

ここで説明した概念を、シミュレートされたデバイスに対して IoT Edge をデプロイする方法に関するページで試してみましょう。Try out these concepts by deploying IoT Edge on a simulated device.