AWS IoT Greengrass バージョン 1 のドキュメントを参照することができます。AWS IoT Greengrass バージョン 2 は、AWS IoT Greengrass の最新のメジャーバージョンです。AWS IoT Greengrass バージョン 2 の使用の詳細については、「AWS Greengrass V2 開発者ガイドIoT」を参照してください。
「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
AWS IoT Greengrass とは
AWS IoT Greengrass は、クラウドの機能をローカルデバイスに拡張するソフトウェアです。これにより、デバイスは情報源に近いデータを収集および分析して、ローカルイベントに自律的に反応し、ローカルネットワークで互いに安全に通信することができます。ローカルデバイスは、AWS IoT Core と安全に通信し、IoT データを AWS クラウドにエクスポートすることもできます。AWS IoT Greengrass 開発者は、AWS Lambda 関数とあらかじめ構築されたコネクタを使用して、ローカル実行のためにデバイスにデプロイされるサーバーレスアプリケーションを作成できます。
AWS IoT Greengrass の基本的なアーキテクチャを次の図に示します。

AWS IoT Greengrass により、お客様は IoT デバイスとアプリケーションロジックを構築できます。具体的には、AWS IoT Greengrass により、デバイス上で動作するアプリケーションロジックのクラウドベースの管理が可能になります。ローカルにデプロイした Lambda 関数とコネクタは、ローカルイベント、クラウドからのメッセージ、またはその他のソースによってトリガーされます。
AWS IoT Greengrass では、デバイスはローカルネットワーク上で安全に通信し、クラウドに接続することなくメッセージを交換します。AWS IoT Greengrass は、クラウドへのインバウンドおよびアウトバウンドメッセージが保存されるように、接続が失われた場合にインテリジェントにメッセージをバッファできる、ローカル pub/sub メッセージマネージャーを提供します。
AWS IoT Greengrass でのユーザーデータの保護方法は以下のとおりです。
-
デバイスの安全な認証と認可を介して保護。
-
ローカルネットワークの安全な接続を介して保護。
-
ローカルデバイスとクラウドの間で保護。
デバイスのセキュリティ認証情報は、クラウドへの接続が中断された場合でも、失効するまでグループで機能するため、デバイスはローカルで安全に通信を続けることができます。
AWS IoT Greengrass は、Lambda 関数の安全な無線によるソフトウェア更新をサポートします。
AWS IoT Greengrass は以下の要素によって構成される
-
ソフトウェアディストリビューション
-
AWS IoT Greengrass Core ソフトウェア
-
AWS IoT Greengrass Core SDK
-
-
クラウドサービス
-
AWS IoT Greengrass API
-
-
機能
-
Lambda ランタイム
-
シャドウの実装
-
メッセージマネージャー
-
グループ管理
-
検出サービス
-
無線通信経由更新エージェント
-
ストリームマネージャー
-
ローカルリソースアクセス
-
ローカル機械学習推論
-
ローカルシークレットマネージャー
-
サービス、プロトコル、およびソフトウェアとの組み込み統合を備えたコネクタ
-
AWS IoT Greengrass Core ソフトウェア
AWS IoT Greengrass Core ソフトウェアには、以下の機能が用意されています。
-
コネクタと Lambda 関数のデプロイとローカル実行。
-
AWS クラウドへの自動エクスポートにより、データストリームをローカルで処理します。
-
マネージドサブスクリプションを使用したデバイス、コネクタ、および Lambda 関数間のローカルネットワークを介した MQTT メッセージング。
-
マネージドサブスクリプションを使用した AWS IoT とデバイス、コネクタと Lambda 関数間の MQTT メッセージング。
-
デバイスの認証と承認を使用したデバイスと AWS クラウド間の安全な接続。
-
デバイスのローカルシャドウ同期。シャドウは AWS クラウドと同期するように設定できます。
-
ローカルデバイスとボリュームリソースへの制御されたアクセス。
-
ローカル推論を実行するためにクラウドでトレーニングされた機械学習モデルのデプロイ。
-
デバイスで Greengrass コアデバイスを検出するための IP アドレス自動検出。
-
新規作成または更新されたグループ設定の一元的デプロイ。設定データをダウンロードすると、コアデバイスが自動的に再起動されます。
-
ユーザー定義の Lambda 関数の安全な無線通信経由 (OTA) のソフトウェア更新。
-
コネクタと Lambda 関数で制御される、ローカルシークレットの安全な暗号化されたストレージ。
AWS IoT Greengrass コア インスタンスは、クラウドに保存された AWS IoT Greengrass グループ定義を作成および更新する APIs AWS IoT Greengrass を介して設定されます。
AWS IoT Greengrass Core ソフトウェアのバージョン
AWS IoT Greengrass では、tar.gz ダウンロードファイル、クイックスタートスクリプト、および apt
をサポートされている Debian プラットフォームにインストールするなど、AWS IoT Greengrass Core ソフトウェアをインストールするためのいくつかのオプションを利用できます。詳細については、「AWS IoT Greengrass Core ソフトウェアをインストールします。」を参照してください。
次のタブでは、AWS IoT Greengrass Core ソフトウェアのバージョンの最新情報と変更について説明しています。
AWS IoT Greengrass グループ
Greengrass グループは、Greengrass コア、デバイス、サブスクリプションなどのコンポーネントと設定のコレクションです。グループは、操作の範囲を定義するために使用されます。たとえば、グループは建物の 1 つの階、1 台のトラック、または採掘現場全体を表します。次の図は、Greengrass グループを構成するために使用できるコンポーネントを示しています。

前の図の各オブジェクトについて説明します。
- A: Greengrass グループの定義
-
グループの設定とコンポーネントに関する情報。
- B: Greengrass グループの設定
-
具体的には次のとおりです。
-
Greengrass グループのロール。
-
認証機関とローカル接続の設定。
-
Greengrass コアの接続情報。
-
デフォルトの Lambda ランタイム環境。詳細については、「グループ内の Lambda 関数のコンテナ化のデフォルト設定」を参照してください。
-
CloudWatch とローカルログ設定。詳細については、「AWS IoT Greengrass ログでのモニタリング」を参照してください。
-
- C: Greengrass コア
-
Greengrass コアを表す AWS IoT モノ (デバイス)。詳細については、「AWS IoT Greengrass Core の設定」を参照してください。
- D: Lambda 関数の定義
-
Core でローカルに実行されて設定データが関連付けられている Lambda 関数のリスト。詳細については、「AWS IoT Greengrass Core での Lambda 関数の実行」を参照してください。
- E: サブスクリプション定義
-
MQTT メッセージを使用して通信を可能にするサブスクリプションのリスト。サブスクリプションは以下を定義します。
-
メッセージの送信元とメッセージターゲット。デバイス、Lambda 関数、コネクタ、AWS IoT Core、ローカルシャドウサービスがこれに該当します。
-
メッセージのフィルタリングに使用するトピックまたは件名。
詳細については、「MQTT メッセージングワークフローにおけるマネージドサブスクリプション」を参照してください。
-
- F: コネクタの定義
-
コアでローカルに実行され、関連する設定データを含むコネクタのリスト。詳細については、「Greengrass コネクタを使用したサービスおよびプロトコルとの統合」を参照してください。
- G: デバイス定義
-
Greengrass グループのメンバーである AWS IoT モノ (デバイス) および関連する設定データのリスト。詳細については、「AWS IoT Greengrass のデバイス」を参照してください。
- H: リソースの定義
-
Greengrass コアのローカルリソース、機械学習リソース、シークレットリソース、および関連する設定データのリスト。詳細については、「Lambda 関数とコネクタを使ってローカルリソースにアクセスする」、「機械学習の推論を実行する」、および「AWS IoT Greengrass Core にシークレットをデプロイする」を参照してください。
デプロイすると、Greengrass グループの定義、Lambda 関数、コネクタ、リソース、およびサブスクリプションテーブルがコアデバイスにコピーされます。詳細については、「AWS IoT Greengrass グループを AWS IoT Greengrass Core にデプロイする」を参照してください。
AWS IoT Greengrass のデバイス
Greengrass グループには、次の 2 種類の AWS IoT デバイスを含めることができます。
- Greengrass コア
-
Greengrass コアは、AWS IoT Greengrass Core ソフトウェアを実行するデバイスです。これにより、AWS IoT Core および AWS IoT Greengrass サービスと直接通信できます。コアには、AWS IoT Core で認証するための独自のデバイス証明書があります。これは、AWS IoT Core レジストリ内にデバイスシャドウと エントリを備えています。Greengrass コアは、ローカル Lambda ランタイム、デプロイエージェント、および IP アドレストラッカーを実行します。IP アドレストラッカーから AWS IoT Greengrass サービスに IP アドレス情報が送信されることで、Greengrass デバイスはそのグループおよびコア接続情報を自動的に検出できます。詳細については、「AWS IoT Greengrass Core の設定」を参照してください。
注記 Greengrass グループに含められるコアは 1 つのみです。
- Greengrass コアに接続されたデバイス
-
接続されたデバイス (Greengrass デバイスとも呼ばれます) には、独自の AWS IoT Core 認証用のデバイス証明書、デバイスシャドウ、および AWS IoT Core レジストリ内のエントリもあります。Greengrass デバイスは、FreeRTOS を実行するか、AWS IoT Device SDK または AWS IoT Greengrass 検出 API を使用して、同じ Greengrass グループ内のコアとの接続と認証に使用される検出情報を取得します。 AWS IoT コンソール を使用して AWS IoT Greengrass のデバイスを作成および設定する方法については、「モジュール 4: AWS IoT Greengrass グループでのデバイスの操作」を参照してください。または、AWS CLI を使用して AWS IoT Greengrass のデバイスを作成および設定する例については、https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-device-definition.html の「create-device-definitionAWS CLI Command Reference」を参照してください。
Greengrass グループでは、デバイスが MQTT を介して Lambda 関数、コネクタ、およびグループ内の他のデバイスと通信したり、AWS IoT Core またはローカルシャドウサービスと通信したりできるようにするサブスクリプションを作成できます。MQTT メッセージはコアを通じてルーティングされます。コアデバイスがクラウドから切断された場合、デバイスはローカルネットワークを介して通信を続けることができます。デバイスのサイズは、マイクロコントローラーベースの小型デバイスから大型アプライアンスまでさまざまです。現在、Greengrass グループには最大 2500 台のデバイスを含めることができます。デバイスは、最大 10 個のグループのメンバーにすることができます。
注記 OPC-UA は、産業通信用の情報交換標準です。Greengrass コアで OPC-UA のサポートを実装するには、IoT SiteWise コネクタ.を使用できます。コネクタは、産業用デバイスデータを OPC-UA サーバーから のアセットプロパティに送信します。AWS IoT SiteWise.
これらのデバイスタイプ間の関係を次の表に示します。

AWS IoT Greengrass コア デバイスでは、証明書が 2 つの場所に保存されます。
-
のコアデバイス証明書。
/
通常、コアデバイス証明書の名前はgreengrass-root
/certs
です (たとえば、hash
.cert.pem86c84488a5.cert.pem
)。この証明書は、コアが AWS IoT Core および AWS IoT Greengrass サービスに接続するとき、相互認証のために AWS IoT クライアントによって使用されます。 -
の MQTT サーバー証明書。
/
MQTT サーバー証明書の名前はgreengrass-root
/ggc/var/state/serverserver.crt
です。 この証明書は、ローカル MQTT サーバー (Greengrass コア上) と Greengrass デバイスとの間で相互認証に使用されます。注記 greengrass-root
は、デバイスで AWS IoT Greengrass Core ソフトウェアがインストールされているパスを表します。通常、これは/greengrass
ディレクトリです。
SDKs
以下の AWS が提供する SDKs は AWS IoT Greengrass で機能するために使用されます。
- AWS SDK
-
AWS SDK では、AWS、Amazon S3、Amazon DynamoDB、AWS IoT など、AWS IoT Greengrass のサービスとやり取りするアプリケーションを構築します。AWS IoT Greengrass のコンテキストでは、デプロイした AWS 関数内で Lambda SDK を使用して AWS のサービスを直接呼び出すことができます。詳細については、「」を参照してください。AWS SDKs.
注記 AWS で使用できる Greengrass 固有のオペレーションは、SDKs API および AWS IoT Greengrass でも利用できます。AWS CLI
- AWS IoTDevice SDK
-
Device SDK は、デバイスを AWS IoT と AWS IoT Core に接続するのに役立ちます。AWS IoT Greengrass詳細については、AWS IoT の「SDKsデバイス 」を参照してください。AWS IoT 開発者ガイド
デバイスは、任意の AWS IoT Device SDK v2 プラットフォームを使用して Greengrass コアの接続情報を検出できます。接続情報には次が含まれます。
-
デバイスが属する Greengrass グループの IDs。
-
各グループの Greengrass コアの IP アドレス。これらはコアエンドポイントとも呼ばれます。
-
コアとの相互認証に使用するグループ CA 証明書。詳細については、「」を参照してください。デバイス接続のワークフロー.
注記 デバイス AWS IoT の v1 では、C++ および Python プラットフォームだけが組み込み検出サポートを提供します。SDKs
-
- AWS IoT Greengrass Core SDK
-
AWS IoT Greengrass Core SDK を使用すると、Lambda 関数は Greengrass コアとのやり取り、AWS IoT へのメッセージの発行、ローカルシャドウサービスとのやり取り、他のデプロイ済み Lambda 関数の呼び出し、およびシークレットリソースへのアクセスを行うことができます。この SDK は、Lambda で実行される AWS IoT Greengrass コア. 関数で使用します。詳細については、「」を参照してください。AWS IoT Greengrass Core SDK.
- AWS IoT Greengrass Machine Learning SDK
-
AWS IoT Greengrass Machine Learning SDK により、Lambda 関数は Greengrass コアに機械学習リソースとしてデプロイされる機械学習モデルを使用できます。この SDK は、Lambda で動作してローカル推論サービスとやり取りする AWS IoT Greengrass コア 関数で使用します。詳細については、「」を参照してください。AWS IoT Greengrass Machine Learning SDK.
サポートされているプラットフォームと要件
以下の各タブは、サポートされているプラットフォームと AWS IoT Greengrass Core ソフトウェアの要件を一覧表示します。
AWS IoT Greengrass Core ソフトウェアは、AWS IoT Greengrass Core ソフトウェアダウンロード からダウンロードできます。
クォータ (制限) の詳細については、AWS IoT Greengrass の「 Service Quotas 」を参照してください。アマゾン ウェブ サービス全般のリファレンス
料金に関する詳細は、「AWS IoT Greengrass 料金表
AWS IoT Greengrass ダウンロード
AWS IoT Greengrass で使用するソフトウェアを見つけてダウンロードするには、以下の情報を使用できます。
AWS IoT Greengrass Core ソフトウェア
AWS IoT Greengrass Core ソフトウェアは、AWS の機能を AWS IoT Greengrass コア デバイスに拡張することで、ローカルデバイスで生成したデータをローカルに操作できるようにします。
このソフトウェアをダウンロードすると、Greengrass Core ソフトウェアのライセンス契約
デバイスに AWS IoT Greengrass Core ソフトウェアをインストールするためのその他のオプションについては、「AWS IoT Greengrass Core ソフトウェアをインストールします。」を参照してください。
AWS IoT Greengrass スナップソフトウェア
AWS IoT Greengrass snap v1.11.0 を使用すると、コンテナ化された環境で、必要な依存関係と共に便利なソフトウェアパッケージを介して、AWS IoT Greengrass の制限されたバージョンを実行できます。
スナップは AWS IoT Greengrass Core ソフトウェア v1.11.0 以降で使用できます。AWS IoT Greengrassサポートされていないバージョンのバグ修正や更新プログラムは受けられません。
スナップは、コネクタおよびAWS IoT Greengrass機械学習Machine Learning
詳細については、「スナップでの AWS IoT Greengrass の実行」を参照してください。
AWS IoT Greengrass Docker ソフトウェア
AWS には、Docker コンテナで AWS IoT Greengrass を簡単に実行できるように Dockerfile と Docker イメージが用意されています。
- Dockerfile
-
Dockerfile には、AWS IoT Greengrass コンテナのカスタムイメージを構築するためのソースコードが含まれています。イメージを変更して、別のプラットフォームのアーキテクチャで実行したり、イメージサイズを縮小したりできます。手順については、README ファイルを参照してください。
該当する AWS IoT Greengrass Core ソフトウェアバージョンをダウンロードします。
- Docker イメージ
-
Docker イメージには、Amazon Linux 2 (x86_64) および Alpine Linux (x86_64、Armv7l、または AWS IoT Greengrass) のベースイメージにインストールされた AArch64 Core ソフトウェアと依存関係があります。構築済みのイメージを使用して、AWS IoT Greengrass の試用を開始できます。
構築済みのイメージは、 Docker Hub
または Amazon Elastic Container Registry (Amazon ECR) からダウンロードします。 注記 構築済みのイメージを Amazon ECR からダウンロードして実行する手順については、「Docker コンテナでの AWS IoT Greengrass の実行」を参照してください。
latest
タグは、Amazon Linux 2 ベースイメージにインストールされた最新の安定バージョンの AWS IoT Greengrass Core ソフトウェアと依存関係を表します。すべての使用可能なイメージを確認するには、Docker Hub の [タグ] ページを参照してください。注記 デフォルトでは、
alpine-aarch64
イメージとalpine-armv7l
イメージは Armベースのホストでのみ実行できます。これらのイメージを x86 ホストで実行するには、QEMUをインストールして QEMU ライブラリをホストにマウントできます。次に例を示します。 docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
AWS IoT Greengrass Core SDK
Lambda 関数は AWS IoT Greengrass Core SDK を使用してローカルで AWS IoT Greengrass コア とやり取りします。これにより、デプロイされた Lambda 関数に以下を許可します。
-
で MQTT メッセージを交換します。AWS IoT Core.
-
Greengrass グループのコネクタ、デバイス、その他 Lambda 関数で MQTT メッセージを交換します。
-
ローカル車道サービスとやり取りを行います。
-
他のローカル Lambda 関数を呼び出します。
-
シークレットリソース.にアクセスします。
-
ストリームマネージャー.と対話します。
使用している言語またはプラットフォームの AWS IoT Greengrass Core SDK を GitHub からダウンロードします。
詳細については、「AWS IoT Greengrass Core SDK」を参照してください。
サポートされている Machine Learning ランタイムおよびライブラリ
Greengrass コアで推論を実行するには、ML モデルタイプ用の機械学習ランタイムまたはライブラリをインストールする必要があります。
AWS IoT Greengrass は、次の ML モデルタイプをサポートしています。モデルタイプおよびデバイスプラットフォーム用のランタイムまたはライブラリをインストールする方法については、次のリンクを参照してください。
機械学習のサンプル
AWS IoT Greengrass には、サポートされている ML ランタイムとライブラリで使用できるサンプルが用意されています。これらのサンプルは、Greengrass Core ソフトウェアライセンス契約
AWS IoT Greengrass ML SDK ソフトウェア
AWS IoT Greengrass Machine Learning SDK を使用すると、作成した Lambda 関数がローカルの機械学習モデルを使用し、データを ML フィードバック コネクタに送信してアップロードおよび発行できます。
ご意見をお待ちしております
ご意見をお待ちしております。お問い合わせの場合は、AWS IoT Greengrass フォーラム