とは AWS IoT Greengrass - AWS IoT Greengrass

AWS IoT Greengrass Version 1 は 2023 年 6 月 30 日に延長ライフフェーズに参加しました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き動作し、クラウドに接続します。への移行 AWS IoT Greengrass Version 2を強くお勧めします。これにより、重要な新機能が追加され、プラットフォームのサポートが追加されます

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

とは AWS IoT Greengrass

AWS IoT Greengrass は、クラウド機能をローカルデバイスに拡張するソフトウェアです。これにより、デバイスは情報源に近いデータを収集および分析して、ローカルイベントに自動的に反応し、ローカルネットワークで互いに安全に通信することができます。ローカルデバイスは、 と安全に通信 AWS IoT Core して IoT データを にエクスポートすることもできます AWS クラウド。 AWS IoT Greengrass 開発者は、 AWS Lambda 関数と事前構築されたコネクタを使用して、ローカル実行のためにデバイスにデプロイされるサーバーレスアプリケーションを作成できます。

次の図は、 の基本アーキテクチャを示しています AWS IoT Greengrass。

Greengrass コアは、Lambda、メッセージング、デバイスシャドウ、セキュリティのローカル実行を可能にします。Greengrass コアは とやり取り AWS クラウド し、断続的な接続でローカルで動作します。

AWS IoT Greengrass を使用すると、お客様は IoT デバイスとアプリケーションロジックを構築できます。具体的には、 は、 デバイスで実行されるアプリケーションロジックのクラウドベースの管理 AWS IoT Greengrass を提供します。ローカルにデプロイした Lambda 関数とコネクタは、ローカルイベント、クラウドからのメッセージ、またはその他のソースによってトリガーされます。

では AWS IoT Greengrass、デバイスはローカルネットワーク上で安全に通信し、クラウドに接続しなくても相互にメッセージを交換します。 は、接続が失われた場合にメッセージをインテリジェントにバッファできるローカル pub/sub メッセージマネージャー AWS IoT Greengrass を提供し、クラウドへのインバウンドメッセージとアウトバウンドメッセージを保持します。

AWS IoT Greengrass はユーザーデータを保護します。

  • デバイスの安全な認証と認可を介して保護。

  • ローカルネットワークの安全な接続を介して保護。

  • ローカルデバイスとクラウドの間で保護。

デバイスのセキュリティ認証情報は、クラウドへの接続が中断された場合でも、失効するまでグループで機能するため、デバイスはローカルで安全に通信を続けることができます。

AWS IoT Greengrass は、Lambda 関数の安全なover-the-air更新を提供します。

AWS IoT Greengrass は以下で構成されます。

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

    • AWS IoT Greengrass Core ソフトウェア

    • AWS IoT Greengrass コア 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 グループ定義を作成および更新する AWS IoT Greengrass APIs を介して設定されます。

AWS IoT Greengrass コアソフトウェアバージョン

AWS IoT Greengrass には、tar.gz ダウンロードファイル、クイックスタートスクリプト、サポートされている Debian プラットフォームへのaptインストールなど、 AWS IoT Greengrass Core ソフトウェアをインストールするためのいくつかのオプションが用意されています。詳細については、「AWS IoT Greengrass Core ソフトウェアをインストールします。」を参照してください。

以下のタブでは、 AWS IoT Greengrass Core ソフトウェアバージョンの新機能と変更点について説明します。

GGC v1.11
1.11.6

バグ修正と機能向上:

  • デプロイ中に電源損失が突然発生した場合の復元力を改善しました。

  • ストリームマネージャーのデータ破損により AWS IoT Greengrass Core ソフトウェアの起動が妨げられる問題を修正しました。

  • 新規クライアントデバイスが特定のシナリオでコアに接続できない問題を修正しました。

  • ストリームマネージャーのストリーム名に .log を含めることができなかった問題を修正しました。

1.11.5

バグ修正と機能向上:

  • 全般的なパフォーマンス向上とバグ修正。

1.11.4

バグ修正と機能向上:

  • AWS IoT Greengrass Core ソフトウェア v1.11.3 へのアップグレードを妨げるストリームマネージャーの問題を修正しました。ストリームマネージャーを使用してデータをクラウドにエクスポートする場合、OTA 更新を使用して、以前の v1.x バージョンの AWS IoT Greengrass Core ソフトウェアを v1.11.4 にアップグレードできるようになりました。

  • 全般的なパフォーマンス向上とバグ修正。

1.11.3

バグ修正と機能向上:

  • Ubuntu デバイスのスナップで実行されている AWS IoT Greengrass Core ソフトウェアが、デバイスへの突然の停電後に応答しなくなる問題を修正しました。

  • 存続期間の長い Lambda 関数への MQTT メッセージの配信が遅延する問題を修正しました。

  • maxWorkItemCount 値が 1024 より大きい値に設定されていると、MQTT メッセージが適切に送信されない問題を修正しました。

  • config.jsonkeepAlive プロパティで指定された MQTT KeepAlive 期間を OTA 更新エージェントが無視する問題を修正しました。

  • 全般的なパフォーマンス向上とバグ修正。

重要

ストリームマネージャーを使用してデータをクラウドにエクスポートする場合は、以前の v1.x バージョンから AWS IoT Greengrass Core ソフトウェア v1.11.3 にアップグレードしないでください。ストリームマネージャーを初めて有効にする場合は、まず最新バージョンの AWS IoT Greengrass Core ソフトウェアをインストールすることを強くお勧めします。

1.11.1

バグ修正と機能向上:

  • ストリームマネージャーのメモリ使用量が増加する問題を修正しました。

  • Greengrass コアデバイスの電源がストリームデータの特定の有効期限 (TTL) を超えてオフになっている場合に、ストリームマネージャーがストリームのシーケンス番号を 0 にリセットする問題を修正しました。

  • AWS クラウドへのデータエクスポートの再試行をストリームマネージャーが適切に停止できない問題を修正しました。

1.11.0

新機能:

  • Greengrass コアのテレメトリエージェントは、ローカルテレメトリデータを収集して公開します AWS クラウド。テレメトリデータを取得してさらに処理するには、Amazon EventBridge ルールを作成して、ターゲットをサブスクライブします。詳細については、AWS IoT Greengrass 「コアデバイスからのシステムヘルステレメトリデータの収集」を参照してください。

  • ローカル HTTP API は、 によって開始されたローカルワーカープロセスの現在の状態のスナップショットを返します AWS IoT Greengrass。詳細については、「ローカルヘルスチェック API を呼び出す」を参照してください。

  • ストリームマネージャーは、Amazon S3 と にデータを自動的にエクスポートします AWS IoT SiteWise。

    新しいストリームマネージャーパラメータにより、既存のストリームを更新して、データのエクスポートを一時停止または再開できます。

  • コア上で Python 3.8.x Lambda 関数を実行するためのサポート。

  • Greengrass コア IPC ポート番号の設定に使用する、config.json の新しい ggDaemonPort プロパティ。デフォルトのポート番号は 8000 です。

    Greengrass コア IPC 認証のタイムアウト設定に使用する config.json の新しい systemComponentAuthTimeout プロパティ。デフォルトのタイムアウトは 5000 ミリ秒です。

  • AWS IoT Greengrass グループあたりの AWS IoT デバイスの最大数を 200 から 2500 に増やしました。

    グループあたりのサブスクリプションの最大数を 1000 から 10000 に増やしました。

    詳細については、「AWS IoT Greengrass endpoints and quotas」を参照してください。

バグ修正と機能向上:

  • Greengrass サービスプロセスのメモリ使用率を減らすことができる全体的な最適化。

  • 新しいランタイム設定パラメータ (mountAllBlockDevices) により、Greengrass が OverlayFS の設定後、バインドマウントを使用してすべてのブロックデバイスをコンテナにマウントできるようになります。この機能により、/usr/ 階層下にない場合に、Greengrass のデプロイが失敗する問題が解決されました。

  • がシンボリックリンクの場合に AWS IoT Greengrass コア障害が発生する問題を修正/tmpしました。

  • Greengrass デプロイエージェントが機械学習の未使用モデルアーティファクトを mlmodel_public フォルダから削除する問題を修正しました。

  • 全般的なパフォーマンス向上とバグ修正。

Extended life versions
1.10.5

バグ修正と機能向上:

  • 全般的なパフォーマンス向上とバグ修正。

1.10.4

バグ修正と機能向上:

  • Ubuntu デバイスのスナップで実行されている AWS IoT Greengrass Core ソフトウェアが、デバイスへの突然の停電後に応答しなくなる問題を修正しました。

  • 存続期間の長い Lambda 関数への MQTT メッセージの配信が遅延する問題を修正しました。

  • maxWorkItemCount 値が 1024 より大きい値に設定されていると、MQTT メッセージが適切に送信されない問題を修正しました。

  • config.jsonkeepAlive プロパティで指定された MQTT KeepAlive 期間を OTA 更新エージェントが無視する問題を修正しました。

  • 全般的なパフォーマンス向上とバグ修正。

1.10.3

バグ修正と機能向上:

  • Greengrass コア IPC 認証のタイムアウト設定に使用する config.json の新しい systemComponentAuthTimeout プロパティ。デフォルトのタイムアウトは 5000 ミリ秒です。

  • ストリームマネージャーのメモリ使用量が増加する問題を修正しました。

1.10.2

バグ修正と機能向上:

  • MQTT 接続でのパブリッシュ、サブスクライブ、およびサブスクライブ解除オペレーションのタイムアウトを設定するために使用する config.json の新しいmqttOperationTimeoutプロパティ AWS IoT Core。

  • 全般的なパフォーマンス向上とバグ修正。

1.10.1

バグ修正と機能向上:

  • ストリームマネージャーはファイルデータの破損に対する回復性が高くなっています。

  • Linux カーネル 5.1 以降を使用しているデバイスで sysfs マウントエラーが発生する問題を修正しました。

  • 全般的なパフォーマンス向上とバグ修正。

1.10.0

新機能:

  • データストリームをローカルで処理し、 AWS クラウド に自動的にエクスポートするストリームマネージャー。この機能を使用するには、Greengrass Core デバイスに Java 8 が必要です。詳細については、「AWS IoT Greengrass コアでのデータストリームの管理」を参照してください。

  • コアデバイスで Docker アプリケーションを実行する、新しい Greengrass Docker アプリケーションのデプロイコネクタ。詳細については、「Docker アプリケーションのデプロイコネクタ」を参照してください。

  • OPC-UA サーバーからアセットプロパティに産業デバイスデータを送信する新しい IoT SiteWise コネクタ AWS IoT SiteWise。詳細については、「IoT SiteWise コネクタ」を参照してください。

  • コンテナ化を使用せずに実行する Lambda 関数では、Greengrass グループの機械学習リソースにアクセスできます。詳細については、「Lambda 関数から機械学習リソースにアクセスする」を参照してください。

  • での MQTT 永続セッションのサポート AWS IoT。詳細については、「AWS IoT Core を使用した MQTT 永続セッション」を参照してください。

  • ローカルの MQTT トラフィックは、デフォルトのポート 8883 以外のポートを使用できます。詳細については、「ローカルメッセージング用の MQTT ポートの設定」を参照してください。

  • Lambda 関数から信頼性の高いメッセージを発行する、AWS IoT Greengrass Core SDK の新しい queueFullPolicy オプション。

  • コア上で Node.js 12.x Lambda 関数を実行するためのサポート。

  • ハードウェアセキュリティ統合による無線通信 (OTA) 更新は、OpenSSL 1.1 で設定できます。

  • 全般的なパフォーマンス向上とバグ修正。

1.9.4

バグ修正と機能向上:

  • 全般的なパフォーマンス向上とバグ修正。

1.9.3

新機能:

  • Armv6l. AWS IoT Greengrass Core ソフトウェア v1.9.3 以降のサポートは、Armv6l アーキテクチャの Raspbian ディストリビューション (Raspberry Pi Zero デバイスなど) にインストールできます。

  • ALPN を使用したポート 443 での OTA 更新。MQTT トラフィックにポート 443 を使用する Greengrass コアはover-the-air (OTA) ソフトウェア更新をサポートするようになりました。 は、Application Layer Protocol Network (ALPN) TLS 拡張機能 AWS IoT Greengrass を使用して、これらの接続を有効にします。詳細については、AWS IoT Greengrass Core ソフトウェアの OTA 更新およびポート 443 での接続またはネットワークプロキシを通じた接続を参照してください。

バグ修正と機能向上:

  • Python 2.7 Lambda 関数がバイナリペイロードを他の Lambda 関数に送信できない、v1.9.0 で発生したバグを修正。

  • 全般的なパフォーマンス向上とバグ修正。

1.9.2

新機能:

  • OpenWrt. AWS IoT Greengrass Core ソフトウェア v1.9.2 以降のサポートは、Armv8 (AArch64) および Armv7l アーキテクチャの OpenWrt ディストリビューションにインストールできます。現在、OpenWrt は ML 推論をサポートしていません。

1.9.1

バグ修正と機能向上:

  • トピックにワイルドカード文字が含まれている cloud からのメッセージが削除される、v1.9.0 で発生したバグを修正しました。

1.9.0

新機能:

  • Python 3.7 と Node.js 8.10 の Lambda ランタイムのサポート。Python 3.7 および Node.js 8.10 ランタイムを使用する Lambda 関数を AWS IoT Greengrass コアで実行できるようになりました (AWS IoT Greengrass 引き続き Python 2.7 および Node.js 6.10 ランタイムをサポートします)。

  • 最適化された MQTT 接続。Greengrass コアが確立する AWS IoT Coreとの接続数が少なくなりました。この変更により、接続の数に基づく料金の運用コストを削減できます。

  • ローカル MQTT サーバー用楕円曲線 (EC) キー。ローカル MQTT サーバーは、RSA キーに加えて EC キーをサポートします。(MQTT サーバー証明書には、キータイプに関係なく、SHA-256 RSA 署名が含まれています。) 詳細については、「AWS IoT Greengrass Core セキュリティプリンシパル」を参照してください。

バグ修正と機能向上:

  • 全般的なパフォーマンス向上とバグ修正。

1.8.4

シャドウ同期とデバイス証明書マネージャーの再接続の問題を修正しました。

全般的なパフォーマンス向上とバグ修正。

1.8.3

一般的なパフォーマンス向上とバグ修正。

1.8.2

一般的なパフォーマンス向上とバグ修正。

1.8.1

一般的なパフォーマンス向上とバグ修正。

1.8.0

新機能:

  • グループ内にある Lambda 関数の設定可能なデフォルトアクセス ID。このグループレベルの設定により、Lambda 関数の実行で使用されるデフォルトのアクセス許可が決まります。ユーザー ID、グループ ID、またはその両方を設定できます。個々の Lambda 関数は、そのグループのデフォルトのアクセス ID を上書きできます。詳細については、「グループ内の Lambda 関数に対するデフォルトのアクセス ID の設定」を参照してください。

  • ポート 443 経由の HTTPS トラフィック。HTTPS コミュニケーションは、デフォルトのポート 8443 ではなくポート 443 を経由するように設定できます。これにより、Application Layer Protocol Network (ALPN) TLS 拡張 AWS IoT Greengrass のサポートが補完され、MQTT と HTTPS の両方のすべての Greengrass メッセージングトラフィックでポート 443 を使用できます。詳細については、「ポート 443 での接続またはネットワークプロキシを通じた接続」を参照してください。

  • AWS IoT 接続用のクライアント IDs の名前が予測可能であること。この変更により、 AWS IoT Device Defender および AWS IoT ライフサイクルイベントのサポートが有効になり、そのため接続、切断、購読、および購読解除のイベントに関する通知を受け取ることができます。予測可能な命名により、接続 ID を中心としたロジックの作成も容易になります (例えば、証明書の属性に基づいてサブスクライブポリシーテンプレートを作成します。詳細については、「AWS IoT を使用した MQTT 接続用クライアント ID」を参照してください。

バグ修正と機能向上:

  • シャドウ同期とデバイス証明書マネージャーの再接続の問題を修正しました。

  • 全般的なパフォーマンス向上とバグ修正。

1.7.1

新機能:

  • Greengrass コネクタは、ローカルインフラストラクチャ、デバイスプロトコル AWS、およびその他のクラウドサービスとの統合が組み込まれています。詳細については、「Greengrass コネクタを使用したサービスおよびプロトコルとの統合」を参照してください。

  • AWS IoT Greengrass は AWS Secrets Manager コアデバイスに拡張され、パスワード、トークン、その他のシークレットをコネクタと Lambda 関数で使用できるようになります。シークレットは転送中および保管時に暗号化されます。詳細については、「AWS IoT Greengrass Core にシークレットをデプロイする」を参照してください。

  • 信頼セキュリティオプションのハードウェアルートのサポート。詳細については、「ハードウェアセキュリティ統合」を参照してください。

  • 分離およびアクセス許可の設定で、Lambda 関数が Greengrass コンテナなしで実行され、指定されたユーザーとグループのアクセス許可を使用するように指定可能。詳細については、「グループ固有の設定による Greengrass Lambda 関数の実行の制御」を参照してください。

  • Greengrass グループをコンテナ化なしで実行するように設定することで、Docker コンテナ (Windows、macOS、または Linux) AWS IoT Greengrass で を実行できます。詳細については、「Docker コンテナでの AWS IoT Greengrass の実行」を参照してください。

  • Application Layer Protocol Negotiation (ALPN) またはネットワークを介した接続によるポート 443 での MQTT メッセージング。詳細については、「ポート 443 での接続またはネットワークプロキシを通じた接続」を参照してください。

  • SageMaker AI Neo 深層学習ランタイムは、SageMaker AI Neo 深層学習コンパイラによって最適化された機械学習モデルをサポートします。Neo 深層学習ランタイムの詳細については、「ML 推論用のランタイムとライブラリ」を参照してください。

  • Raspberry Pi Core デバイスで Raspbian Stretch (2018-06-27) をサポート。

バグ修正と機能向上:

  • 全般的なパフォーマンス向上とバグ修正。

さらに、このリリースでは以下の機能も使用できます。

  • AWS IoT Device Tester for は AWS IoT Greengrass、CPU アーキテクチャ、カーネル設定、ドライバーが動作することを検証するために使用できます AWS IoT Greengrass。詳細については、「AWS IoT Device Tester for AWS IoT Greengrass V1 を使用する」を参照してください。

  • AWS IoT Greengrass Core ソフトウェア、 AWS IoT Greengrass Core SDK、 AWS IoT Greengrass Machine Learning SDK パッケージは、Amazon CloudFront からダウンロードできます。詳細については、「AWS IoT Greengrass ダウンロード」を参照してください。

1.6.1

新機能:

  • Greengrass コアでバイナリ―コードを実行する Lambda 実行可能ファイル。新しい AWS IoT Greengrass Core SDK for C を使用して、Lambda 実行可能ファイルを C および C++ で書き込みます。詳細については、「Lambda 実行可能ファイル」を参照してください。

  • 再起動しても維持される、オプションのローカルストレージメッセージキャッシュ。処理のためにキュー状態にある MQTT メッセージのストレージ設定を構成できます。詳細については、「クラウドターゲットの MQTT メッセージキュー」を参照してください。

  • コアデバイスが切断された場合のための設定可能な再接続の最大再試行。詳細については、「mqttMaxConnectionRetryInterval」の AWS IoT Greengrass Core 設定ファイル プロパティを参照してください。

  • ホストの /proc ディレクトリへのローカルリソースアクセス。詳細については、「Lambda 関数とコネクタを使用してローカルリソースにアクセスする」を参照してください。

  • 設定可能な書き込みディレクトリ。 AWS IoT Greengrass Core ソフトウェアは、読み取り専用および読み取り/書き込みの場所にデプロイできます。詳細については、「AWS IoT Greengrass の書き込みディレクトリの設定」を参照してください。

バグ修正と機能向上:

  • Greengrass コア内およびデバイスとコア間のメッセージ発行のパフォーマンスの改善。

  • ユーザー定義の Lambda 関数によって生成されたログを処理するために必要なコンピューティングリソースの数を減らしました。

1.5.0

新機能:

  • AWS IoT Greengrass Machine Learning (ML) 推論は一般利用可能です。クラウドで構築されトレーニングされたモデルを使用して、 AWS IoT Greengrass デバイスで ML Inference をローカルで実行できます。詳細については、「機械学習の推論を実行する」を参照してください。

  • Greengrass Lambda 関数は、JSON に加えてバイナリデータも入力ペイロードとしてサポートするようになりました。この機能を使用するには、 AWS IoT Greengrass Core SDK バージョン 1.1.0 にアップグレードする必要があります。アップグレードは、 AWS IoT Greengrass Core SDK ダウンロードページからダウンロードできます。

バグ修正と機能向上:

  • 総メモリ使用量の削減。

  • クラウドへのメッセージの送信パフォーマンスの向上。

  • ダウンロードエージェント、Device Certificate Manager、OTA 更新エージェントのパフォーマンスと安定性の向上。

  • 軽微なバグを修正。

1.3.0

新機能:

1.1.0

新機能:

  • デプロイされた AWS IoT Greengrass グループは、Lambda 関数、サブスクリプション、および設定を削除することでリセットできます。詳細については、「デプロイのリセット」を参照してください。

  • Python 2.7 に加えて、Node.js 6.10 と Java 8 の Lambda ランタイムをサポートしました。

以前のバージョンの AWS IoT Greengrass コアから移行するには:

  • 証明書を /greengrass/configuration/certs フォルダから /greengrass/certs にコピーします。

  • /greengrass/configuration/config.json/greengrass/config/config.json にコピーします。

  • /greengrass/greengrassd の代わりに /greengrass/ggc/core/greengrassd を実行します。

  • 新規コアにグループをデプロイします。

1.0.0

当初のバージョン

AWS IoT Greengrass グループ

Greengrass グループは、Greengrass コア、デバイス、サブスクリプションなどのコンポーネントと設定のコレクションです。グループは、操作の範囲を定義するために使用されます。例えば、グループは建物の 1 つの階、1 台のトラック、または採掘現場全体を表します。次の図は、Greengrass グループを構成するために使用できるコンポーネントを示しています。

AWS IoT Core、Greengrass、および Lambda コンポーネント。コア、設定、Lambda 関数、サブスクリプション、コネクタ、デバイス、リソースの各要素が相互接続されています。

前の図の各オブジェクトについて説明します。

A: Greengrass グループの定義

グループの設定とコンポーネントに関する情報。

B: Greengrass グループの設定

具体的には次のとおりです。

C: Greengrass コア

Greengrass コアを表す AWS IoT モノ (デバイス)。詳細については、「AWS IoT Greengrass Core の設定」を参照してください。

D: Lambda 関数の定義

Core でローカルに実行されて設定データが関連付けられている Lambda 関数のリスト。詳細については、「AWS IoT Greengrass コアでの 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 サービスに送信されます。詳細については、「AWS IoT Greengrass Core の設定」を参照してください。

注記

Greengrass グループに含められるコアは 1 つのみです。

クライアントデバイス

クライアントデバイス (接続されたデバイス、Greengrass デバイス、またはデバイスとも呼ばれる) は、MQTT を介して Greengrass コアに接続するデバイスのことです。 AWS IoT Core 認証用の独自のデバイス証明書、デバイスシャドウ、および AWS IoT Core レジストリのエントリがあります。クライアントデバイスは、FreeRTOS を実行、もしくは AWS IoT Device SDK または AWS IoT Greengrass Discovery API を使用して、同じ Greengrass グループ内のコアとの接続と認証に使用される検出情報を取得できます。 AWS IoT コンソールを使用して のクライアントデバイスを作成および設定する方法については AWS IoT Greengrass、「」を参照してくださいモジュール 4: AWS IoT Greengrass グループでのクライアントデバイスの操作。または、 を使用してクライアントデバイス AWS CLI を作成および設定する方法を示す例については AWS IoT Greengrass、 AWS CLI コマンドリファレンスcreate-device-definition」を参照してください。

Greengrass グループでは、クライアントデバイスがグループ内の Lambda 関数、コネクタ、およびその他のクライアントデバイス、および AWS IoT Core またはローカルシャドウサービスと MQTT 経由で通信できるようにするサブスクリプションを作成できます。MQTT メッセージはコアを通じてルーティングされます。コアデバイスがクラウドから切断された場合、クライアントデバイスはローカルネットワークを介して通信を続けることができます。クライアントデバイスのサイズは、マイクロコントローラーベースの小型デバイスから大型アプライアンスまでさまざまです。現在、Greengrass グループには最大 2,500 台のクライアントデバイスを含めることができます。クライアントデバイスは、最大 10 個のグループのメンバーにすることができます。

注記

OPC-UA は、産業通信用の情報交換標準です。Greengrass コアで OPC-UA のサポートを実装するには、IoT SiteWise コネクタを使用できます。コネクタは、OPC-UA サーバーからアセットプロパティに産業デバイスデータを送信します AWS IoT SiteWise。

これらのデバイスタイプ間の関係を次の表に示します。

AWS IoT Core および デバイス機能マトリックスには、証明書、IoT ポリシー、コア側とデバイス側の両方でサポートされている IoT モノ、デバイスゲートウェイ、センサー/アクチュエータソフトウェア、Greengrass グループのアクセス許可外の関数などの設定が表示されます。

AWS IoT Greengrass コアデバイスは、次の 2 つの場所に証明書を保存します。

  • /greengrass-root/certs のコアデバイス証明書。通常、コアデバイス証明書の名前は hash.cert.pem です (例えば、86c84488a5.cert.pem)。この証明書は、コアが および AWS IoT Greengrass サービスに接続する AWS IoT Core ときに、相互認証のために AWS IoT クライアントによって使用されます。

  • /greengrass-root/ggc/var/state/server の MQTT サーバー証明書。MQTT サーバー証明書の名前は server.crt です。この証明書は、ローカル MQTT サーバー (Greengrass コア上) と Greengrass デバイスとの間で相互認証に使用されます。

    注記

    greengrass-root は、 AWS IoT Greengrass Core ソフトウェアがデバイスにインストールされているパスを表します。通常、これは /greengrass ディレクトリです。

SDK

以下の AWSが提供する SDKs は、 の操作に使用されます AWS IoT Greengrass。

AWS SDK

AWS SDK を使用して、Amazon S3、Amazon DynamoDB AWS IoT Greengrassなど AWS IoT、あらゆる AWS サービスとやり取りするアプリケーションを構築します。のコンテキストでは AWS IoT Greengrass、デプロイされた Lambda 関数で AWS SDK を使用して、任意の AWS サービスを直接呼び出すことができます。詳細については、「AWS SDK」を参照してください。

注記

AWS SDKs で使用できる Greengrass に固有のオペレーションは、 AWS IoT Greengrass API および でも使用できますAWS CLI

AWS IoT デバイス SDK

AWS IoT Device SDK は、デバイスが AWS IoT Core および に接続するのに役立ちます AWS IoT Greengrass。詳細については、「AWS IoT デベロッパーガイド」の「AWS IoT デバイス SDK」を参照してください。

クライアントデバイスは、任意の AWS IoT Device SDK v2 プラットフォームを使用して、Greengrass コアの接続情報を検出できます。接続情報には、以下が含まれます。

  • クライアントデバイスが属する Greengrass グループの ID。

  • 各グループに属する Greengrass コアの IP アドレス。これらは、コアエンドポイントとも呼ばれます。

  • デバイスがコアとの相互認証に使用するグループ CA 証明書。詳細については、「デバイス接続のワークフロー」を参照してください。

注記

AWS IoT Device SDKs の v1 では、C++ および Python プラットフォームのみが組み込みの検出サポートを提供します。

AWS IoT Greengrass コア SDK

AWS IoT Greengrass Core SDK を使用すると、Lambda 関数は Greengrass コアとやり取りし、メッセージを発行し AWS IoT、ローカルシャドウサービスとやり取りし、デプロイされた他の Lambda 関数を呼び出し、シークレットリソースにアクセスできます。この SDK は、 AWS IoT Greengrass コアで実行される Lambda 関数で使用します。詳細については、「AWS IoT Greengrass コア SDK」を参照してください。

AWS IoT Greengrass Machine Learning SDK

AWS IoT Greengrass Machine Learning SDK を使用すると、Lambda 関数は Greengrass コアにデプロイされた機械学習モデルを機械学習リソースとして使用できます。この SDK は、 AWS IoT Greengrass コアで実行され、ローカル推論サービスとやり取りする Lambda 関数で使用されます。詳細については、「AWS IoT Greengrass Machine Learning SDK」を参照してください。

サポートされているプラットフォームと要件

次のタブには、 AWS IoT Greengrass Core ソフトウェアでサポートされているプラットフォームと要件が一覧表示されています。

注記

Core ソフトウェアは、 AWS IoT Greengrass Core AWS IoT Greengrass ソフトウェアのダウンロードからダウンロードできます。

GGC v1.11

サポートされているプラットフォーム:

  • アーキテクチャ: Armv7l

  • アーキテクチャ: Armv8 (AArch64)

  • アーキテクチャ: Armv6l

    • OS: Linux

  • アーキテクチャ: x86_64

    • OS: Linux

  • Windows、macOS、Linux プラットフォームは、Docker コンテナ AWS IoT Greengrass で実行できます。詳細については、「Docker コンテナでの AWS IoT Greengrass の実行」を参照してください。

要件:

  • AWS IoT Greengrass Core ソフトウェアで使用できるディスク容量は 128 MB 以上です。OTA 更新エージェントを使用する場合は、400 MB 以上が必要です。

  • AWS IoT Greengrass Core ソフトウェアに割り当てられる最小 128 MB の RAM。ストリームマネージャーを有効にする場合は、198 MB 以上の RAM が必要です。

    注記

    AWS IoT コンソールのデフォルトグループ作成オプションを使用して Greengrass グループを作成すると、ストリームマネージャーはデフォルトで有効になります。

  • Linux カーネルバージョン:

    • コンテナ AWS IoT Greengrass での実行をサポートするには、Linux カーネルバージョン 4.4 以降が必要です。

    • コンテナ AWS IoT Greengrass なしでの実行をサポートするには、Linux カーネルバージョン 3.17 以降が必要です。この設定では、Greengrass グループのデフォルトの Lambda 関数コンテナ化を [No container] (コンテナなし) に設定する必要があります。手順については、「グループ内の Lambda 関数のコンテナ化のデフォルト設定」を参照してください。

  • GNU C ライブラリ (glibc) バージョン 2.14 以降。OpenWrt ディストリビューションでは、musl C ライブラリ バージョン 1.1.16 以降が必要です。

  • /var/run ディレクトリがデバイスに存在する必要があります。

  • /dev/stdin/dev/stdout、および /dev/stderr ファイルが利用可能である必要があります。

  • ハードリンクとソフトリンクの保護がデバイス上で有効になっている必要があります。それ以外の場合は、 -iフラグを使用して安全でないモードでのみ実行 AWS IoT Greengrass できます。

  • 次の Linux カーネル設定をデバイスで有効にする必要があります。

    • 名前空間:

      • CONFIG_IPC_NS

      • CONFIG_UTS_NS

      • CONFIG_USER_NS

      • CONFIG_PID_NS

    • Cgroups:

      • CONFIG_CGROUP_DEVICE

      • CONFIG_CGROUPS

      • CONFIG_MEMCG

      カーネルは cgroup をサポートしている必要があります。コンテナ AWS IoT Greengrass で を実行する場合、次の要件が適用されます。

      • AWS IoT Greengrass が Lambda 関数のメモリ制限を設定できるように、メモリ cgroup を有効にしてマウントする必要があります。

      • ローカルリソースアクセスを持つ Lambda 関数を使用して AWS IoT Greengrass コアデバイスでファイルを開く場合は、デバイス cgroup を有効にしてマウントする必要があります。

    • その他:

      • CONFIG_POSIX_MQUEUE

      • CONFIG_OVERLAY_FS

      • CONFIG_HAVE_ARCH_SECCOMP_FILTER

      • CONFIG_SECCOMP_FILTER

      • CONFIG_KEYS

      • CONFIG_SECCOMP

      • CONFIG_SHMEM

  • Amazon S3 および のルート証明書は、システムトラストストアに存在する AWS IoT 必要があります。

  • ストリームマネージャーには、基本 AWS IoT Greengrass Core ソフトウェアメモリ要件に加えて、Java 8 ランタイムと 70 MB 以上の RAM が必要です。 AWS IoT コンソールでデフォルトグループ作成オプションを使用すると、ストリームマネージャーはデフォルトで有効になります。ストリームマネージャーは OpenWrt ディストリビューションではサポートされていません。

  • ローカルで実行する Lambda 関数に必要な AWS Lambda ランタイムをサポートするライブラリ。必須ライブラリは、コアにインストールし、PATH 環境変数に追加する必要があります。同じコアに複数のライブラリをインストールできます。

    • Python 3.8 ランタイムを使用する関数に対応する Python バージョン 3.8。

    • Python 3.7 ランタイムを使用する関数に対応する Python バージョン 3.7。

    • Python 2.7 ランタイムを使用する関数に対応する Python バージョン 2.7。

    • Node.js 12.x ランタイムを使用する関数に対応する Node.js バージョン 12.x。

    • Java 8 ランタイムを使用する関数に対応する Java バージョン 8 以降。

      注記

      OpenWrt ディストリビューションで Java を実行することは公式にはサポートされていません。ただし、OpenWrt ビルドで Java がサポートされている場合は、Java で作成された Lambda 関数を OpenWrt デバイス上で実行できる可能性があります。

      Lambda ランタイム AWS IoT Greengrass のサポートの詳細については、「」を参照してくださいAWS IoT Greengrass コアでの Lambda 関数の実行

  • 次のシェルコマンド (BusyBox バリアントではない) は、無線 (OTA) 更新エージェントで必要です。

    • wget

    • realpath

    • tar

    • readlink

    • basename

    • dirname

    • pidof

    • df

    • grep

    • umount

    • mv

    • gzip

    • mkdir

    • rm

    • ln

    • cut

    • cat

    • /bin/bash

GGC v1.10

サポートされているプラットフォーム:

  • アーキテクチャ: Armv7l

  • アーキテクチャ: Armv8 (AArch64)

  • アーキテクチャ: Armv6l

    • OS: Linux

  • アーキテクチャ: x86_64

    • OS: Linux

  • Windows、macOS、Linux プラットフォームは、Docker コンテナ AWS IoT Greengrass で実行できます。詳細については、「Docker コンテナでの AWS IoT Greengrass の実行」を参照してください。

要件:

  • AWS IoT Greengrass Core ソフトウェアで使用できるディスク容量は 128 MB 以上です。OTA 更新エージェントを使用する場合は、400 MB 以上が必要です。

  • AWS IoT Greengrass Core ソフトウェアに割り当てられる最小 128 MB の RAM。ストリームマネージャーを有効にする場合は、198 MB 以上の RAM が必要です。

    注記

    AWS IoT コンソールのデフォルトグループ作成オプションを使用して Greengrass グループを作成すると、ストリームマネージャーはデフォルトで有効になります。

  • Linux カーネルバージョン:

    • コンテナ AWS IoT Greengrass での実行をサポートするには、Linux カーネルバージョン 4.4 以降が必要です。

    • コンテナ AWS IoT Greengrass なしでの実行をサポートするには、Linux カーネルバージョン 3.17 以降が必要です。この設定では、Greengrass グループのデフォルトの Lambda 関数コンテナ化を [No container] (コンテナなし) に設定する必要があります。手順については、「グループ内の Lambda 関数のコンテナ化のデフォルト設定」を参照してください。

  • GNU C ライブラリ (glibc) バージョン 2.14 以降。OpenWrt ディストリビューションでは、musl C ライブラリ バージョン 1.1.16 以降が必要です。

  • /var/run ディレクトリがデバイスに存在する必要があります。

  • /dev/stdin/dev/stdout、および /dev/stderr ファイルが利用可能である必要があります。

  • ハードリンクとソフトリンクの保護がデバイス上で有効になっている必要があります。それ以外の場合は、 -iフラグを使用して安全でないモードでのみ実行 AWS IoT Greengrass できます。

  • 次の Linux カーネル設定をデバイスで有効にする必要があります。

    • 名前空間:

      • CONFIG_IPC_NS

      • CONFIG_UTS_NS

      • CONFIG_USER_NS

      • CONFIG_PID_NS

    • Cgroups:

      • CONFIG_CGROUP_DEVICE

      • CONFIG_CGROUPS

      • CONFIG_MEMCG

      カーネルは cgroup をサポートしている必要があります。コンテナ AWS IoT Greengrass で を実行する場合、次の要件が適用されます。

      • AWS IoT Greengrass が Lambda 関数のメモリ制限を設定できるように、メモリ cgroup を有効にしてマウントする必要があります。

      • ローカルリソースアクセスを持つ Lambda 関数を使用して AWS IoT Greengrass コアデバイスでファイルを開く場合は、デバイス cgroup を有効にしてマウントする必要があります。

    • その他:

      • CONFIG_POSIX_MQUEUE

      • CONFIG_OVERLAY_FS

      • CONFIG_HAVE_ARCH_SECCOMP_FILTER

      • CONFIG_SECCOMP_FILTER

      • CONFIG_KEYS

      • CONFIG_SECCOMP

      • CONFIG_SHMEM

  • Amazon S3 および のルート証明書は、システムトラストストアに存在する AWS IoT 必要があります。

  • ストリームマネージャーには、基本 AWS IoT Greengrass Core ソフトウェアメモリ要件に加えて、Java 8 ランタイムと 70 MB 以上の RAM が必要です。 AWS IoT コンソールでデフォルトグループ作成オプションを使用すると、ストリームマネージャーはデフォルトで有効になります。ストリームマネージャーは OpenWrt ディストリビューションではサポートされていません。

  • ローカルで実行する Lambda 関数に必要な AWS Lambda ランタイムをサポートするライブラリ。必須ライブラリは、コアにインストールし、PATH 環境変数に追加する必要があります。同じコアに複数のライブラリをインストールできます。

    • Python 3.7 ランタイムを使用する関数に対応する Python バージョン 3.7。

    • Python 2.7 ランタイムを使用する関数に対応する Python バージョン 2.7。

    • Node.js 12.x ランタイムを使用する関数に対応する Node.js バージョン 12.x。

    • Java 8 ランタイムを使用する関数に対応する Java バージョン 8 以降。

      注記

      OpenWrt ディストリビューションで Java を実行することは公式にはサポートされていません。ただし、OpenWrt ビルドで Java がサポートされている場合は、Java で作成された Lambda 関数を OpenWrt デバイス上で実行できる可能性があります。

      Lambda ランタイム AWS IoT Greengrass のサポートの詳細については、「」を参照してくださいAWS IoT Greengrass コアでの Lambda 関数の実行

  • 次のシェルコマンド (BusyBox バリアントではない) は、無線 (OTA) 更新エージェントで必要です。

    • wget

    • realpath

    • tar

    • readlink

    • basename

    • dirname

    • pidof

    • df

    • grep

    • umount

    • mv

    • gzip

    • mkdir

    • rm

    • ln

    • cut

    • cat

    • /bin/bash

GGC v1.9

サポートされているプラットフォーム:

  • アーキテクチャ: Armv7l

  • アーキテクチャ: Armv8 (AArch64)

  • アーキテクチャ: Armv6l

    • OS: Linux

  • アーキテクチャ: x86_64

    • OS: Linux

  • Windows、macOS、Linux プラットフォームは、Docker コンテナ AWS IoT Greengrass で実行できます。詳細については、「Docker コンテナでの AWS IoT Greengrass の実行」を参照してください。

要件:

  • AWS IoT Greengrass Core ソフトウェアで使用できるディスク容量は 128 MB 以上です。OTA 更新エージェントを使用する場合は、400 MB 以上が必要です。

  • AWS IoT Greengrass Core ソフトウェアに割り当てられる最小 128 MB の RAM。

  • Linux カーネルバージョン:

    • コンテナ AWS IoT Greengrass での実行をサポートするには、Linux カーネルバージョン 4.4 以降が必要です。

    • コンテナ AWS IoT Greengrass なしでの実行をサポートするには、Linux カーネルバージョン 3.17 以降が必要です。この設定では、Greengrass グループのデフォルトの Lambda 関数コンテナ化を [No container] (コンテナなし) に設定する必要があります。手順については、「グループ内の Lambda 関数のコンテナ化のデフォルト設定」を参照してください。

  • GNU C ライブラリ (glibc) バージョン 2.14 以降。OpenWrt ディストリビューションでは、musl C ライブラリ バージョン 1.1.16 以降が必要です。

  • /var/run ディレクトリがデバイスに存在する必要があります。

  • /dev/stdin/dev/stdout、および /dev/stderr ファイルが利用可能である必要があります。

  • ハードリンクとソフトリンクの保護がデバイス上で有効になっている必要があります。それ以外の場合は、 -iフラグを使用して安全でないモードでのみ実行 AWS IoT Greengrass できます。

  • 次の Linux カーネル設定をデバイスで有効にする必要があります。

    • 名前空間:

      • CONFIG_IPC_NS

      • CONFIG_UTS_NS

      • CONFIG_USER_NS

      • CONFIG_PID_NS

    • Cgroups:

      • CONFIG_CGROUP_DEVICE

      • CONFIG_CGROUPS

      • CONFIG_MEMCG

      カーネルは cgroup をサポートしている必要があります。コンテナ AWS IoT Greengrass で を実行する場合、次の要件が適用されます。

      • AWS IoT Greengrass が Lambda 関数のメモリ制限を設定できるように、メモリ cgroup を有効にしてマウントする必要があります。

      • ローカルリソースアクセスを持つ Lambda 関数を使用して AWS IoT Greengrass コアデバイスでファイルを開く場合は、デバイス cgroup を有効にしてマウントする必要があります。

    • その他:

      • CONFIG_POSIX_MQUEUE

      • CONFIG_OVERLAY_FS

      • CONFIG_HAVE_ARCH_SECCOMP_FILTER

      • CONFIG_SECCOMP_FILTER

      • CONFIG_KEYS

      • CONFIG_SECCOMP

      • CONFIG_SHMEM

  • Amazon S3 および のルート証明書は、システムトラストストアに存在する AWS IoT 必要があります。

  • ローカルで実行する Lambda 関数に必要な AWS Lambda ランタイムをサポートするライブラリ。必須ライブラリは、コアにインストールし、PATH 環境変数に追加する必要があります。同じコアに複数のライブラリをインストールできます。

    • Python 2.7 ランタイムを使用する関数に対応する Python バージョン 2.7。

    • Python 3.7 ランタイムを使用する関数に対応する Python バージョン 3.7。

    • Node.js 6.10 ランタイムを使用する関数に対応する Node.js バージョン 6.10 以降。

    • Node.js 8.10 ランタイムを使用する関数に対応する Node.js バージョン 8.10 以降。

    • Java 8 ランタイムを使用する関数に対応する Java バージョン 8 以降。

      注記

      OpenWrt ディストリビューションで Java を実行することは公式にはサポートされていません。ただし、OpenWrt ビルドで Java がサポートされている場合は、Java で作成された Lambda 関数を OpenWrt デバイス上で実行できる可能性があります。

      Lambda ランタイム AWS IoT Greengrass のサポートの詳細については、「」を参照してくださいAWS IoT Greengrass コアでの Lambda 関数の実行

  • 次のシェルコマンド (BusyBox バリアントではない) は、無線 (OTA) 更新エージェントで必要です。

    • wget

    • realpath

    • tar

    • readlink

    • basename

    • dirname

    • pidof

    • df

    • grep

    • umount

    • mv

    • gzip

    • mkdir

    • rm

    • ln

    • cut

    • cat

GGC v1.8
  • サポートされているプラットフォーム:

    • アーキテクチャ: Armv7l、OS: Linux

    • アーキテクチャ: x86_64、OS: Linux

    • アーキテクチャ: Armv8 (AArch64)、OS: Linux

    • Windows、macOS、Linux プラットフォームは、Docker コンテナ AWS IoT Greengrass で実行できます。詳細については、「Docker コンテナでの AWS IoT Greengrass の実行」を参照してください。

    • Linux プラットフォームは、Snapcraft から入手できる Greengrass スナップを使用して、機能が制限され AWS IoT Greengrass た のバージョンを実行できます。詳細については、「AWS IoT Greengrass スナップソフトウェア」を参照してください。

  • 以下のアイテムは必須です。

    • AWS IoT Greengrass Core ソフトウェアで使用できるディスク容量は 128 MB 以上です。OTA 更新エージェントを使用する場合は、400 MB 以上が必要です。

    • AWS IoT Greengrass Core ソフトウェアに割り当てられる最小 128 MB の RAM。

    • Linux カーネルバージョン:

      • コンテナ AWS IoT Greengrass での実行をサポートするには、Linux カーネルバージョン 4.4 以降が必要です。

      • コンテナ AWS IoT Greengrass なしでの実行をサポートするには、Linux カーネルバージョン 3.17 以降が必要です。この設定では、Greengrass グループのデフォルトの Lambda 関数コンテナ化を [No container] (コンテナなし) に設定する必要があります。手順については、「グループ内の Lambda 関数のコンテナ化のデフォルト設定」を参照してください。

    • GNU C ライブラリ (glibc) バージョン 2.14 以降。

    • /var/run ディレクトリがデバイスに存在する必要があります。

    • /dev/stdin/dev/stdout、および /dev/stderr ファイルが利用可能である必要があります。

    • ハードリンクとソフトリンクの保護がデバイス上で有効になっている必要があります。それ以外の場合は、 -iフラグを使用して安全でないモードでのみ実行 AWS IoT Greengrass できます。

    • 次の Linux カーネル設定をデバイスで有効にする必要があります。

      • 名前空間:

        • CONFIG_IPC_NS

        • CONFIG_UTS_NS

        • CONFIG_USER_NS

        • CONFIG_PID_NS

      • Cgroups:

        • CONFIG_CGROUP_DEVICE

        • CONFIG_CGROUPS

        • CONFIG_MEMCG

        カーネルは cgroup をサポートしている必要があります。コンテナ AWS IoT Greengrass で を実行する場合、次の要件が適用されます。

        • AWS IoT Greengrass が Lambda 関数のメモリ制限を設定できるように、メモリ cgroup を有効にしてマウントする必要があります。

        • ローカルリソースアクセスを持つ Lambda 関数を使用して AWS IoT Greengrass コアデバイスでファイルを開く場合は、デバイス cgroup を有効にしてマウントする必要があります。

      • その他:

        • CONFIG_POSIX_MQUEUE

        • CONFIG_OVERLAY_FS

        • CONFIG_HAVE_ARCH_SECCOMP_FILTER

        • CONFIG_SECCOMP_FILTER

        • CONFIG_KEYS

        • CONFIG_SECCOMP

        • CONFIG_SHMEM

    • Amazon S3 および のルート証明書は、システムトラストストアに存在する AWS IoT 必要があります。

  • 次の項目は、条件付きで必須です。

    • ローカルで実行する Lambda 関数に必要な AWS Lambda ランタイムをサポートするライブラリ。必須ライブラリは、コアにインストールし、PATH 環境変数に追加する必要があります。同じコアに複数のライブラリをインストールできます。

      • Python 2.7 ランタイムを使用する関数に対応する Python バージョン 2.7。

      • Node.js 6.10 ランタイムを使用する関数に対応する Node.js バージョン 6.10 以降。

      • Java 8 ランタイムを使用する関数に対応する Java バージョン 8 以降。

    • 次のシェルコマンド (BusyBox バリアントではない) は、無線 (OTA) 更新エージェントで必要です。

      • wget

      • realpath

      • tar

      • readlink

      • basename

      • dirname

      • pidof

      • df

      • grep

      • umount

      • mv

      • gzip

      • mkdir

      • rm

      • ln

      • cut

      • cat

クォータ (制限) の詳細については、 AWS IoT Greengrass 「」のService Quotas」を参照してくださいAmazon Web Services 全般のリファレンス

料金に関する詳細は、「AWS IoT Greengrass 料金表」および「AWS IoT Core 料金表」を参照してください。

AWS IoT Greengrass ダウンロード

AWS IoT Greengrassで使用するソフトウェアを見つけてダウンロードするには、以下の情報を使用できます。

AWS IoT Greengrass Core ソフトウェア

AWS IoT Greengrass Core ソフトウェアは AWS IoT Greengrass コアデバイスに AWS 機能を拡張し、ローカルデバイスが生成したデータに対してローカルに動作できるようにします。

v1.11
1.11.6

バグ修正と機能向上:

  • デプロイ中に電源損失が突然発生した場合の復元力を改善しました。

  • ストリームマネージャーのデータ破損により AWS IoT Greengrass Core ソフトウェアの起動が妨げられる問題を修正しました。

  • 新規クライアントデバイスが特定のシナリオでコアに接続できない問題を修正しました。

  • ストリームマネージャーのストリーム名に .log を含めることができなかった問題を修正しました。

1.11.5

バグ修正と機能向上:

  • 全般的なパフォーマンス向上とバグ修正。

1.11.4

バグ修正と機能向上:

  • AWS IoT Greengrass Core ソフトウェア v1.11.3 へのアップグレードを妨げるストリームマネージャーの問題を修正しました。ストリームマネージャーを使用してデータをクラウドにエクスポートする場合、OTA 更新を使用して、以前の v1.x バージョンの AWS IoT Greengrass Core ソフトウェアを v1.11.4 にアップグレードできるようになりました。

  • 全般的なパフォーマンス向上とバグ修正。

1.11.3

バグ修正と機能向上:

  • Ubuntu デバイスのスナップで実行されている AWS IoT Greengrass Core ソフトウェアが、デバイスへの突然の停電後に応答しなくなる問題を修正しました。

  • 存続期間の長い Lambda 関数への MQTT メッセージの配信が遅延する問題を修正しました。

  • maxWorkItemCount 値が 1024 より大きい値に設定されていると、MQTT メッセージが適切に送信されない問題を修正しました。

  • config.jsonkeepAlive プロパティで指定された MQTT KeepAlive 期間を OTA 更新エージェントが無視する問題を修正しました。

  • 全般的なパフォーマンス向上とバグ修正。

重要

ストリームマネージャーを使用してデータをクラウドにエクスポートする場合は、以前の v1.x バージョンから AWS IoT Greengrass Core ソフトウェア v1.11.3 にアップグレードしないでください。ストリームマネージャーを初めて有効にする場合は、まず最新バージョンの AWS IoT Greengrass Core ソフトウェアをインストールすることを強くお勧めします。

1.11.1

バグ修正と機能向上:

  • ストリームマネージャーのメモリ使用量が増加する問題を修正しました。

  • Greengrass コアデバイスの電源がストリームデータの特定の有効期限 (TTL) を超えてオフになっている場合に、ストリームマネージャーがストリームのシーケンス番号を 0 にリセットする問題を修正しました。

  • AWS クラウドへのデータエクスポートの再試行をストリームマネージャーが適切に停止できない問題を修正しました。

1.11.0

新機能:

  • Greengrass コアのテレメトリエージェントは、ローカルテレメトリデータを収集して公開します AWS クラウド。テレメトリデータを取得してさらに処理するには、Amazon EventBridge ルールを作成して、ターゲットをサブスクライブします。詳細については、AWS IoT Greengrass 「コアデバイスからのシステムヘルステレメトリデータの収集」を参照してください。

  • ローカル HTTP API は、 によって開始されたローカルワーカープロセスの現在の状態のスナップショットを返します AWS IoT Greengrass。詳細については、「ローカルヘルスチェック API を呼び出す」を参照してください。

  • ストリームマネージャーは、Amazon S3 と にデータを自動的にエクスポートします AWS IoT SiteWise。

    新しいストリームマネージャーパラメータにより、既存のストリームを更新して、データのエクスポートを一時停止または再開できます。

  • コア上で Python 3.8.x Lambda 関数を実行するためのサポート。

  • Greengrass コア IPC ポート番号の設定に使用する、config.json の新しい ggDaemonPort プロパティ。デフォルトのポート番号は 8000 です。

    Greengrass コア IPC 認証のタイムアウト設定に使用する config.json の新しい systemComponentAuthTimeout プロパティ。デフォルトのタイムアウトは 5000 ミリ秒です。

  • AWS IoT Greengrass グループあたりの AWS IoT デバイスの最大数を 200 から 2500 に増やしました。

    グループあたりのサブスクリプションの最大数を 1000 から 10000 に増やしました。

    詳細については、「AWS IoT Greengrass endpoints and quotas」を参照してください。

バグ修正と機能向上:

  • Greengrass サービスプロセスのメモリ使用率を減らすことができる全体的な最適化。

  • 新しいランタイム設定パラメータ (mountAllBlockDevices) により、Greengrass が OverlayFS の設定後、バインドマウントを使用してすべてのブロックデバイスをコンテナにマウントできるようになります。この機能により、/usr/ 階層下にない場合に、Greengrass のデプロイが失敗する問題が解決されました。

  • がシンボリックリンクの場合に AWS IoT Greengrass コア障害が発生する問題を修正/tmpしました。

  • Greengrass デプロイエージェントが機械学習の未使用モデルアーティファクトを mlmodel_public フォルダから削除する問題を修正しました。

  • 全般的なパフォーマンス向上とバグ修正。

Core ソフトウェアを AWS IoT Greengrass コアデバイスにインストールするには、アーキテクチャとオペレーティングシステム (OS) の パッケージをダウンロードし、「入門ガイド」のステップに従います。

ヒント

AWS IoT Greengrass には、 AWS IoT Greengrass Core ソフトウェアをインストールするための他のオプションも用意されています。例えば、Greengrass デバイスのセットアップを使用して環境を設定し、最新バージョンの AWS IoT Greengrass Core ソフトウェアをインストールできます。または、サポートされている Debian プラットフォームでは、APT パッケージマネージャーを使用して AWS IoT Greengrass Core ソフトウェアをインストールまたはアップグレードできます。詳細については、「AWS IoT Greengrass Core ソフトウェアをインストールします。」を参照してください。

アーキテクチャ

オペレーティングシステム

リンク

Armv8 (AArch64)

Linux

ダウンロード

Armv8 (AArch64)

Linux (OpenWrt)

ダウンロード

Armv7l

Linux

ダウンロード

Armv7l

Linux (OpenWrt)

ダウンロード

Armv6l

Linux

ダウンロード

x86_64

Linux

ダウンロード

Extended life versions
1.10.5

v1.10 の新機能:

  • データストリームをローカルで処理し、 AWS クラウド に自動的にエクスポートするストリームマネージャー。この機能を使用するには、Greengrass Core デバイスに Java 8 が必要です。詳細については、「AWS IoT Greengrass コアでのデータストリームの管理」を参照してください。

  • コアデバイスで Docker アプリケーションを実行する、新しい Greengrass Docker アプリケーションのデプロイコネクタ。詳細については、「Docker アプリケーションのデプロイコネクタ」を参照してください。

  • OPC-UA サーバーからアセットプロパティに産業デバイスデータを送信する新しい IoT SiteWise コネクタ AWS IoT SiteWise。詳細については、「IoT SiteWise コネクタ」を参照してください。

  • コンテナ化を使用せずに実行する Lambda 関数では、Greengrass グループの機械学習リソースにアクセスできます。詳細については、「Lambda 関数から機械学習リソースにアクセスする」を参照してください。

  • での MQTT 永続セッションのサポート AWS IoT。詳細については、「AWS IoT Core を使用した MQTT 永続セッション」を参照してください。

  • ローカルの MQTT トラフィックは、デフォルトのポート 8883 以外のポートを使用できます。詳細については、「ローカルメッセージング用の MQTT ポートの設定」を参照してください。

  • Lambda 関数から信頼性の高いメッセージを発行する、AWS IoT Greengrass Core SDK の新しい queueFullPolicy オプション。

  • コア上で Node.js 12.x Lambda 関数を実行するためのサポート。

バグ修正と機能向上:

  • ハードウェアセキュリティ統合による無線通信 (OTA) 更新は、OpenSSL 1.1 で設定できます。

  • ストリームマネージャーはファイルデータの破損に対する回復性が高くなっています。

  • Linux カーネル 5.1 以降を使用しているデバイスで sysfs マウントエラーが発生する問題を修正しました。

  • MQTT 接続でのパブリッシュ、サブスクライブ、およびサブスクライブ解除オペレーションのタイムアウトを設定するために使用する config.json の新しいmqttOperationTimeoutプロパティ AWS IoT Core。

  • ストリームマネージャーのメモリ使用量が増加する問題を修正しました。

  • Greengrass コア IPC 認証のタイムアウト設定に使用する config.json の新しい systemComponentAuthTimeout プロパティ。デフォルトのタイムアウトは 5000 ミリ秒です。

  • config.jsonkeepAlive プロパティで指定された MQTT KeepAlive 期間を OTA 更新エージェントが無視する問題を修正しました。

  • maxWorkItemCount 値が 1024 より大きい値に設定されていると、MQTT メッセージが適切に送信されない問題を修正しました。

  • 存続期間の長い Lambda 関数への MQTT メッセージの配信が遅延する問題を修正しました。

  • Ubuntu デバイスのスナップで実行されている AWS IoT Greengrass Core ソフトウェアが、デバイスへの突然の停電後に応答しなくなる問題を修正しました。

  • 全般的なパフォーマンス向上とバグ修正。

Core ソフトウェアを AWS IoT Greengrass コアデバイスにインストールするには、アーキテクチャとオペレーティングシステム (OS) の パッケージをダウンロードし、「入門ガイド」のステップに従います。

アーキテクチャ

オペレーティングシステム

リンク

Armv8 (AArch64)

Linux

ダウンロード

Armv8 (AArch64)

Linux (OpenWrt)

ダウンロード

Armv7l

Linux

ダウンロード

Armv7l

Linux (OpenWrt)

ダウンロード

Armv6l

Linux

ダウンロード

x86_64

Linux

ダウンロード

1.9.4

v1.9 の新機能:

  • Python 3.7 と Node.js 8.10 の Lambda ランタイムのサポート。Python 3.7 および Node.js 8.10 ランタイムを使用する Lambda 関数を AWS IoT Greengrass コアで実行できるようになりました (AWS IoT Greengrass 引き続き Python 2.7 および Node.js 6.10 ランタイムをサポートします)。

  • 最適化された MQTT 接続。Greengrass コアが確立する AWS IoT Coreとの接続数が少なくなりました。この変更により、接続の数に基づく料金の運用コストを削減できます。

  • ローカル MQTT サーバー用楕円曲線 (EC) キー。ローカル MQTT サーバーは、RSA キーに加えて EC キーをサポートします。(MQTT サーバー証明書には、キータイプに関係なく、SHA-256 RSA 署名が含まれています。) 詳細については、「AWS IoT Greengrass Core セキュリティプリンシパル」を参照してください。

  • OpenWrt. AWS IoT Greengrass Core ソフトウェア v1.9.2 以降のサポートは、Armv8 (AArch64) および Armv7l アーキテクチャの OpenWrt ディストリビューションにインストールできます。現在、OpenWrt は ML 推論をサポートしていません。

  • Armv6l. AWS IoT Greengrass Core ソフトウェア v1.9.3 以降のサポートは、Armv6l アーキテクチャの Raspbian ディストリビューション (Raspberry Pi Zero デバイスなど) にインストールできます。

  • ALPN を使用したポート 443 での OTA 更新。MQTT トラフィックにポート 443 を使用する Greengrass コアはover-the-air (OTA) ソフトウェア更新をサポートするようになりました。 は、Application Layer Protocol Network (ALPN) TLS 拡張機能 AWS IoT Greengrass を使用して、これらの接続を有効にします。詳細については、AWS IoT Greengrass Core ソフトウェアの OTA 更新およびポート 443 での接続またはネットワークプロキシを通じた接続を参照してください。

Core ソフトウェアを AWS IoT Greengrass コアデバイスにインストールするには、アーキテクチャとオペレーティングシステム (OS) の パッケージをダウンロードし、「入門ガイド」のステップに従います。

アーキテクチャ

オペレーティングシステム

リンク

Armv8 (AArch64)

Linux

ダウンロード

Armv8 (AArch64)

Linux (OpenWrt)

ダウンロード

Armv7l

Linux

ダウンロード

Armv7l

Linux (OpenWrt)

ダウンロード

Armv6l

Linux

ダウンロード

x86_64

Linux

ダウンロード

1.8.4
  • 新機能:

    • グループ内にある Lambda 関数の設定可能なデフォルトアクセス ID。このグループレベルの設定により、Lambda 関数の実行で使用されるデフォルトのアクセス許可が決まります。ユーザー ID、グループ ID、またはその両方を設定できます。個々の Lambda 関数は、そのグループのデフォルトのアクセス ID を上書きできます。詳細については、「グループ内の Lambda 関数に対するデフォルトのアクセス ID の設定」を参照してください。

    • ポート 443 経由の HTTPS トラフィック。HTTPS コミュニケーションは、デフォルトのポート 8443 ではなくポート 443 を経由するように設定できます。これにより、Application Layer Protocol Network (ALPN) TLS 拡張 AWS IoT Greengrass のサポートが補完され、MQTT と HTTPS の両方のすべての Greengrass メッセージングトラフィックがポート 443 を使用できるようになります。詳細については、「ポート 443 での接続またはネットワークプロキシを通じた接続」を参照してください。

    • AWS IoT 接続用のクライアント IDs予測可能な名前。この変更により、 AWS IoT Device Defender および AWS IoT ライフサイクルイベントのサポートが有効になり、そのため接続、切断、購読、および購読解除のイベントに関する通知を受け取ることができます。予測可能な命名により、接続 ID を中心としたロジックの作成も容易になります (例えば、証明書の属性に基づいてサブスクライブポリシーテンプレートを作成します。詳細については、「AWS IoT を使用した MQTT 接続用クライアント ID」を参照してください。

    バグ修正と機能向上:

    • シャドウ同期とデバイス証明書マネージャーの再接続の問題を修正しました。

    • 全般的なパフォーマンス向上とバグ修正。

Core ソフトウェアを AWS IoT Greengrass コアデバイスにインストールするには、アーキテクチャとオペレーティングシステム (OS) の パッケージをダウンロードし、「入門ガイド」のステップに従います。

アーキテクチャ

オペレーティングシステム

リンク

Armv8 (AArch64)

Linux

ダウンロード

Armv7l

Linux

ダウンロード

x86_64

Linux

ダウンロード

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

デバイスに AWS IoT Greengrass Core ソフトウェアをインストールするためのその他のオプションについては、「」を参照してくださいAWS IoT Greengrass Core ソフトウェアをインストールします。

 

AWS IoT Greengrass スナップソフトウェア

AWS IoT Greengrass snap 1.11.x を使用すると、コンテナ化された環境で、必要なすべての依存関係とともに、便利なソフトウェアパッケージ AWS IoT Greengrass を通じて の限定バージョンを実行できます。

注記

AWS IoT Greengrass スナップは、 AWS IoT Greengrass Core ソフトウェア v1.11.x. AWS IoT Greengrass does では v1.10.x のスナップとして使用できます。サポートされていないバージョンのバグ修正や更新プログラムは受けられません。

AWS IoT Greengrass スナップはコネクタと機械学習 (ML) 推論をサポートしていません。

詳細については、「スナップでの AWS IoT Greengrass の実行」を参照してください。

 

AWS IoT Greengrass Docker ソフトウェア

AWS には、Docker コンテナ AWS IoT Greengrass での実行を容易にする Dockerfile と Docker イメージが用意されています。

Dockerfile

Dockerfiles には、カスタム AWS IoT Greengrass コンテナイメージを構築するためのソースコードが含まれています。イメージを変更して、別のプラットフォームのアーキテクチャで実行したり、イメージサイズを縮小したりできます。手順については、README ファイルを参照してください。

ターゲット AWS IoT Greengrass Core ソフトウェアバージョンをダウンロードします。

v1.11
Extended life versions

 

Docker イメージ

Docker イメージには、Amazon Linux 2 (x86_64) および Alpine Linux (x86_64、Armv7l、または AArch64) ベースイメージに AWS IoT Greengrass Core ソフトウェアと依存関係がインストールされています。構築済みのイメージを使用して、 AWS IoT Greengrassの試用を開始できます。

重要

2022 年 6 月 30 日、 は、Amazon Elastic Container Registry (Amazon ECR) と Docker Hub に公開される AWS IoT Greengrass Core ソフトウェア v1.x Docker イメージのメンテナンス AWS IoT Greengrass を終了しました。これらの Docker イメージは、メンテナンス終了から 1 年後の 2023 年 6 月 30 日まで、Amazon ECR および Docker Hub から引き続きダウンロードすることができます。ただし、2022 年 6 月 30 日にメンテナンスが終了した後、 AWS IoT Greengrass Core ソフトウェア v1.x Docker イメージはセキュリティパッチやバグ修正を受け取らなくなりました。これらの Docker イメージに依存する本稼働ワークロードを実行する場合は、 AWS IoT Greengrass が提供する Dockerfiles を使用して独自の Docker イメージを構築することをお勧めします。詳細については、「AWS IoT Greengrass Version 1 メンテナンスポリシー」を参照してください。

構築済みイメージは、Docker Hub または Amazon Elastic Container Registry(Amazon ECR) からダウンロードできます。

  • Docker Hub の場合は、version タグを使用して、特定のバージョンの Greengrass Docker イメージをダウンロードします。すべての使用可能なイメージを確認するには、Docker Hub の [タグ] ページを参照してください。

  • Amazon ECR の場合は、latest タグを使用して、利用可能な最新バージョンの Greengrass Docker イメージをダウンロードします。使用可能なイメージバージョンのリストと Amazon ECR からのイメージダウンロードの詳細については、「Docker コンテナでの AWS IoT Greengrass の実行」を参照してください。

警告

AWS IoT Greengrass Core ソフトウェアの v1.11.6 以降、Greengrass Docker イメージには Python 2.7 が含まれなくなりました。Python 2.7 は end-of-lifeし、セキュリティ更新プログラムを受け取らなくなったためです。これらの Docker イメージに更新する場合は、アプリケーションが新しい Docker イメージで動作することを検証した後に、アップデートを本番デバイスに展開することをお勧めします。Greengrass Docker イメージを使用するアプリケーションに Python 2.7 が必要な場合は、Greengrass Dockerfile を変更して、アプリケーションに Python 2.7 を含めることができます。

AWS IoT Greengrass は AWS IoT Greengrass Core ソフトウェア v1.11.1 用の Docker イメージを提供していません。

注記

デフォルトでは、alpine-aarch64 イメージと alpine-armv7l イメージは Armベースのホストでのみ実行できます。これらのイメージを x86 ホストで実行するには、QEMU をインストールして QEMU ライブラリをホストにマウントできます。以下に例を示します。

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

 

AWS IoT Greengrass コア SDK

Lambda 関数は、 AWS IoT Greengrass Core SDK を使用してローカルで AWS IoT Greengrass コアとやり取りします。これにより、デプロイされた Lambda 関数に以下を許可します。

  • MQTT メッセージを と交換します AWS IoT Core。

  • Greengrass グループのコネクタ、クライアントデバイス、その他の Lambda 関数で MQTT メッセージを交換します。

  • ローカルシャドウサービスとやり取りを行います。

  • その他のローカル Lambda 関数を呼び出します。

  • シークレットリソースにアクセスします。

  • ストリームマネージャーとやり取りを行います。

GitHub から言語またはプラットフォームの AWS IoT Greengrass Core SDK をダウンロードします。 GitHub

詳細については、「AWS IoT Greengrass コア SDK」を参照してください。

 

サポートされている機械学習ランタイムおよびライブラリ

Greengrass コアで推論を実行するには、ML モデルタイプ用の機械学習ランタイムまたはライブラリをインストールする必要があります。

AWS IoT Greengrass は、次の ML モデルタイプをサポートしています。モデルタイプおよびデバイスプラットフォーム用のランタイムまたはライブラリをインストールする方法については、次のリンクを参照してください。

機械学習のサンプル

AWS IoT Greengrass には、サポートされている ML ランタイムとライブラリで使用できるサンプルが用意されています。これらのサンプルは、Greengrass Core ソフトウェアライセンス契約に従ってリリースされます。

Deep learning runtime (DLR)

デバイスプラットフォームに応じたサンプルをダウンロードしてください。

DLR サンプルを使用するチュートリアルについては、「最適化された機械学習推論を AWS Management Consoleを使用して設定する方法」を参照してください。

MXNet

デバイスプラットフォームに応じたサンプルをダウンロードしてください。

MXNet サンプルを使用するチュートリアルについては、「AWS Management Consoleを使用して機械学習推論を設定する方法」を参照してください。

TensorFlow

デバイスプラットフォームに応じた Tensorflow サンプルをダウンロードしてください。このサンプルは、Raspberry Pi、NVIDIA Jetson TX2、Intel Atom で動作します。

 

AWS IoT Greengrass ML SDK ソフトウェア

AWS IoT Greengrass Machine Learning SDK により、作成済みの Lambda 関数がローカルの機械学習モデルを使用して ML フィードバックコネクタにデータを送信し、アップロードと発行を行えます。

v1.1.0
v1.0.0

ご意見をお待ちしております

ご意見をお待ちしております。お問い合わせの場合は、「AWS re:Post」にアクセスし、AWS IoT Greengrass タグを使用してください。