AWS IoT Greengrass コアデバイスをセットアップする - AWS IoT Greengrass

AWS IoT Greengrass コアデバイスをセットアップする

このセクションのタスクを完了し、AWS IoT Greengrass Core ソフトウェアをインストール、設定、および実行します。

注記

ここでは、AWS IoT Greengrass Core ソフトウェアの高度なインストールと設定について説明します。AWS IoT Greengrass V2 を初めて使用する場合は、最初に [getting started tutorial] (入門チュートリアル) を完了してコアデバイスをセットアップし、AWS IoT Greengrass の機能を確認することをお勧めします。

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

開始する前に、AWS IoT Greengrass Core ソフトウェアをインストールして実行するには、以下の要件を満たしていることを確認してください。

ヒント

[AWS Partner Device Catalog] ( パートナーデバイスカタログ) で AWS IoT Greengrass V2 に該当するデバイスを検索できます。

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

AWS IoT Greengrass は、次のプラットフォームを実行するデバイスを正式にサポートしています。このリストに含まれていないプラットフォームを持つデバイスは動作する可能性がありますが、AWS IoT Greengrass はこれらの指定されたプラットフォームでのみテストします。

Linux

アーキテクチャ:

  • Armv7l

  • Armv8 (AArch64)

  • x86_64

Windows

アーキテクチャ:

  • x86_64

バージョン:

  • Windows 10

  • Windows 11

  • [Windows Server 2019]

  • Windows Server 2022

注記

一部の AWS IoT Greengrass 機能は、現在 Windows デバイスではサポートされていません。詳細については、「オペレーティングシステム別 Greengrass 機能の互換性」 および 「Windows デバイスの機能に関する考慮事項」 を参照してください。

Linux プラットフォームは、Docker コンテナで AWS IoT Greengrass V2 を実行することもできます。詳細については、「Docker コンテナで AWS IoT Greengrass Core ソフトウェアを実行する」を参照してください。

カスタムの Linux ベースのオペレーティングシステムをビルドするには、[AWS IoT Greengrass V2 project] ( プロジェクト) の meta-aws に BitBake recipe を使用できます。meta-aws プロジェクトは、OpenEmbedded および Yocto Project ビルドフレームワークでビルドされた [embedded Linux] (組み込み Linux) システムで AWS エッジソフトウェア機能をビルドするために使用できる recipe を提供します。Yocto Project は、ハードウェアのアーキテクチャに関係なく、組み込みアプリケーション用のカスタム Linux ベースのシステムをビルドするのに役立つ、オープンソースのコラボレーションプロジェクトです。AWS IoT Greengrass V2 の Bitbake recipe により、デバイスで AWS IoT Greengrass Core ソフトウェアをインストール、設定、自動実行を行えます。

デバイスの要件

AWS IoT Greengrass Core ソフトウェア v2.x をインストールして実行するには、デバイスが次の要件を満たしている必要があります。

注記

AWS IoT Greengrass の AWS IoT Device Tester を使用すると、デバイスが AWS IoT Greengrass Core ソフトウェアを実行し、AWS クラウド と通信できることを確認できます。詳細については、「AWS IoT Device Tester for AWS IoT Greengrass V2 を使用する」を参照してください。

Linux
  • AWS IoT Greengrass V2 をサポートする AWS リージョン を使用します。サポートされているリージョンのリストについては、「AWS 全般のリファレンス」の「AWS IoT Greengrass V2 の エンドポイントとクォータ」を参照してください。

  • AWS IoT Greengrass Core ソフトウェアに対して利用可能な最低 256 MB のディスク空き容量。この要件には、コアデバイスにデプロイされたコンポーネントは含まれません。

  • AWS IoT Greengrass Core ソフトウェアに割り当てられる最小 96 MB RAM。この要件には、コアデバイスで実行されるコンポーネントは含まれません。詳細については、「JVM オプションでメモリ割り当てを制御する」を参照してください。

  • Java ランタイム環境 (JRE) バージョン 8 以降。デバイスの PATH 環境変数で Java が利用可能になっている必要があります。Java を使用してカスタムコンポーネントを開発するには、Java Development Kit (JDK) をインストールする必要があります。Amazon Corretto または OpenJDK の長期サポートバージョンを使用することをお勧めします。バージョン 8 以降が必要です。

  • [GNU C Library] (GNU C ライブラリ)(glibc) バージョン 2.25 以降。

  • AWS IoT Greengrass Core ソフトウェアは、ルートユーザーとして実行する必要があります。例えば sudo を使用します。

  • root などの AWS IoT Greengrass Core ソフトウェアを実行するルートユーザーは、任意のユーザーおよび任意のグループで sudo を実行する権限があることが必要です。/etc/sudoers ファイルは、このユーザーに sudo を他のグループとして実行する権限が与えられていることが必要です。/etc/sudoers のユーザーの権限は、次の例のようになります。

    root ALL=(ALL:ALL) ALL
  • コアデバイスは、一連のエンドポイントおよびポートへのアウトバウンド要求を実行できる必要があります。詳細については、「プロキシまたはファイアウォールを介したデバイストラフィックを許可する」を参照してください。

  • /tmp ディレクトリは exec 権限でマウントする必要があります。

  • 次のすべてのシェルコマンド:

    • ps -ax -o pid,ppid

    • sudo

    • sh

    • kill

    • cp

    • chmod

    • rm

    • ln

    • echo

    • exit

    • id

    • uname

    • grep

  • デバイスでは、次のオプションのシェルコマンドが必要な場合もあります。

    • (オプション) systemctl。このコマンドは、AWS IoT Greengrass Core ソフトウェアをシステムサービスとして設定するために使用します。

    • (オプション) useraddgroupadd、および usermod。これらのコマンドは、ggc_user システムユーザーと ggc_group システムグループを設定するために使用します。

    • (オプション) mkfifo。このコマンドは、Lambda 関数をコンポーネントとして実行するために使用します。

  • コンポーネントプロセスのシステムリソース制限を設定するには、デバイスで Linux カーネルバージョン 2.6.24 以降を実行する必要があります。

  • Lambda 関数を実行するには、デバイスが追加の要件を満たしている必要があります。詳細については、「Lambda 関数の要件」を参照してください。

Windows
  • AWS IoT Greengrass V2 をサポートする AWS リージョン を使用します。サポートされているリージョンのリストについては、「AWS 全般のリファレンス」の「AWS IoT Greengrass V2 の エンドポイントとクォータ」を参照してください。

  • AWS IoT Greengrass Core ソフトウェアに対して利用可能な最低 256 MB のディスク空き容量。この要件には、コアデバイスにデプロイされたコンポーネントは含まれません。

  • AWS IoT Greengrass Core ソフトウェアに割り当てられる最小 160 MB RAM。この要件には、コアデバイスで実行されるコンポーネントは含まれません。詳細については、「JVM オプションでメモリ割り当てを制御する」を参照してください。

  • Java ランタイム環境 (JRE) バージョン 8 以降。デバイスの PATH システム変数で Java が利用可能になっている必要があります。Java を使用してカスタムコンポーネントを開発するには、Java Development Kit (JDK) をインストールする必要があります。Amazon Corretto または OpenJDK の長期サポートバージョンを使用することをお勧めします。バージョン 8 以降が必要です。

    注記

    Greengrass nucleus のバージョン 2.5.0 を使用するには、64 ビット版の Java Runtime Environment (JRE) を使用する必要があります。Greengrass nucleus バージョン 2.5.1 は 32 ビットおよび 64 ビットの JRE をサポートします。

  • AWS IoT Greengrass Coreソフトウェアをインストールするユーザーは、管理者である必要があります。

  • AWS IoT Greengrass Core ソフトウェアをシステムサービスとしてインストールする必要があります。ソフトウェアをインストールするとき、--setup-system-service true を指定します。

  • コンポーネントプロセスを実行する各ユーザーは、LocalSystem アカウントに存在し、ユーザーの名前とパスワードが LocalSystem アカウントの認証情報マネージャーインスタンスに含まれている必要があります。AWS IoT Greengrass Core ソフトウェアをインストールする手順に従うと、このユーザーを設定できます。

  • コアデバイスは、一連のエンドポイントおよびポートへのアウトバウンド要求を実行できる必要があります。詳細については、「プロキシまたはファイアウォールを介したデバイストラフィックを許可する」を参照してください。

Lambda 関数の要件

Lambda 関数を実行するには、デバイスが次の要件を満たしている必要があります。

  • Linux ベースのオペレーティングシステム。

  • デバイスには mkfifo シェルコマンドが必要です。

  • デバイスでは、Lambda 関数に必要なプログラミング言語ライブラリを実行する必要があります。必須ライブラリを、デバイスにインストールし、PATH 環境変数に追加する必要があります。Greengrass は、Lambda でサポートされるすべてのバージョンの Python、Node.js、Java ランタイムをサポートします。Greengrass は、非推奨となった Lambda ランタイムバージョンに追加の制限を適用しません。Lambda ランタイムの AWS IoT Greengrass サポートの詳細については、「AWS Lambda 関数を実行する」を参照してください。

  • コンテナ化された Lambda 関数を実行するには、デバイスが次の要件を満たしている必要があります。

    • Linux kernel バージョン 4.4 以降。

    • カーネルは cgroups v1 をサポートしている必要があり、次の cgroups を有効にしてマウントする必要があります。

      • - コンテナ化された Lambda 関数のメモリ制限を設定するための AWS IoT Greengrass のメモリ cgroup。

      • - システムデバイスまたはボリュームにアクセスするコンテナ化された Lambda 関数のためのデバイスcgroup。

      AWS IoT Greengrass Core ソフトウェアは、cgroups v2 をサポートしていません。

      この要件を満たすには、次の Linux カーネルパラメータを使用してデバイスを起動します。

      cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
      ヒント

      Raspberry Pi で、/boot/cmdline.txt ファイルを編集して、デバイスのカーネルパラメータを設定します。

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

      • 名前空間:

        • CONFIG_IPC_NS

        • CONFIG_UTS_NS

        • CONFIG_USER_NS

        • CONFIG_PID_NS

      • Cgroups:

        • CONFIG_CGROUP_DEVICE

        • CONFIG_CGROUPS

        • CONFIG_MEMCG

      • Others:

        • CONFIG_POSIX_MQUEUE

        • CONFIG_OVERLAY_FS

        • CONFIG_HAVE_ARCH_SECCOMP_FILTER

        • CONFIG_SECCOMP_FILTER

        • CONFIG_KEYS

        • CONFIG_SECCOMP

        • CONFIG_SHMEM

      ヒント

      Linux カーネルパラメータを検証して設定する方法については、Linux ディストリビューションのドキュメントを確認してください。また、AWS IoT Device Tester を使用して、デバイスがこれらの要件を満たしていることを AWS IoT Greengrass に確認させることもできます。詳細については、「AWS IoT Device Tester for AWS IoT Greengrass V2 を使用する」を参照してください。

Windows デバイスの機能に関する考慮事項

一部の AWS IoT Greengrass 機能は、現在 Windows デバイスではサポートされていません。Windows デバイスが要件を満たしているかどうかを確認するには、機能の違いを確認してください。詳細については、「オペレーティングシステム別 Greengrass 機能の互換性」を参照してください。

AWS アカウント のセットアップ

AWS アカウント がない場合は、以下のステップを実行して作成します。

AWS アカウントにサインアップするには
  1. https://portal.aws.amazon.com/billing/signup を開きます。

  2. オンラインの手順に従います。

    サインアップ手順の一環として、通話呼び出しを受け取り、電話キーパッドで検証コードを入力するように求められます。

    AWS アカウント にサインアップすると、AWS アカウントのルートユーザー が作成されます。ルートユーザーには、アカウントのすべてのAWS のサービスとリソースへのアクセス権があります。セキュリティのベストプラクティスとして、ユーザーに管理アクセスを割り当て、ルートユーザーのみを使用してルートユーザーアクセスが必要なタスクを実行してください。

管理者ユーザーを作成するには、以下のいずれかのオプションを選択します。

管理者を管理する方法を 1 つ選択します 目的 方法 以下の操作も可能
IAM Identity Center 内

(推奨)

短期の認証情報を使用して AWS にアクセスします。

これはセキュリティのベストプラクティスと一致しています。ベストプラクティスの詳細については、IAM ユーザーガイドの「IAM でのセキュリティのベストプラクティス」を参照してください。

AWS IAM Identity Center ユーザーガイドの「開始方法」の手順に従います。 AWS Command Line Interface ユーザーガイドの「AWS IAM Identity Center を使用するための AWS CLI の設定」に従って、プログラムによるアクセスを設定します。
IAM 内

(非推奨)

長期認証情報を使用して AWS にアクセスする。 IAM ユーザーガイドの「最初の IAM 管理者のユーザーおよびグループの作成」の手順に従います。 IAM ユーザーガイドの「IAM ユーザーのアクセスキーの管理」に従って、プログラムによるアクセスを設定します。