AWS IoT Greengrass
エッジデバイスでローカルコンピュート、メッセージング、ML 推論を実行するサービス
何ができるか
AWS IoT Greengrass は、エッジデバイス上で AWS Lambda 関数、Docker コンテナ、ML 推論モデルをローカルに実行するサービスです。クラウドとの接続が断続的な環境でも、デバイス上でデータ処理や意思決定を行えます。クラウドとの同期はネットワーク復旧時に自動的に行われます。
どのような場面で使うか
工場の製造ラインでのリアルタイム異常検知、農業 IoT でのセンサーデータのローカル処理、自動車のエッジコンピューティング、小売店舗でのローカル ML 推論に利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
支店に配置された小型コンピュータに例えられます。本社 (クラウド) と通信できないときでも、支店 (エッジ) で独自に判断・処理を行い、通信が回復したら結果を本社に報告します。
IoT Greengrass とは
この記事は約 2 分で読めます。 AWS IoT Greengrass は、クラウドの機能をエッジデバイスに拡張するサービスです。Greengrass Core ソフトウェアをデバイスにインストールすると、Lambda 関数やコンテナをローカルで実行できます。デバイス間のローカルメッセージングや、SageMaker でトレーニングした ML モデルのエッジ推論にも対応しています。
コンポーネントとデプロイ
Greengrass V2 ではコンポーネントという単位でソフトウェアをデバイスにデプロイします。AWS 提供のコンポーネント (ログマネージャー、ストリームマネージャーなど) とカスタムコンポーネントを組み合わせて、デバイスの機能を構成します。デプロイはクラウドから OTA (Over-The-Air) で実行でき、デバイスグループ単位での一括デプロイも可能です。
はじめかた
Greengrass Core ソフトウェアを Raspberry Pi や Linux デバイスにインストールします。IoT Greengrass コンソールでコンポーネントを選択し、デバイスにデプロイします。Hello World コンポーネントから始めて、段階的にローカル ML 推論やデバイス間通信を追加していくのが推奨されます。
Azure・オンプレミスとの比較
AWS の優位点
- Lambda 関数と Docker コンテナの両方をエッジで実行でき、クラウドと同じプログラミングモデルを使用可能
- SageMaker でトレーニングした ML モデルをエッジデバイスにデプロイし、低レイテンシの推論を実現
- OTA デプロイで数千台のデバイスにソフトウェアを一括配信・更新可能
注意点
- Greengrass Core デバイスには最低 128 MB の RAM と Linux OS が必要。リソースが限られたマイクロコントローラーには FreeRTOS を検討する
- デバイス数に応じた月額課金。10 台までは無料利用枠で利用可能
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。