AWS IoT Greengrass の仕組み - AWS IoT Greengrass

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

AWS IoT Greengrass の仕組み

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

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 サービスとの連携についての概要。

AWS IoT Greengrass の主要なコンセプト

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

AWS IoT のモノ

AWS IoT のモノとは、特定のデバイスまたは論理エンティティを表します。モノに関する情報は、JSON データとして AWS IoT レジストリに保存されます。

Greengrass コアデバイス

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

Greengrass クライアントデバイス

MQTT を介して Greengrass コアデバイスに接続して通信するデバイス。Greengrass クライアントデバイスは AWS IoT モノです。コアデバイスは、接続されたクライアントデバイスからのデータの処理、フィルタリング、および集計を行うことができます。クライアントデバイス、AWS IoT Core クラウドサービス、Greengrass コンポーネントの間で MQTT メッセージをリレーするように、コアデバイスを設定できます。詳細については、「ローカル IoT デバイスとやり取りする」を参照してください。

クライアントデバイスは FreeRTOS を実行、または AWS IoT Device SDK または Greengrass 検出 API を使用して、接続可能なコアデバイスに関する情報を取得できます。

Greengrass コンポーネント

Greengrass コアデバイスにデプロイされ実行されるソフトウェアモジュールです。AWS IoT Greengrass で開発およびデプロイされるソフトウェアはすべてコンポーネントとしてモデル化されます。AWS IoT Greengrass は構築済みのパブリックコンポーネントを提供し、これによりアプリケーションで使用できる機能が提供されます。ローカルデバイスまたはクラウドで、独自のカスタムコンポーネントを開発することもできます。カスタムコンポーネント開発後は、AWS IoT Greengrass クラウドサービスを使用して、単一または複数のコアデバイスにコンポーネントをデプロイできます。カスタムコンポーネントを作成して、そのコンポーネントをコアデバイスにデプロイできます。これを行うとき、コアデバイスはコンポーネントを実行するために、以下のリソースをダウンロードします。

  • レシピ: コンポーネントの詳細、設定、およびパラメータを定義してソフトウェアモジュールを記述する JSON または YAML ファイル。

  • アーティファクト: デバイスで実行するソフトウェアを定義するソースコード、バイナリ、またはスクリプト。アーティファクトをゼロから作成することも、Lambda 関数、Docker コンテナ、またはカスタムランタイムを使用してコンポーネントを作成することもできます。

  • 依存関係: コンポーネント間の関係で、依存コンポーネントの自動更新または再起動を強制できるもの。たとえば、暗号化コンポーネントに依存させることにより、セキュアなメッセージ処理コンポーネントを得ることができます。これにより、暗号化コンポーネントが更新されると、メッセージ処理コンポーネントも自動的に更新され再起動されるようになります。

詳細については、「AWS が提供したコンポーネント」および「AWS IoT Greengrass コンポーネントを開発する」を参照してください。

デプロイ

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

AWS IoT Greengrass Core ソフトウェア

バージョン 2.14 以降、AWS IoT Greengrass は nucleus と呼ばれる実行可能ファイルであるデバイスランタイムの 2 つの代替実装を提供します。最初の (以前は唯一の) nucleus は Java で実装されています。これにより、アーキテクチャおよびオペレーティングシステム間での移植性が最大限に高まります。ただし、Java 仮想マシンに依存しているため、メモリフットプリントも大きくなります。

新しく追加された 2 番目の nucleus は C で実装されています。これにより、フットプリントが大幅に削減されます。ただし、ターゲットアーキテクチャやオペレーティングシステムごとにディストリビューション (またはソースからのコンパイル) が必要です。この 2 つを区別する必要がある場合は、最初の実装を nucleus classic、後者を nucleus lite と呼びます。

  • オプションのコンポーネント: これらの設定可能なコンポーネントは AWS IoT Greengrass によって提供され、エッジデバイスの追加機能を有効にします。必要に応じて、データストリーミング、ローカル機械学習推論、ローカルコマンドラインインターフェイスなど、デバイスにデプロイするオプションコンポーネントを選択できます。詳細については、「AWS が提供したコンポーネント」を参照してください。

コンポーネントの新しいバージョンをデバイスにデプロイすることにより、AWS IoT Greengrass Core ソフトウェアをアップグレードできます。

AWS IoT Greengrass の機能

AWS IoT Greengrass Version 2 は以下の要素で設定されています。

  • ソフトウェアディストリビューション

  • クラウドサービス

    • AWS IoT Greengrass V2 API

    • AWS IoT Greengrass V2 コンソール

AWS IoT Greengrass Core ソフトウェア

エッジデバイスで実行可能な AWS IoT Greengrass Core ソフトウェアを使用して、以下を実行できます。

Greengrass コアデバイスの設定と管理は AWS IoT Greengrass API で行います。ここでは、継続的なソフトウェアのデプロイの作成を行います。詳細については、「AWS IoT Greengrass コンポーネントをデバイスにデプロイする」を参照してください。

一部の機能は、特定のプラットフォームのみでサポートされています。詳細については、「Greengrass 機能の互換性」を参照してください。

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

このソフトウェアをダウンロードすると、Greengrass Core ソフトウェアのライセンス契約に同意したものと見なされます。