-
Notifications
You must be signed in to change notification settings - Fork 0
MS_AzureIoTEdge
- 戻る(Microsoft Azure IoT、Azure IoT Hub)
- Azure IoT Edge
- コンテナ技術
- Azure IoT Hubの Standard レベルに含まれる機能。
- IoT Edge Device にランタイムをコンテナ化&デプロイし、
Azure のサービスを利用可能にする。- Linux コンテナを使った Docker でコンテナ化
- Windows コンテナは IoT Edge v1.2 以降サポートされない。
- IoT Edge Device 上で、Azure サービスや
ソリューションの固有コードを配備、実行できるようにするサービス。 - これによりユーザーは、
- 様々な Azure IoT Edge Modules をコンテナ化し、
- 様々な IoT Edge Device 上で機能を稼働させられるようになる
(Raspberry Pi、産業機器)。
補足(なぜエッジで処理するのか): すべてをクラウドに送らない理由は
主に 4 つある。
理由 内容 レイテンシ 「異常を検知して 100ms 以内に止める」はクラウド往復では間に合わない 通信量・コスト 生データを全部送ると回線費が跳ね上がる。現場で間引く 可用性 回線が切れても動作を継続する必要がある データ主権 生データを国外・社外に出せない規制がある 「クラウドに全部送って処理する」構成は、
数台の PoC では成立しても本番の規模では破綻することが多い。
Microsoft Azure IoTの Hot / Warm / Cold の分割とも
同じ発想である。
- Azure IoT Edge Runtime は無償
- 配備に Azure IoT Hubを使用する場合、
そのインスタンスにかかる費用
3 つのコンポーネントが必要になる。
インスタンスが必要になる。
- Runtime と言うより、Azure IoT Hubの Agent
- 2 つのコンテナから構成される。
| コンテナ | 役割 |
|---|---|
| Edge Hub | クラウド側の IoT Hubのプロキシ的に動作する。Edge に対して Hub 接続してテレメトリを束ねる。2.0 では MQTT もサポートし、親子関係を構成できる |
| Edge Agent | コンテナを管理する Agent(モジュールの起動・監視・更新) |
補足(この 2 つの分担が要点): Edge Agent が「何を動かすか」を
クラウドから受け取り、Edge Hub が「通信をまとめる」。[クラウド IoT Hub] │ デプロイ マニフェスト(どのモジュールを動かすか) ▼ [Edge Agent] ──起動・監視──> [モジュール群(コンテナ)] [Edge Hub] <──ローカル通信── [下位のデバイス(リーフ)] │ まとめてクラウドへ ▼「親子関係を構成できる」というのは、
Edge デバイスの下にさらに Edge デバイスをぶら下げられる
(入れ子のゲートウェイ)ことを指す。
工場のライン → 工場 → 全社、といった階層構成が組める。
- コンテナ化されたモジュール形式でエッジに展開および管理する。
- 1 つのモジュールには複数のコンテナを含めることができる。
- IoT Edge によって管理される計算の最小単位(≒ コンテナ)
- コンテナ化できれば、Azure IoT Edge 下で動作させることができる。
- Azure サービスまたは独自ソリューション固有のコードを含められる。
- Azure マーケットプレイスで入手できる(純正品やサードパーティ製品)。
-
Automatic Device Management: 大量の IoT デバイスをまたがった
大規模配備が可能になる。 - Azure Arc: Azure 外(オンプレミス/他クラウド)のサーバや\n Kubernetes クラスタを Azure のリソースとして一元管理する仕組み。
以下のコンテナ化された Azure サービスを動かすことができる。
クラウド・サービスをデバイスに近い Edge に配置することで、
リアルタイムに処理を実行し、データの転送量を抑えることができる。
| サービス | 内容 |
|---|---|
| Azure AI サービス(旧 Cognitive Services) | 学習済みの AI モデルをデプロイ。クラウドと同じ価格 |
| Azure Stream Analytics | リアルタイムなストリーミング処理(一部機能制限あり) |
| Azure Functions | ゲートウェイでも有用な FaaS 機能をエッジへ |
| Azure Machine Learning | コンテナ化された学習済みモデルに限定 |
| Azure Blob Storage(Azureのストレージ) | クラウドと同期されるローカルの Blob Storage |
| Azure SQL Edge | RDBMS + ストリーミング処理 / AI 分析 |
| SQL Server Module | コンテナ化された SQL Server on Linux |
補足(クラウド サービスをエッジで動かす意味): 「同じサービスを
クラウドでもエッジでも動かせる」ことの価値は、
配置を後から変えられる点にある。PoC: デバイス ──> [クラウドで推論] ↓ 通信量・レイテンシが問題に 本番: デバイス ──> [エッジで推論] ──要約だけ──> クラウドアプリのコードを書き換えずに、
デプロイ先を変えるだけで移せるのが利点である。
ローカル Blob Storage も同様で、
「回線が切れている間は貯めて、繋がったら同期する」という
動作をアプリ側の実装なしで実現できる。
移行メモ(最新化:名称と対応 OS): 本ページ執筆後の主な変更点。
項目 現在 Azure Cognitive Services Azure AI サービスに改称・統合 Windows コンテナ v1.2 以降非対応(本ページの記述どおり。現在も変わらず) Windows デバイス Linux コンテナ on Windows(EFLOW) で対応 Azure Time Series Insights 2024年に廃止。後継は Azure Data Explorer / Fabric Windows 上で IoT Edge を動かす場合、
現在は EFLOW(Azure IoT Edge for Linux on Windows) という
「Windows 上の軽量 Linux VM で Linux コンテナを動かす」構成になる
(WSL2と似た発想である)。
-
Azure IoT Edge とは
https://learn.microsoft.com/azure/iot-edge/about-iot-edge -
Azure IoT Edge for Linux on Windows (EFLOW)
https://learn.microsoft.com/azure/iot-edge/iot-edge-for-linux-on-windows -
IoT Edge モジュール
https://learn.microsoft.com/azure/iot-edge/iot-edge-modules
Tags: 移行, インフラストラクチャ, クラウド, Azure, IoT, コンテナ
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。