

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

# の AWS IoT Greengrass 仕組み
<a name="how-it-works"></a>

 AWS IoT Greengrass Core ソフトウェアとも呼ばれる AWS IoT Greengrass クライアントソフトウェアは、ARM または x86 アーキテクチャのデバイスに対して、Ubuntu や Raspberry Pi OS などの Windows および Linux ベースのディストリビューションで実行されます。を使用すると AWS IoT Greengrass、生成したデータに対してローカルで動作するようにデバイスをプログラムしたり、機械学習モデルに基づいて予測を実行したり、デバイスデータをフィルタリングおよび集計したりできます。 は、選択した AWS Lambda 関数、Docker コンテナ、ネイティブ OS プロセス、またはカスタムランタイムのローカル実行 AWS IoT Greengrass を有効にします。

AWS IoT Greengrass は、エッジデバイスの機能を簡単に拡張できるコンポーネントと呼ばれる構築済みのソフトウェアモジュールを提供します。 AWS IoT Greengrass コンポーネントを使用すると、エッジで AWS サービスやサードパーティーアプリケーションに接続できます。IoT アプリケーションを開発すると、 AWS IoT Greengrass は フィールドのデバイスのフリートでそれらのアプリケーションをリモートでデプロイ、設定、管理できるようにします。

次の例は、 AWS IoT Greengrass デバイスが の AWS IoT Greengrass クラウドサービスやその他の AWS サービスとやり取りする方法を示しています AWS クラウド。

![\[AWS IoT Greengrass デバイスが の AWS IoT Greengrass クラウドサービスやその他の AWS サービスとやり取りする方法の概要 AWS クラウド。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/images/how-it-works.png)


## の主な概念 AWS IoT Greengrass
<a name="concept-overview"></a>

 AWS IoT Greengrassを理解して使用する上で不可欠な概念を以下に示します: 

****AWS IoT モノ****  
 AWS IoT モノは、特定のデバイスまたは論理エンティティの表現です。モノに関する情報は AWS IoT レジストリに保存されます。

****Greengrass コアデバイス****  
 AWS IoT Greengrass Core ソフトウェアを実行するデバイス。Greengrass コアデバイスは AWS IoT のものです。 AWS IoT モノのグループに複数のコアデバイスを追加して、Greengrass コアデバイスのグループを作成および管理できます。詳細については、「[AWS IoT Greengrass コアデバイスのセットアップ](setting-up.md)」を参照してください。

****Greengrass クライアントデバイス****  
MQTT を介して Greengrass コアデバイスに接続して通信するデバイス。Greengrass クライアントデバイスは AWS IoT のモノです。コアデバイスは、接続されたクライアントデバイスからのデータの処理、フィルタリング、および集計を行うことができます。クライアントデバイス、 AWS IoT Core クラウドサービス、Greengrass コンポーネント間で MQTT メッセージを中継するようにコアデバイスを設定できます。詳細については、「[ローカル IoT デバイスとやり取りする](interact-with-local-iot-devices.md)」を参照してください。  
クライアントデバイスは [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 検出 API](greengrass-discover-api.md) を使用して、接続可能なコアデバイスに関する情報を取得できます。

****Greengrass コンポーネント****  
Greengrass コアデバイスにデプロイされ実行されるソフトウェアモジュールです。で開発およびデプロイされるすべてのソフトウェア AWS IoT Greengrass は、コンポーネントとしてモデル化されます。 は、アプリケーションで使用できる機能を提供する構築済みのパブリックコンポーネント AWS IoT Greengrass を提供します。ローカルデバイスまたはクラウドで、独自のカスタムコンポーネントを開発することもできます。カスタムコンポーネント開発後は、 AWS IoT Greengrass クラウドサービスを使用して、単一または複数のコアデバイスにコンポーネントをデプロイできます。カスタムコンポーネントを作成して、そのコンポーネントをコアデバイスにデプロイできます。これを行うとき、コアデバイスはコンポーネントを実行するために、以下のリソースをダウンロードします。  
+ **レシピ**: コンポーネントの詳細、設定、およびパラメータを定義してソフトウェアモジュールを記述する JSON または YAML ファイル。
+ **アーティファクト**: デバイスで実行するソフトウェアを定義するソースコード、バイナリ、またはスクリプト。アーティファクトをゼロから作成することも、Lambda 関数、Docker コンテナ、またはカスタムランタイムを使用してコンポーネントを作成することもできます。
+ **依存関係**: コンポーネント間の関係で、依存コンポーネントの自動更新または再起動を強制できるもの。たとえば、暗号化コンポーネントに依存させることにより、セキュアなメッセージ処理コンポーネントを得ることができます。これにより、暗号化コンポーネントが更新されると、メッセージ処理コンポーネントも自動的に更新され再起動されるようになります。
詳細については、「[AWSが提供したコンポーネント](public-components.md)」および「[AWS IoT Greengrass コンポーネントの開発](develop-greengrass-components.md)」を参照してください。

****デプロイメント****  
コンポーネントを送信し、目的のコンポーネント設定を宛先ターゲットデバイスに適用するプロセス。ターゲットデバイスには、単一の Greengrass コアデバイスまたは Greengrass コアデバイスのグループを指定できます。デプロイでは、更新されたコンポーネント設定がターゲットに自動的に適用されます。依存関係が定義されているその他のコンポーネントもこの処理に含まれます。既存のデプロイをクローンして、同じコンポーネントを使用しつつ別のターゲットにデプロイされる新しいデプロイを作成することもできます。デプロイは連続的なものです。つまり、デプロイによるコンポーネントまたはコンポーネント設定に対する更新は、自動的にすべてのターゲットに送信されます。詳細については、「[AWS IoT Greengrass コンポーネントをデバイスにデプロイする](manage-deployments.md)」を参照してください。

****AWS IoT Greengrass コアソフトウェア****  
バージョン 2.14 以降、 は nucleus と呼ばれる実行可能ファイルであるデバイスランタイムの 2 つの代替実装 AWS IoT Greengrass を提供します。最初の (以前は唯一の) nucleus は Java で実装されています。これにより、アーキテクチャおよびオペレーティングシステム間での移植性が最大限に高まります。ただし、Java 仮想マシンに依存しているため、メモリフットプリントも大きくなります。  
新しく追加された 2 番目の nucleus は C 言語で実装されています。これにより、フットプリントが大幅に削減されます。ただし、ターゲットアーキテクチャやオペレーティングシステムごとにディストリビューション (またはソースからのコンパイル) が必要です。この 2 つを区別する必要がある場合は、最初の実装を *Greengrass nucleus *と呼び、後者を *Greengrass nucleus lite* と呼びます。  
+ **オプションコンポーネント**: これらの設定可能なコンポーネントは によって提供され AWS IoT Greengrass 、エッジデバイスで追加機能を有効にします。必要に応じて、データストリーミング、ローカル機械学習推論、ローカルコマンドラインインターフェイスなど、デバイスにデプロイするオプションコンポーネントを選択できます。詳細については、「[AWSが提供したコンポーネント](public-components.md)」を参照してください。
 AWS IoT Greengrass Core ソフトウェアをアップグレードするには、新しいバージョンのコンポーネントをデバイスにデプロイします。

## の機能 AWS IoT Greengrass
<a name="components-and-features"></a>

AWS IoT Greengrass Version 2 は、次の要素で構成されます。
+ **ソフトウェアディストリビューション**
  + [Greengrass nucleus コンポーネント](greengrass-nucleus-component.md)。 AWS IoT Greengrass これは Core ソフトウェアの最小限のインストールです。このコンポーネントは、Greengrass コンポーネントのデプロイ、オーケストレーション、ライフサイクル管理を管理します。
  + サービス、プロトコル、およびソフトウェアと統合するために、追加オプションとして [AWSが提供するコンポーネント](public-components.md)です。
  + カスタム Greengrass コンポーネントの作成、テスト、構築、パブリッシュ、デプロイに使用する、[Greengrass 開発ツール](greengrass-development-tools.md)です。
  +  AWS IoT Device SDK および [AWS IoT Greengrass コンポーネント SDK](https://github.com/aws-greengrass/aws-greengrass-component-sdk)。カスタム Greengrass コンポーネントの[プロセス間通信 (IPC) ライブラリ](interprocess-communication.md)が含まれています。には、クライアントデバイス用の [Greengrass 検出ライブラリ](greengrass-discover-api.md) AWS IoT Device SDK も含まれています。
  + コアデバイスで[データストリームの管理](manage-data-streams.md)に使用する、ストリームマネージャー SDK です。
+ **クラウドサービス**
  + AWS IoT Greengrass V2 API
  + AWS IoT Greengrass V2 コンソール

### AWS IoT Greengrass コアソフトウェア
<a name="greengrass-core-software"></a>

エッジデバイスで実行される AWS IoT Greengrass Core ソフトウェアを使用して、以下を実行できます。
+  AWS クラウドへの自動エクスポートにより、データストリームをローカルデバイスで処理します。詳細については、「[Greengrass コアデバイスでのデータストリームの管理](manage-data-streams.md)」を参照してください。
+  AWS IoT と コンポーネント間の MQTT メッセージングをサポートします。詳細については、「[AWS IoT Core MQTT メッセージを発行/サブスクライブする](ipc-iot-core-mqtt.md)」を参照してください。
+ MQTT 経由で接続および通信を行うローカルデバイスとやり取りします。詳細については、「[ローカル IoT デバイスとやり取りする](interact-with-local-iot-devices.md)」を参照してください。
+ コンポーネント間のローカルパブリッシュおよびサブスクライブメッセージをサポートします。詳細については、「[ローカルメッセージをパブリッシュ/サブスクライブする](ipc-publish-subscribe.md)」を参照してください。
+ コンポーネントと Lambda 関数をデプロイして呼び出します。詳細については、「[AWS IoT Greengrass コンポーネントをデバイスにデプロイする](manage-deployments.md)」を参照してください。
+ インストールスクリプトや実行スクリプトのサポートなどにより、コンポーネントのライフサイクルを管理します。詳細については、「[AWS IoT Greengrass コンポーネントレシピリファレンス](component-recipe-reference.md)」を参照してください。
+  AWS IoT Greengrass Core ソフトウェアとカスタムコンポーネントの安全なover-the-air (OTA) ソフトウェア更新を実行します。詳細については、「[AWS IoT Greengrass Core ソフトウェア (OTA) の更新](update-greengrass-core-v2.md)」および「[AWS IoT Greengrass コンポーネントをデバイスにデプロイする](manage-deployments.md)」を参照してください。
+ ローカルシークレットの安全な暗号化されたストレージおよびコンポーネントによる制御されたアクセスを提供します。詳細については、「[シークレットマネージャー](secret-manager-component.md)」を参照してください。
+ デバイスの認証と認可による、デバイスと AWS クラウド間の安全な接続。詳細については、「[AWS IoT Greengrassのデバイス認証と認可](device-auth.md)」を参照してください。

Greengrass コアデバイスは、継続的なソフトウェアデプロイを作成する AWS IoT Greengrass APIs を使用して設定および管理します。詳細については、「[AWS IoT Greengrass コンポーネントをデバイスにデプロイする](manage-deployments.md)」を参照してください。

一部の機能は、特定のプラットフォームのみでサポートされています。詳細については、「[Greengrass 機能の互換性](operating-system-feature-support-matrix.md)」を参照してください。

サポートされるプラットフォーム、要件、およびダウンロードの詳細については、「[AWS IoT Greengrass コアデバイスのセットアップ](setting-up.md)」を参照してください。

<a name="core-software-license"></a>このソフトウェアをダウンロードすると、[Greengrass Core ソフトウェアのライセンス契約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)に同意したものと見なされます。