AWS IoT Greengrass Version 1 は 2023 年 6 月 30 日に延長ライフフェーズに入りました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き動作し、クラウドに接続します。への移行 AWS IoT Greengrass Version 2を強くお勧めします。これにより、重要な新機能が追加され、追加のプラットフォームがサポートされます。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT Greengrass コアでデータストリームを管理する
AWS IoT Greengrass ストリームマネージャーを使用すると、大量の IoT データを に簡単かつ確実に転送できます AWS クラウド。ストリームマネージャーは、データストリームをローカルで処理し、 AWS クラウド に自動的にエクスポートします。この機能は、機械学習 (ML) 推論などの一般的なエッジシナリオと統合され、データをローカルで処理して分析してから、 AWS クラウド またはローカルストレージの送信先にエクスポートします。
ストリームマネージャーは、アプリケーション開発を簡素化します。IoT アプリケーションは、カスタムストリーム管理機能を構築する代わりに、標準化されたメカニズムを使用して大量のストリームを処理し、ローカルデータ保持ポリシーを管理できます。IoT アプリケーションは、ストリームの読み書きが可能です。ストレージタイプ、サイズ、データ保持に関するポリシーをストリームごとに定義して、ストリームマネージャーがストリームを処理およびエクスポートする方法を制御できます。
ストリームマネージャーは、断続的または制限された接続環境で動作するように設計されています。帯域幅の使用、タイムアウト動作、コアが接続または切断されたときのストリームデータの処理方法を定義できます。重要なデータの場合は、優先順位を設定して、ストリームを AWS クラウドにエクスポートする順序を制御できます。
への自動エクスポートを設定して、 AWS クラウド ストレージや、さらに処理および分析を行うことができます。ストリームマネージャーは、次の AWS クラウド 宛先へのエクスポートをサポートしています。
のチャネル AWS IoT Analytics。 AWS IoT Analytics を使用すると、データに対して高度な分析を実行して、ビジネス上の意思決定を行い、機械学習モデルを改善できます。詳細については、「 AWS IoT Analytics ユーザーガイド」の「What is AWS IoT Analytics?」を参照してください。
Kinesis Data Streams のストリーム Kinesis Data Streams は、一般的に、大量のデータを集約して、データウェアハウスまたは MapReduce クラスターに読み込むために使用されます。詳細については、「Amazon Kinesis デベロッパーガイド」の「Amazon Kinesis Data Streams とは」を参照してください。
のアセットプロパティ AWS IoT SiteWise。 AWS IoT SiteWise を使用すると、産業機器からデータを大規模に収集、整理、分析できます。詳細については、「 AWS IoT SiteWise ユーザーガイド」の「What is AWS IoT SiteWise?」を参照してください。
Amazon S3 のオブジェクト。Amazon S3 を使用すると、膨大なデータの保存と取得を行えます。詳細については、「Amazon Simple Storage Service デベロッパーガイド」の「Amazon S3 とは」を参照してください。
ストリーム管理ワークフロー
IoT アプリケーションは、 AWS IoT Greengrass Core SDK を介してストリームマネージャーとやり取りします。単純なワークフローの場合、Greengrass コア上で実行されるユーザー定義 Lambda 関数は、時系列温度や圧力メトリクスなどの IoT データを消費します。Lambda 関数は、データをフィルタリングまたは圧縮し、 AWS IoT Greengrass Core SDK を呼び出してストリームマネージャーのストリームにデータを書き込む場合があります。ストリームマネージャーは、ストリームに定義されたポリシーに基づいて、ストリームを自動的に AWS クラウド にエクスポートします。ユーザー定義 Lambda 関数は、ローカルデータベースまたはストレージリポジトリにデータを直接送信することもできます。
IoT アプリケーションには、ストリームの読み書きを行うユーザー定義 Lambda 関数を複数含めることができます。これらのローカル Lambda 関数は、ストリームに対して読み書きを行い、データをローカルでフィルタリング、集約、分析できます。これにより、コアからクラウドまたはローカルの送信先にデータを転送する前に、ローカルイベントに迅速に対応し、貴重な情報を抽出することができます。
次の図に、ワークフローの例を示します。

ストリームマネージャーを使用するには、まずストリームマネージャーパラメータを設定して、Greengrass Core 上のすべてのストリームに適用するグループレベルのランタイム設定を定義します。これらのカスタマイズ可能な設定を使用すると、ビジネスニーズと環境の制約に基づいて、ストリームマネージャーがストリームを保存、処理、エクスポートする方法を制御できます。詳細については、「AWS IoT Greengrass ストリームマネージャーを設定する」を参照してください。
ストリームマネージャーを設定したら、IoT アプリケーションを作成してデプロイできます。これらは通常、 AWS IoT Greengrass Core SDK StreamManagerClient
で を使用してストリームを作成および操作するユーザー定義の Lambda 関数です。この Lambda 関数は、ストリームの作成時に、エクスポート先、優先度、永続性といった、ストリームごとのポリシーを定義します。StreamManagerClient
操作用コードスニペットなどの詳細については、「ストリームを操作するために StreamManagerClient を使用する」を参照してください。
単純なワークフローを設定するチュートリアルについては、「AWS クラウド へのデータストリームエクスポート (コンソール)」または「データストリームを にエクスポートする AWS クラウド (CLI)」を参照してください。
要件
ストリームマネージャーを使用する際に次の要件が適用されます。
-
Core AWS IoT Greengrass ソフトウェア v1.10 以降を使用し、ストリームマネージャーを有効にする必要があります。詳細については、「AWS IoT Greengrass ストリームマネージャーを設定する」を参照してください。
ストリームマネージャーは OpenWrt ディストリビューションではサポートされていません。
-
Java 8 ランタイム (JDK 8) をコアにインストールする必要があります。
-
Debian ベースのディストリビューション (Raspbian を含む) または Ubuntu ベースのディストリビューションの場合は、次のコマンドを実行します。
sudo apt install openjdk-8-jdk
-
Red Hat ベースのディストリビューション (Amazon Linux を含む) の場合は、次のコマンドを実行します。
sudo yum install java-1.8.0-openjdk
詳細については、OpenJDK ドキュメントの「How to download and install prebuilt OpenJDK packages
」を参照してください。
-
-
ストリームマネージャーには、基本 AWS IoT Greengrass Core ソフトウェアに加えて、70 MB 以上の RAM が必要です。合計メモリ要件は、ワークロードによって異なります。
-
ユーザー定義の Lambda 関数は、AWS IoT Greengrass Core SDK を使用してストリームマネージャーと対話する必要があります。 AWS IoT Greengrass Core SDK は複数の言語で利用できますが、ストリームマネージャーオペレーションをサポートしているのは次のバージョンのみです。
Java SDK (v1.4.0 以降)
Python SDK (v1.5.0 以降)
Node.js SDK (v1.6.0 以降)
Lambda 関数ランタイムに対応する SDK のバージョンをダウンロードし、Lambda 関数デプロイパッケージに含めます。
注記
AWS IoT Greengrass Core SDK for Python には Python 3.7 以降が必要で、その他のパッケージ依存関係があります。詳細については、「Lambda 関数のデプロイパッケージを作成する (コンソール)」または「Lambda 関数のデプロイパッケージを作成する (CLI)」を参照してください。
-
ストリームの AWS クラウド エクスポート先を定義する場合は、エクスポートターゲットを作成し、Greengrass グループロールでアクセス許可を付与する必要があります。送信先により、他の要件も適用される場合があります。詳細については、以下を参照してください。
これらの AWS クラウド リソースを維持するのはお客様の責任です。
データセキュリティ
ストリームマネージャーを使用する場合は、次のセキュリティ上の考慮事項に注意してください。
ローカルデータセキュリティ
AWS IoT Greengrass は、コアデバイスのコンポーネント間で保管中または転送中のストリームデータをローカルで暗号化しません。
保管時のデータ。ストリームデータは、Greengrass コアのストレージディレクトリにローカルに保存されます。データセキュリティのために、 は、Unix ファイルのアクセス許可とフルディスク暗号化が有効になっている場合 AWS IoT Greengrass に依存します。オプションの STREAM_MANAGER_STORE_ROOT_DIR パラメータを使用して、ストレージディレクトリを指定できます。このパラメータを後で変更して別のストレージディレクトリを使用する場合、 AWS IoT Greengrass は以前のストレージディレクトリまたはそのコンテンツを削除しません。
ローカルに送信されるデータ。 AWS IoT Greengrass は、データソース、Lambda 関数、 AWS IoT Greengrass Core SDK、ストリームマネージャー間でコアでローカルに送信されるストリームデータを暗号化しません。
に転送中のデータ AWS クラウド。ストリームマネージャーによって にエクスポートされたデータストリームは、Transport Layer Security (TLS) による標準 AWS サービスクライアント暗号化 AWS クラウド を使用します。
詳細については、「データ暗号化」を参照してください。
クライアント承認
ストリームマネージャークライアントは AWS IoT Greengrass Core SDK を使用してストリームマネージャーと通信します。クライアント認証が有効になっている場合、Greengrass グループの Lambda 関数だけがストリームマネージャーのストリームと対話できます。クライアント認証が無効になっている場合、Greengrass コアで実行されているプロセス (Docker コンテナなど) は、ストリームマネージャーのストリームと対話できます。ビジネスケースで要求される場合にのみ、認証を無効にする必要があります。
クライアント認証モードを設定するには、STREAM_MANAGER_AUTHENTICATE_CLIENT パラメータを使用します。このパラメータは、 コンソールまたは AWS IoT Greengrass API から設定できます。変更は、グループがデプロイされた後に有効になります。
有効 | 無効 | |
---|---|---|
パラメータ値 |
|
|
許可されるクライアント |
Greengrass グループのユーザー定義 Lambda 関数 |
Greengrass グループのユーザー定義 Lambda 関数 Greengrass コアデバイスで実行されているその他のプロセス |