4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure IoT Edge for Linux on Windows (EFLOW) のご紹介

Posted at

概要

先月、Linux用のAzure IoT EdgeをWindowsマシンで動作するAzure IoT Edge for Linux on Windowsがアナウンスされ、Public previewとしてサービス開始されました。略としてEFLOWと呼ばれ、イフローで発音しているようです。
やっと、時間を作って体験させていただきましたので、ご紹介いたします。
これでAzure IoT Edgeを運用するため、WindowsとLinuxのどちらかの選択について悩む必要がなくなりそうです。

EFLOWの構成図

image.png

Azure IoT EdgeはHypervisorの基盤でCBL-MarinerというMicrosoftさんが公開したLinuxディストリビューションが仮想マシンとして動作します。
管理はWindows Admin Centerの方で行われてWindowsとCBL Mariner Linux間双方通信しているようです。

EFLOWのシステム要件 (Preview)

  • Windows 10 バージョン 1809 以上 (Pro, Enterprise, Server)
  • vCPU : 4 以上
  • Memory : 2GB 以上

インストールスクリプトの方で、システム要件をチェックします。
クラウドで仮想マシンで動作確認する場合、TPMサポートを確認してください。インストールスクリプトでTPMを無効化するロジックあり、そこでエラーになるケースがあるようです。私もローカルで動作確認しました。

EFLOW 環境のセットアップ

Windows Insider Program 登録とダウンロード

Public Preview版をダウンロードするにはMicrosoft Insider Programの登録が必要です。

登録を終えたら、Windows Server Insider Previewページにアクセスします。

Microsoft Server Previewsの選択リストから「Windows Admin Center Preview - Build 2012」を選択します。

image.png

言語は「English」を選択します。

ダウンロードします。
約70MBなどで、すぐにダウンロードできます。

Windows Admin Center インストール

ダウンロードしたファイルを実行してWindows Admin Center (Preview版)をインストールします。デフォルト設定のままでインストールします。

image.png
image.png
image.png
image.png

Azure IoT Edge Extensions インストール

Windows Admin Centerを起動します。
Windows Admin Centerはウェブアプリとして動作します。最初アクセス時は証明書選択画面が現れるので、デフォルトの選択された証明書でOKします。

image.png

右上のギアアイコンをクリックしてSettings画面に遷移します。

image.png

左メニューでGatewayのExtensionsをクリックします。

image.png

FeedsのタブメニューをクリックしてAddをクリックします。

image.png

下記のFeed URLを追加します。

https://aka.ms/wac-insiders-feed

反映されるまで少し待ちます。(5秒?)
Available extensionsのタブメニューをクリックして「Azure IoT Edge」で検索するとインストール対象の「Azure IoT Edge」が現れます。
インストールをクリックします。

image.png

インストールが完了されたら、Installed extensionsタブメニューから「Azure IoT Edge」を検索するとインストール確認することができます。

image.png

Azure IoT Edge セットアップ

ここからがAzure IoT Edgeをセットアップする手順となります。方法は二つあります。
Windows Admin Centerで行われる手順とPowerShellで行われる手順です。
両方とも良いどころがありますが、PowerShellの方が手順をまとめやすいのでスクリプトでセットアップします。

PowerShellを管理者モードで実行します。

# Azure IoT Edgeインストーラーファイルをダウンロードします。
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest "https://aka.ms/AzureEdgeForLinuxOnWindowsMSI" -OutFile $msiPath

# インストーラーファイルを実行します。
Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"

# PowerShellの実行ポリシーを確認します。
Get-ExecutionPolicy -List

# PowerShellの実行ポリシーで local machine が AllSigned になってなければ権限を付与します。
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force

# EFLOW環境を作成します。
Deploy-Eflow

image.png

Deploy-Eflow実行時に一回再起動が必要なので、再起動されたら、再度Deploy-Eflowを実行してください。

# 再起動後、PowerShellプロンプト上で再度、実行します。
Deploy-Eflow

image.png

Deployment successfulが見えたら、EFLOW環境作成完了です。

image.png

デバイスのプロビジョンニング

Azure IoT Hubからデバイスを生成し、作成したEFLOWにプロビジョンニングしますが、方式によってコマンドが異なります。最も簡単なConnection Stringで接続してみます。
ここからは弊社のAzure IoT Edge管理ソリューション WeDX Server を並行で使って確認を行います。
Primary Connection Stringの文字列をPowerShellのCONNECTION_STRING_HEREに書き換えて実行します。

Provision-EflowVm -provisioningType manual -devConnString "<CONNECTION_STRING_HERE>"

image.png

プロビジョンニングが完了されたら、SSH接続で初期モジュールを確認してみます。

Ssh-EflowVm
sudo iotedge list

image.png

プロビジョンニングまでできました。
これで、Linux用のAzure IoT Edgeモジュールをデプロイして使えば良いです。

Azure IoT Edgeモジュール確認

モジュールデプロイはDevelopment Manifestをデプロイしなければいけないですが、こちらで触れることは手順が長くなってしまいますので、弊社のAzure IoT Edge管理ソリューション WeDX Server でデプロイすることとします。

SimulatedTemperatureSensor

Azure IoT Edge版のHelloworldである、SimulatedTemperatureSensorをでデプロイしてみます。

問題なく、デプロイされてシミュレーションされたテレマトリを確認できます。

image.png

Node-RED

Node-RED on IoT Edgeをデプロイしてみます。

image.png

問題なく、デプロイされてNode-REDフローとUIが動くことが確認できます。

image.png

image.png

Live Video Analytics

Live Video Analyticsも現在、Previewですが、デプロイして確認します。

image.png

image.png

Media Graphのトポロジーは下記のように作成します。

image.png

まとめ

Azure IoT Edge for Linux on Windows (EFLOW)はMicrosoftさんのEdgeコンピューティング戦略をある程度、推測できるサービスだと思います。
Windowsの生産性をそのまま活用して数多くあるAMD64のLinux用コンテナーをそのまま使うことができるのでとても魅力的なサービスだと思います。Public Previewですが、早めにGAになってほしいです。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?