Azure IoT Edge でサポートされているプラットフォーム
適用対象: IoT Edge 1.1
重要
IoT Edge 1.1 のサポート終了日は、2022 年 12 月 13 日でした。 本製品、サービス、テクノロジ、または API のサポート内容については、Microsoft 製品のライフサイクルに関するページをご確認ください。 最新バージョンの IoT Edge への更新の詳細については、「 Update IoT Edge」を参照してください。
この記事では、IoT Edge で一般提供またはプレビューとしてサポートされているオペレーティング システム プラットフォーム、IoT Edge ランタイム、コンテナー エンジン、コンポーネントについて説明します。
サポートを受ける
Azure IoT Edge サービスの使用中に問題が発生した場合は、いくつかの方法でサポートを求めることができます。 サポートについては、次のいずれかのチャネルをお試しください。
バグの報告 - Azure IoT Edge 製品となる開発のほとんどは、IoT Edge のオープンソース プロジェクトで行われます。 バグはプロジェクトの問題ページで報告できます。 Azure IoT Edge for Linux on Windows に関するバグは、 iotedge-eflow の問題ページで報告できます。 修正プログラムでは、プロジェクトが製品の更新プログラムになるまでの時間を早めます。
Microsoft カスタマー サポート チーム - サポート プランに加入しているユーザーは、Azure portal から直接サポート チケットを作成することで、Microsoft カスタマー サポート チームとやり取りできます。
機能の要望 - Azure IoT Edge 製品は、製品のユーザーの声ページを介して機能の要望を追跡します。
コンテナー エンジン
Azure IoT Edge モジュールはコンテナーとして実装されているため、IoT Edge にはモジュールを起動するためのコンテナー エンジンが必要です。 Microsoft には、この要件を満たすために、moby-engine というコンテナー エンジンが用意されています。 このコンテナー エンジンは、Moby オープンソース プロジェクトをベースとします。 他にも有名なコンテナー エンジンとして、Docker CE や Docker EE が挙げられます。 これらも Moby オープンソース プロジェクトをベースとし、Azure IoT Edge と互換性があります。 Microsoft はこれらのコンテナー エンジンを使用するシステムに対してベスト エフォート サポートを提供しています。ただし、Microsoft はそれらで発生した問題の修正プログラムを配布することができません。 この理由から、Microsoft では運用システムで moby-engine を使用することを推奨しています。
オペレーティング システム
Azure IoT Edge はコンテナーを実行できるほとんどのオペレーティング システムで実行できます。ただし、それらのすべてのシステムが均等にサポートされているわけではありません。 オペレーティング システムは、ユーザーが受けられるサポートのレベルを表す階層別にグループ化されています。
- レベル 1 のシステムはサポートされています。 レベル 1 のシステムの場合、Microsoft が以下を行います。
- Microsoft がそのオペレーティング システムに対して自動テストを実施している
- Microsoft がそれらのインストール パッケージを提供している
- レベル 2 のシステムは Azure IoT Edge と互換性があり、比較的簡単に使用できます。 レベル 2 のシステムの場合:
- Microsoft がそのプラットフォームで非公式なテストを実施している、またはパートナーがそのプラットフォーム上で Azure IoT Edge を正常に実行していることを把握している
- 他のプラットフォーム用のインストール パッケージがそれらのプラットフォームで機能することがある
ホスト OS のファミリは、モジュールのコンテナー内で使用されるゲスト OS のファミリと常に一致する必要があります。
つまり、Linux コンテナーは Linux 上でのみ、Windows コンテナーは Windows 上でのみ使用できます。 Windows コンテナーを使用している場合は、プロセス分離コンテナーのみがサポートされます (Hyper-V 分離コンテナーはサポートされません)。
IoT Edge for Linux on Windows では、Windows ホストで実行されている Linux 仮想マシンで IoT Edge を使用します。 この方法で、Windows デバイス上で Linux モジュールを実行できます。
第 1 層
次の表に示すシステムは、一般提供またはパブリック プレビューにおいて、Microsoft によってサポートされており、新しいリリースごとにテストされています。
Azure IoT Edge は、Linux コンテナーまたは Windows コンテナーとしてビルドされたモジュールをサポートします。 Linux コンテナーは、Linux デバイスにデプロイすることも、IoT Edge for Linux on Windows を使用して Windows デバイスにデプロイすることもできます。 Windows コンテナーは、Windows デバイスにのみ展開できます。
Linux コンテナー
Linux コンテナーとしてビルドされたモジュールは、Linux デバイスまたは Windows デバイスにデプロイできます。 Linux デバイスの場合、IoT Edge ランタイムはホスト デバイスに直接インストールされます。 Windows デバイスの場合、IoT Edge ランタイムでビルドされた Linux 仮想マシンは、ホスト デバイスで実行されます。
IoT Edge for Linux on Windows は、Windows デバイスで IoT Edge を実行する場合に推奨される方法です。
オペレーティング システム | AMD64 | ARM32v7 | ARM64 |
---|---|---|---|
Debian 11 (Bullseye) | |||
Ubuntu Server 20.04 | |||
Ubuntu Server 18.04 | |||
Windows 10/11 Pro | |||
Windows 10/11 Enterprise | |||
Windows 10/11 IoT Enterprise | |||
Windows Server 2019/2022 |
すべての Windows オペレーティング システムは、現在のすべての累積更新プログラムがインストールされたビルド 17763 以上である必要があります。
Note
Ubuntu Server 16.04 のサポートは、IoT Edge バージョン1.1 のリリースで終了しました。
Windows コンテナー
重要
IoT Edge 1.1 LTS は、Windows コンテナーをサポートする最後のリリース チャネルです。 バージョン 1.2 以降では、Windows コンテナーはサポートされません。 Windows デバイスで IoT Edge を実行するには、IoT Edge for Linux on Windows の使用またはこちらへの移行を検討してください。
Windows コンテナーとしてビルドされたモジュールは、Windows デバイスにのみ展開できます。
オペレーティング システム | AMD64 | ARM32v7 | ARM64 |
---|---|---|---|
Windows 10 IoT Enterprise | |||
Windows Server 2019 | |||
Windows Server IoT 2019 |
すべての Windows オペレーティング システムはバージョン 1809 (ビルド 17763) である必要があります。 Windows の IoT Edge には、Windows の特定のビルドが必要です。これは、Windows コンテナーのバージョンがホストの Windows デバイスのバージョンと正確に一致する必要があるためです。 現在、Windows コンテナーはビルド 17763 のみを使用しています。
Note
Windows 10 IoT Core のサポートは、IoT Edge バージョン1.1 のリリースで終了しました。
階層 2
次の表に示すシステムは、Azure IoT Edge と互換性があると見なされますが、Microsoft によってアクティブにテストまたは管理されてはいません。
オペレーティング システム | AMD64 | ARM32v7 | ARM64 |
---|---|---|---|
CentOS-7 | |||
Debian 10 1 | |||
Debian 11 | |||
Mentor Embedded Linux Flex OS | |||
Mentor Embedded Linux Omni OS | |||
RHEL 7 | |||
Ubuntu 18.04 2 | |||
Ubuntu 20.04 2 | |||
Wind River 8 | |||
Yocto | |||
Raspberry Pi OS Buster |
1 1.3 のリリースでは、Debian 10 でクラッシュを引き起こす新しいシステム呼び出しがあります。 回避策を確認するには、1.3 リリース ノートのセクションの ARMv7 の Debian 10 (Buster) に関する既知の問題の詳細 を確認してください。
2 インストール パッケージは、Azure IoT Edge リリースで利用可能になります。 「オフラインまたは特定のバージョンのインストール」のインストール手順を参照してください。
リリース
次の表は、現在サポートされているリリースの一覧です。 IoT Edge のリリース アセットとリリース ノートは、azure-iotedge リリース ページから入手できます。
リリース ノートと資産 | Type | リリース日 | サポート終了日 |
---|---|---|---|
1.4 | 長期サポート (LTS) | 2022 年 8 月 | 2024 年 11 月 12 日 |
1.1 | 長期サポート (LTS) | 2021 年 2 月 | 2022 年 12 月 13 日 |
IoT Edge のバージョンの履歴について詳しくは、「バージョン履歴」をご覧ください。
IoT Edge 1.1 は、最初の長期サポート (LTS) リリース チャネルです。 このバージョンでは新機能は導入されていませんが、回帰に対するセキュリティ更新プログラムとバグの修正が適用されます。 IoT Edge 1.1 LTS では .NET Core 3.1 を使用します。これは、.NET Core および .NET 5 のリリース ライフサイクルに合わせて、2022 年 12 月 13 日までサポートされます。
重要
- すべての Microsoft 製品にはライフサイクルがあります。 ライフサイクルは、製品がリリースされると開始され、サポートされなくなったときに終了します。 このライフサイクルの重要な日付を把握しておくと、ソフトウェアのアップグレードやその他の変更を行うタイミングについて、情報に基づいた決定を行うのに役立ちます。 IoT Edge は、Microsoft のモダン ライフサイクル ポリシーによって管理されます。
- 長期サポート チャネルがリリースされたため、現在 1.0.x を実行しているすべてのお客様は、継続的なサポートを受けるためにデバイスを 1.1.x にアップグレードすることをお勧めします。
IoT Edge では、Microsoft.Azure.Devices.Client SDK が使用されます。 詳細については、Azure IoT C# SDK の GitHub リポジトリまたは Azure SDK for .NET のリファレンス コンテンツを参照してください。 次に示したのは、各リリースのテストに使用されたクライアント SDK のバージョンの一覧です。
IoT Edge のバージョン | Microsoft.Azure.Devices.Client SDK のバージョン |
---|---|
1.4 | 1.36.6 |
1.3 | 1.36.6 |
1.2.0 | 1.33.4-NestedEdge |
1.1 (LTS) | 1.28.0 |
1.0.10 | 1.28.0 |
1.0.9 | 1.21.1 |
1.0.8 | 1.20.3 |
1.0.7 | 1.20.1 |
1.0.6 | 1.17.1 |
1.0.5 | 1.17.1 |
Virtual Machines
Azure IoT Edge は仮想マシンで実行できます。 仮想マシンを IoT Edge デバイスとして使用することは、エッジ インテリジェンスで既存のインフラストラクチャを拡張しようとする場合によく行われます。 ホスト VM OS のファミリは、モジュールのコンテナー内で使用されるゲスト OS のファミリと一致する必要があります。 この要件は、Azure IoT Edge がデバイス上で直接実行されるときと同じです。 Azure IoT Edge は基盤となる仮想化テクノロジに依存しており、Hyper-V や vSphere などのプラットフォームを使用した VM で動作します。
最小システム要件
Azure IoT Edge は、Raspberry Pi3 のような小規模なデバイスから、サーバー グレード ハードウェアまで、幅広いデバイスで快適に動作します。 シナリオに適したハードウェアの選択は、実行するワークロードによって決まります。 デバイスを最終的に決定するまでには複雑なプロセスを要する場合もありますが、従来型のラップトップやデスクトップ上でソリューションのプロトタイプを作成することは簡単に開始できます。
プロトタイプ作成の過程で得られた経験は、最終的なデバイスの選択に役立ちます。 考慮すべき質問としては次のようなものがあります。
- ワークロード内のモジュールはいくつありますか。
- モジュールのコンテナーが共有するレイヤーはいくつありますか。
- モジュールはどの言語で作成されていますか。
- モジュールで処理されるデータはどのくらいですか。
- モジュールには、ワークロードを加速するための特殊なハードウェアが必要ですか。
- ソリューションの望ましいパフォーマンス特性はどのようなものですか。
- ハードウェア予算はどのくらいですか。