AWS IoT Greengrass で構築するエッジ IoT アプリケーション - ローカル処理とクラウド連携

エッジデバイスで Lambda 関数を実行し、クラウドとの断続的な接続環境でもローカル処理を継続する。ML 推論のエッジ実行とフリート管理を紹介します。

Greengrass の概要

IoT Greengrass はエッジデバイスで AWS のクラウド機能をローカル実行するランタイムです。Greengrass Core ソフトウェアを 256 MB 以上のメモリを持つ Linux デバイス (Raspberry Pi、産業用ゲートウェイ、EC2) にインストールすると、そのデバイスがエッジコンピューティングのハブとして機能します。Lambda 関数、Docker コンテナ、カスタムコンポーネントをエッジで実行し、センサーデータの前処理、ML 推論、デバイス制御をローカルで完結できます。クラウドへの接続が断続的な工場、農場、船舶、鉱山などの環境で特に有効です。

コンポーネントとローカル処理

Greengrass v2 はコンポーネントベースのアーキテクチャを採用しています。AWS が提供するパブリックコンポーネント (ストリームマネージャー、ローカル MQTT ブローカー、ML 推論) とカスタムコンポーネント (自社のビジネスロジック) を組み合わせてエッジアプリケーションを構築します。ストリームマネージャーはセンサーデータをローカルにバッファリングし、帯域幅の制約に応じてクラウド (IoT CoreKinesis、S3) に送信します。接続が切断されてもデータはローカルに保持され、接続回復時に自動送信されます。ローカル MQTT ブローカーでエッジデバイス間のメッセージングを実現し、クラウドを経由せずにデバイス間通信が可能です。

ML 推論とフリート管理

ML 推論コンポーネントで SageMaker でトレーニングしたモデルをエッジデバイスにデプロイし、リアルタイムの推論を実行できます。 TensorFlow Lite や DLR (Deep Learning Runtime) をサポートし、リソースが限られたデバイスでも効率的に推論を実行します。製造ラインでの不良品検出、農業での作物の病害検出、セキュリティカメラでの人物検出などに活用されています。フリート管理では、 AWS IoT コンソールからデバイスグループに対してコンポーネントの OTA デプロイを実行します。デプロイの進捗はデバイスごとに追跡でき、失敗時のロールバックも可能です。 Greengrass について体系的に学びたい方は、関連書籍 (Amazon)も参考になります。

Greengrass の料金

Greengrass Core ソフトウェアのインストールと実行は無料です。コストが発生するのは、クラウドとの通信に使用する AWS サービス (IoT Core のメッセージング、S3 へのデータ転送、Lambda の呼び出し) の利用料金です。エッジデバイスのハードウェアコストとネットワーク回線費用は別途必要です。OTA デプロイで使用する S3 ストレージと IoT Jobs の料金も発生しますが、いずれも少額です。エッジで処理を完結させてクラウドへの転送量を削減することが、Greengrass 環境全体のコスト最適化の鍵です。

まとめ

Greengrass を導入する際は、まずコンポーネントカタログから必要な機能 (MQTT ブローカー、Stream Manager、ML 推論) を選定し、エッジデバイスの CPU・メモリに合わせた構成を設計します。ネットワーク断への耐性が求められる環境では、ローカルでの処理完結を優先し、クラウドへのデータ転送は接続回復時にバッチで行う設計が堅牢です。フリート管理で数千台のデバイスへの OTA デプロイを自動化し、運用負荷を最小化します。