AWS IoT Greengrass で構築するエッジ IoT アプリケーション - ローカル処理とクラウド連携
IoT Greengrass によるエッジデバイスでのローカル処理、Lambda 関数のエッジ実行、デバイスシャドウとの同期を解説します。
Greengrass の概要
IoT Greengrass はエッジデバイスで AWS のクラウド機能をローカル実行するランタイムです。Greengrass Core ソフトウェアを Linux デバイス (Raspberry Pi、産業用ゲートウェイ、EC2) にインストールすると、そのデバイスがエッジコンピューティングのハブとして機能します。Lambda 関数、Docker コンテナ、カスタムコンポーネントをエッジで実行し、センサーデータの前処理、ML 推論、デバイス制御をローカルで完結できます。クラウドへの接続が断続的な工場、農場、船舶、鉱山などの環境で特に有効です。
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
コンポーネントとローカル処理
Greengrass v2 はコンポーネントベースのアーキテクチャを採用しています。AWS が提供するパブリックコンポーネント (ストリームマネージャー、ローカル MQTT ブローカー、ML 推論) とカスタムコンポーネント (自社のビジネスロジック) を組み合わせてエッジアプリケーションを構築します。ストリームマネージャーはセンサーデータをローカルにバッファリングし、帯域幅の制約に応じてクラウド (IoT Core、Kinesis、S3) に送信します。接続が切断されてもデータはローカルに保持され、接続回復時に自動送信されます。ローカル MQTT ブローカーでエッジデバイス間のメッセージングを実現し、クラウドを経由せずにデバイス間通信が可能です。
ML 推論とフリート管理
ML 推論コンポーネントで SageMaker でトレーニングしたモデルをエッジデバイスにデプロイし、リアルタイムの推論を実行できます。TensorFlow Lite や DLR (Deep Learning Runtime) をサポートし、リソースが限られたデバイスでも効率的に推論を実行します。製造ラインでの不良品検出、農業での作物の病害検出、セキュリティカメラでの人物検出などに活用されています。フリート管理では、AWS IoT コンソールからデバイスグループに対してコンポーネントの OTA デプロイを実行します。デプロイの進捗はデバイスごとに追跡でき、失敗時のロールバックも可能です。
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。
まとめ
IoT Greengrass はエッジデバイスで AWS のクラウド機能をローカル実行するランタイムです。コンポーネントベースのアーキテクチャで柔軟なエッジアプリケーションを構築し、ストリームマネージャーで断続的な接続に対応し、ML 推論でリアルタイムのインテリジェンスをエッジに提供します。
AWS の優位点
- エッジデバイスで Lambda 関数や Docker コンテナをローカル実行し、クラウドへの接続が断続的な環境でも処理を継続できる
- ストリームマネージャーでセンサーデータをローカルにバッファリングし、接続回復時にクラウドに自動送信できる
- 機械学習推論コンポーネントでエッジデバイス上で ML モデルを実行し、リアルタイムの画像認識や異常検知が可能
- OTA デプロイでエッジデバイスのコンポーネントを遠隔更新し、数千台のデバイスフリートを一括管理できる
- ローカルの MQTT ブローカーでデバイス間通信を実現し、クラウドを経由せずにエッジ内でメッセージングが可能