

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

# AWS IoT Greengrass V1 と AWS IoT Greengrass V2 の違い
<a name="greengrass-v1-concept-differences"></a>

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


**Greengrass の概念と用語**  

| 概念 | AWS IoT Greengrass V1 | AWS IoT Greengrass V2 | 
| --- | --- | --- | 
|  アプリケーションコード  |  AWS IoT Greengrass V1 では、Lambda 関数はコアデバイスで実行されるソフトウェアを定義します。各 Greengrass グループで、関数が使用するサブスクリプションとローカルリソースを定義します。コンテナ化された Lambda ランタイム環境で AWS IoT Greengrass Core ソフトウェアが実行する Lambda 関数については、メモリ制限などのコンテナパラメータを定義します。  |  AWS IoT Greengrass V2 では、コンポーネントは、コアデバイス上で動作するソフトウェアモジュールです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/greengrass-v1-concept-differences.html) AWS IoT Greengrass V2 で Lambda ランタイム環境で実行されるコンポーネントとして V1 Lambda 関数をインポートできます。Lambda 関数をインポートするときは、関数のサブスクリプション、ローカルリソース、およびコンテナパラメータを指定します。詳細については、「[ステップ 2: AWS IoT Greengrass V1 アプリケーションを移行する AWS IoT Greengrass V2 コンポーネントを作成してデプロイする](set-up-v2-test-device.md#run-v1-applications)」を参照してください。 カスタムコンポーネントを作成する方法の詳細については、「[AWS IoT Greengrass コンポーネントの開発](develop-greengrass-components.md)」を参照してください。  | 
|  AWS IoT Greengrass グループとデプロイ  |  AWS IoT Greengrass V1 では、グループはコアデバイスや、そのコアデバイスの設定とソフトウェア、およびそのコアデバイスに接続できる AWS IoT のモノのリストを定義します。グループの設定をコアデバイスに送信するデプロイを作成します。  |  AWS IoT Greengrass V2 では、デプロイを使用して、コアデバイスで実行されるソフトウェアコンポーネントと設定を定義します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/greengrass-v1-concept-differences.html) 詳細については、「[AWS IoT Greengrass コンポーネントをデバイスにデプロイする](manage-deployments.md)」を参照してください。 AWS IoT Greengrass V2 では、[Greengrass CLI](gg-cli.md) を使用してローカルデプロイを作成して、コンポーネントを開発するデバイスでカスタムソフトウェアコンポーネントをテストすることもできます。詳細については、「[AWS IoT Greengrass コンポーネントを作成する](create-components.md)」を参照してください。  | 
|  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 ソフトウェアはモジュール式であるため、メモリフットプリントを制御するために何をインストールするかを選択できます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/greengrass-v1-concept-differences.html)  | 
|  Connector  |  AWS IoT Greengrass V1 でのコネクタとは、AWS IoT Greengrass V1 のコアデバイスでローカルインフラストラクチャや、デバイスプロトコル、AWS、その他のクラウドサービスとやり取りが可能なモジュールを指します。  |  AWS IoT Greengrass V2 では、V1 のコネクタによって提供される機能を実装する Greengrass コンポーネントは AWS によって提供されます。以下の AWS IoT Greengrass V2 コンポーネントで Greengrass V1 コネクタ機能が提供されます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/greengrass-v1-concept-differences.html) 詳細については、「[AWSが提供したコンポーネント](public-components.md)」を参照してください。  | 
|  接続デバイス (Greengrass デバイス)  |  AWS IoT Greengrass V1 での接続されたデバイスとは、Greengrass グループに追加することで、そのグループ内のコアデバイスに接続し、MQTT 経由で通信する AWS IoT モノを指します。接続デバイスを追加または削除するたびに、そのグループをデプロイする必要があります。サブスクリプションを使用して、接続されたデバイスや AWS IoT Core、コアデバイス上のアプリケーション間でメッセージを中継します。  |  AWS IoT Greengrass V2 では、接続されたデバイスは Greengrass クライアントデバイスと呼ばれます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/greengrass-v1-concept-differences.html) AWS IoT Greengrass V1 と AWS IoT Greengrass V2 で接続できるコアデバイスに関する情報を取得するには、デバイスで [FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-lib-gg-connectivity.html) を実行するか、[AWS IoT Device SDK](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html) または [Greengrass Discovery API](greengrass-discover-api.md) を使用します。Greengrass Discovery API は下位互換性があるため、V1 コアデバイスに接続するクライアントデバイスがある場合は、コードを変更せずに V2 コアデバイスに接続できます。 デバイスクラスの詳細については、「[ローカル IoT デバイスとやり取りする](interact-with-local-iot-devices.md)」を参照してください。  | 
|  ローカルリソース  |  AWS IoT Greengrass V1 では、コンテナで実行される Lambda 関数を、コアデバイスのファイルシステム上のボリュームとデバイスにアクセスするように設定できます。これらのファイルシステムリソースは、ローカルリソースと呼ばれます。  |  AWS IoT Greengrass V2 では、[Lambda 関数](run-lambda-functions.md)、[Docker コンテナ](run-docker-container.md)、または[ネイティブオペレーティングシステムプロセスまたはカスタムランタイム](develop-greengrass-components.md) のコンポーネントを実行できます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/greengrass-v1-concept-differences.html)  | 
|  ローカルシャドウサービス  |  AWS IoT Greengrass V1 では、ローカルシャドウサービスはデフォルトで有効になっており、名前のないクラシックシャドウのみがサポートされています。デバイス上のシャドウとやり取りするには、Lambda 関数の AWS IoT Greengrass Core SDK を使用します。  |  AWS IoT Greengrass V2 では、シャドウマネージャーコンポーネントをデプロイして、ローカルシャドウサービスを有効にします。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/greengrass-v1-concept-differences.html) 詳細については、「[デバイスシャドウとやり取り](interact-with-shadows.md)」を参照してください。  | 
|  サブスクリプション  |  AWS IoT Greengrass V1 では、Greengrass グループのサブスクリプションを定義して、Lambda関数、コネクタ、接続デバイス、AWS IoT Core MQTT ブローカー、ローカルシャドウサービス間の通信チャネルを指定します。サブスクリプションは、関数ペイロードとして消費するイベントメッセージを Lambda 関数が受け取る場所を指定します。  |  AWS IoT Greengrass V2 では、サブスクリプションを使用せずに通信チャネルを指定します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/greengrass-v1-concept-differences.html)  | 
|  他の 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 サービスとやり取りできるように認可する](device-service-role.md)」を参照してください。  | 