View a markdown version of this page

AWS IoT Greengrass コア上のデータストリームを管理する - AWS IoT Greengrass

サポート終了通知: 2026 年 10 月 7 日、 AWS はサポートを終了します AWS IoT Greengrass Version 1。2026 年 10 月 7 日以降、 AWS IoT Greengrass V1 リソースにアクセスできなくなります。詳細については、「 からの移行 AWS IoT Greengrass Version 1」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS IoT Greengrass コア上のデータストリームを管理する

AWS IoT Greengrass ストリームマネージャーを使用すると、大量の IoT データを に簡単かつ確実に転送できます AWS クラウド。ストリームマネージャーはデータストリームをローカルで処理し、 AWS クラウド に自動的にエクスポートします。この機能は、機械学習 (ML) 推論などの一般的なエッジシナリオと統合され、データがローカルで処理および分析されてから、 AWS クラウド またはローカルストレージの送信先にエクスポートされます。

ストリームマネージャーは、アプリケーション開発を簡素化します。IoT アプリケーションは、カスタムストリーム管理機能を構築する代わりに、標準化されたメカニズムを使用して大量のストリームを処理し、ローカルデータ保持ポリシーを管理できます。IoT アプリケーションは、ストリームの読み書きが可能です。ストレージタイプ、サイズ、データ保持に関するポリシーをストリームごとに定義して、ストリームマネージャーがストリームを処理およびエクスポートする方法を制御できます。

ストリームマネージャーは、断続的または制限された接続環境で動作するように設計されています。帯域幅の使用、タイムアウト動作、コアが接続または切断されたときのストリームデータの処理方法を定義できます。重要なデータの場合は、優先順位を設定して、ストリームを AWS クラウドにエクスポートする順序を制御できます。

への自動エクスポートを設定して、 AWS クラウド ストレージまたはさらなる処理と分析を行うことができます。ストリームマネージャーは、次の AWS クラウド 宛先へのエクスポートをサポートしています。

  • Kinesis Data Streams のストリーム Kinesis Data Streams は、一般的に、大量のデータを集約して、データウェアハウスまたは MapReduce クラスターに読み込むために使用されます。詳細については、「Amazon Kinesis デベロッパーガイド」の「Amazon Kinesis Data Streams とは」を参照してください。

  • のアセットプロパティ AWS IoT SiteWise。 AWS IoT SiteWise を使用すると、産業機器からデータを大規模に収集、整理、分析できます。詳細については、「 とは」を参照してください AWS IoT SiteWise。 AWS IoT SiteWise 「 ユーザーガイド」の「」を参照してください

  • Amazon S3 のオブジェクト。Amazon S3 を使用すると、膨大なデータの保存と取得を行えます。詳細については、「Amazon Simple Storage Service デベロッパーガイド」の「Amazon S3 とは」参照してください。

注記

AWS IoT Analytics は 2025 年 12 月 15 日に廃止され、サポートされるエクスポート先ではなくなりました。IoTAnalyticsConfig エクスポート先でストリームを設定している場合は、エクスポートの試行が継続的に失敗しないようにストリームを削除します。詳細については、「AWS IoT Analytics チャネル (中止)」を参照してください。

ストリーム管理ワークフロー

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 コアのストレージディレクトリにローカルに保存されます。データセキュリティの場合、 AWS IoT Greengrass は Unix ファイルのアクセス許可と、有効にするとフルディスク暗号化に依存します。オプションの 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 から設定できます。変更は、グループがデプロイされた後に有効になります。

  有効 無効

パラメータ値

true (デフォルトおよび推奨)

false

許可されるクライアント

Greengrass グループのユーザー定義 Lambda 関数

Greengrass グループのユーザー定義 Lambda 関数

Greengrass コアデバイスで実行されているその他のプロセス

関連情報