AWS IoT Greengrass V1 と の違い AWS IoT Greengrass V2 - AWS IoT Greengrass

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

AWS IoT Greengrass V1 と の違い AWS IoT Greengrass V2

AWS IoT Greengrass V2 では、デバイス、フリート、デプロイ可能なソフトウェアに関する新しい基本概念が導入されました。このセクションでは、V2 では異なる V1 の概念について説明します。

Greengrass の概念と用語
概念 AWS IoT Greengrass V1 AWS IoT Greengrass V2

アプリケーションコード

では AWS IoT Greengrass V1、Lambda 関数はコアデバイスで実行されるソフトウェアを定義します。各 Greengrass グループで、関数が使用するサブスクリプションとローカルリソースを定義します。 AWS IoT Greengrass Core ソフトウェアがコンテナ化された Lambda ランタイム環境で実行される Lambda 関数の場合、メモリ制限などのコンテナパラメータを定義します。

では AWS IoT Greengrass V2、コンポーネントはコアデバイスで実行されるソフトウェアモジュールです。

  • 各コンポーネントにはコンポーネントのライフサイクルの各段階で実行するメタデータや、パラメータ、依存関係、スクリプトを定義した recipe があります。

  • recipe は、コンポーネントのアーティファクトも定義します。これらは、スクリプト、コンパイルされたコード、静的リソースなどのバイナリファイルです。

  • コアデバイスにコンポーネントをデプロイすると、コアデバイスによってコンポーネント recipe とアーティファクトがダウンロードされ、コンポーネントが実行されます。

AWS IoT Greengrass V2 で Lambda ランタイム環境で実行されるコンポーネントとして V1 Lambda 関数をインポートできます。Lambda 関数をインポートするときは、関数のサブスクリプション、ローカルリソース、およびコンテナパラメータを指定します。詳細については、「ステップ 2: AWS IoT Greengrass V2 コンポーネントを作成してデプロイし、 AWS IoT Greengrass V1 アプリケーションを移行する」を参照してください。

カスタムコンポーネントを作成する方法の詳細については、「AWS IoT Greengrass コンポーネントを開発する」を参照してください。

AWS IoT Greengrass グループとデプロイ

では AWS IoT Greengrass V1、グループはコアデバイス、そのコアデバイスの設定とソフトウェア、およびそのコアデバイスに接続できる AWS IoT モノのリストを定義します。グループの設定をコアデバイスに送信するデプロイを作成します。

では AWS IoT Greengrass V2、デプロイを使用して、コアデバイスで実行されるソフトウェアコンポーネントと設定を定義します。

  • 各デプロイは、単一のコアデバイス ( AWS IoT モノ) または複数のコアデバイスを含むことができる AWS IoT モノのグループを対象としています。

  • モノグループへのデプロイは継続的であるため、コアデバイスをモノグループに追加すると、そのグループのソフトウェア設定を受信します。

詳細については、「デバイスに AWS IoT Greengrass コンポーネントのデプロイ」を参照してください。

では AWS IoT Greengrass V2、Greengrass CLI を使用してローカルデプロイを作成し、開発するデバイスでカスタムソフトウェアコンポーネントをテストすることもできます。詳細については、「AWS IoT Greengrass コンポーネントの作成」を参照してください。

AWS IoT Greengrass Core ソフトウェア

では AWS IoT Greengrass V1、 AWS IoT Greengrass Core ソフトウェアは、ソフトウェアとそのすべての機能を含む単一のパッケージです。 AWS IoT Greengrass Core ソフトウェアをインストールするエッジデバイスは Greengrass コアと呼ばれます。

では AWS IoT Greengrass V2、 AWS IoT Greengrass Core ソフトウェアはモジュール式であるため、メモリフットプリントを制御するために何をインストールするかを選択できます。

  • Greengrass nucleus コンポーネントは、 AWS IoT Greengrass Core ソフトウェアのインストールに最低限必要なコンポーネントです。nucleus をインストールするエッジデバイスは、Greengrass コアデバイスと呼ばれます。

  • nucleus は、コアデバイス上の他のコンポーネントのデプロイ、オーケストレーション、およびライフサイクル管理を行います。

  • ストリームマネージャー、シークレットマネージャー、ログマネージャーなどの機能は、それらの機能が必要な場合にのみデプロイするコンポーネントです。詳細については、「AWS が提供したコンポーネント」を参照してください。

Connector

では AWS IoT Greengrass V1、コネクタは、ローカルインフラストラクチャ、デバイスプロトコル、およびその他のクラウドサービスとやり取りするために AWS IoT Greengrass V1 コアデバイスにデプロイする構築済みのモジュール AWSです。

では AWS IoT Greengrass V2、 は V1 のコネクタが提供する機能を実装する Greengrass コンポーネント AWS を提供します。以下の AWS IoT Greengrass V2 コンポーネントは Greengrass V1 コネクタ機能を提供します。

詳細については、「AWS が提供したコンポーネント」を参照してください。

接続デバイス (Greengrass デバイス)

では AWS IoT Greengrass V1、接続されたデバイスとは、Greengrass グループに追加して、そのグループ内のコアデバイスに接続し、MQTT 経由で通信する AWS IoT モノです。接続デバイスを追加または削除するたびに、そのグループをデプロイする必要があります。サブスクリプションを使用して、接続されたデバイス AWS IoT Coreとコアデバイスのアプリケーション間でメッセージをリレーします。

では AWS IoT Greengrass V2、接続されたデバイスは Greengrass クライアントデバイスと呼ばれます。

  • クライアントデバイスをコアデバイスに関連付けて、それらを接続し、MQTT 経由で通信します。

  • クライアントデバイスの接続を認可するには、クライアントデバイスのグループに適用できる認証ポリシーを定義します。そのため、クライアントデバイスを追加または削除するためのデプロイを作成する必要はありません。

  • クライアントデバイス AWS IoT Coreと Greengrass コンポーネント間でメッセージをリレーするには、オプションの MQTT ブリッジコンポーネントを設定できます。

AWS IoT Greengrass V1 と の両方で AWS IoT Greengrass V2、デバイスは FreeRTOS を実行するか、 AWS IoT Device SDK または Greengrass 検出 API を使用して、接続できるコアデバイスに関する情報を取得できます。Greengrass Discovery API は下位互換性があるため、V1 コアデバイスに接続するクライアントデバイスがある場合は、コードを変更せずに V2 コアデバイスに接続できます。

デバイスクラスの詳細については、「ローカル IoT デバイスとやり取りする」を参照してください。

ローカルリソース

では AWS IoT Greengrass V1、コンテナで実行される Lambda 関数は、コアデバイスのファイルシステム上のボリュームとデバイスにアクセスするように設定できます。これらのファイルシステムリソースは、ローカルリソースと呼ばれます。

では AWS IoT Greengrass V2、Lambda 関数Docker コンテナ ネイティブオペレーティングシステムプロセス またはカスタムランタイム であるコンポーネントを実行できます。

  • コンテナ化された Lambda 関数をコンポーネントとしてインポートする場合は、関数が使用するローカルリソースを指定する必要があります。

  • コンテナ化されていない Lambda 関数と Lambda 以外のコンポーネントは、コアデバイス上のローカルリソースを直接操作できるため、コンポーネントが使用するローカルリソースを指定する必要はありません。

ローカルシャドウサービス

では AWS IoT Greengrass V1、ローカルシャドウサービスはデフォルトで有効になっており、名前のないクラシックシャドウのみをサポートします。Lambda 関数で AWS IoT Greengrass Core SDK を使用して、デバイスのシャドウを操作します。

では AWS IoT Greengrass V2、シャドウマネージャーコンポーネントをデプロイしてローカルシャドウサービスを有効にします。

  • AWS IoT Device SDK V2 を Lambda 関数とカスタムコンポーネントで使用して、デバイスのシャドウとやり取りできます。

  • ローカルシャドウサービスは、名前付きシャドウをサポートします。

  • ローカルシャドウサービスを使用すると、シャドウを削除し、削除されたシャドウを と同期できます AWS IoT Core。

詳細については、「デバイスシャドウとやり取り」を参照してください。

サブスクリプション

では AWS IoT Greengrass V1、Greengrass グループのサブスクリプションを定義して、Lambda 関数、コネクタ、接続されたデバイス、 AWS IoT Core MQTT ブローカー、ローカルシャドウサービス間の通信チャネルを指定します。サブスクリプションは、関数ペイロードとして消費するイベントメッセージを Lambda 関数が受け取る場所を指定します。

では AWS IoT Greengrass V2、サブスクリプションを使用せずに通信チャネルを指定します。

  • コンポーネントは独自の通信チャネルを管理し、ローカルのパブリッシュ/サブスクライブメッセージや、 AWS IoT Core MQTT メッセージ、ローカルシャドウサービスとやり取りします。

  • クライアントデバイス、ローカルパブリッシュ/サブスクライブブローカー、および AWS IoT Core MQTT ブローカー間の通信チャネルを設定するには、MQTT ブリッジコンポーネント を設定してデプロイします。MQTT ブリッジコンポーネントを使用すると、コンポーネント内のクライアントデバイスとやり取りし、クライアントデバイスと AWS IoT Core の間でメッセージを中継できます。

他の へのアクセス AWS のサービス

では AWS IoT Greengrass V1、グループロールと呼ばれる AWS Identity and Access Management (IAM) ロールを Greengrass グループにアタッチします。グループロールは、そのグループのコアデバイスの Lambda 関数と AWS IoT Greengrass 機能が にアクセスするために使用するアクセス許可を定義します AWS のサービス。

では AWS IoT Greengrass V2、 AWS IoT ロールエイリアスを Greengrass コアデバイスにアタッチします。ロールエイリアスは、トークン交換ロールと呼ばれる IAM ロールを参照します。トークン交換ロールは、コアデバイス上の Greengrass コンポーネントが AWS のサービス にアクセスするために使用する許可を定義します。詳細については、「コアデバイスが AWS サービスとやり取りできるように認証する」を参照してください。