ステップ2: 環境の構築 - AWS IoT Greengrass

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

ステップ2: 環境の構築

このセクションのステップに従って、AWS IoT Greengrass コアデバイスとして使用する Linux または Windows デバイスをセットアップします。

これらのステップでは、Raspberry Pi OS を備えた Raspberry Pi を使用していることを前提としています。別のデバイスまたはオペレーティングシステムを使用する場合は、お使いのデバイスに該当するドキュメントを参照してください。

AWS IoT Greengrass V2 の Raspberry Pi をセットアップするには
  1. Raspberry Pi で SSH を有効にして、リモート接続します。詳細については、「Raspberry Pi ドキュメント」の「SSH (セキュアシェル)」を参照してください。

  2. Raspberry Pi の IP アドレスを検索して SSH で接続します。これを行うには、Raspberry Pi 上で次のコマンドを実行します。

    hostname -I
  3. SSH で Raspberry Pi に接続します。

    開発用コンピュータに次のコマンドを実行します。username をサインインするユーザーの名前に置き換え、 を前のステップで見つけた IP アドレスpi-ip-addressに置き換えます。

    ssh username@pi-ip-address
    重要

    開発コンピュータで Microsoft Windows の以前のバージョンを使用している場合、ssh コマンドがないか、ssh があっても Raspberry Pi に接続できない可能性があります。Raspberry Pi に接続するには、無料のオープンソース SSH クライアントである PuTTY をインストールすることができます。「PuTTY ドキュメント」を参照して、Raspberry Pi に接続します。

  4. AWS IoT Greengrass Core ソフトウェアを実行するために必要な Java ランタイムをインストールします。Raspberry Pi で、次のコマンドを使用して Java 11 をインストールします。

    sudo apt install default-jdk

    インストールが完了したら、次のコマンドを実行して Java が Raspberry Pi で実行されていることを確認します。

    java -version

    このコマンドは、デバイス上で実行されている Java のバージョンを出力します。出力は、次の例のようになります。

    openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
ヒント: Raspberry Pi にカーネルパラメータを設定する

デバイスが Raspberry Pi の場合、次の手順を実行して Linux カーネルパラメータを表示と更新できます。

  1. /boot/cmdline.txt ファイルを開きます。このファイルでは、Raspberry Pi の起動時に適用する Linux カーネルパラメータを指定します。

    例えば、Linux ベースのシステムでは、次のコマンドを実行し、GNU nano を使用してファイルを開きます。

    sudo nano /boot/cmdline.txt
  2. /boot/cmdline.txt ファイルに次のカーネルパラメータが含まれていることを確認します。systemd.unified_cgroup_hierarchy=0 パラメータは、cgroups v2 ではなく、cgroups v1 を使用することを指定します。

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

    /boot/cmdline.txt ファイルにこれらのパラメータが含まれていない場合、あるいは異なる値を持つこれらのパラメータが含まれている場合、これらのパラメータと値を含むようにファイルを更新してください。

  3. /boot/cmdline.txt ファイルを更新した場合、Raspberry Pi を再起動して変更を適用します。

    sudo reboot
AWS IoT Greengrass V2 の Linux デバイスをセットアップするには
  1. AWS IoT Greengrass Core ソフトウェアを実行するために必要な Java ランタイムをインストールします。Amazon Corretto または OpenJDK の長期サポートバージョンを使用することをお勧めします。バージョン 8 以降が必要です。次のコマンドは、デバイスに OpenJDK をインストールする方法を示しています。

    • Debian ベースまたは Ubuntu ベースのディストリビューションの場合:

      sudo apt install default-jdk
    • Red Hat ベースのディストリビューションの場合 :

      sudo yum install java-11-openjdk-devel
    • 複数 Amazon Linux 2:

      sudo amazon-linux-extras install java-openjdk11
    • 複数 Amazon Linux 2023:

      sudo dnf install java-11-amazon-corretto -y

    インストールが完了したら、次のコマンドを実行して Java が Linux デバイスで実行されていることを確認します。

    java -version

    このコマンドは、デバイス上で実行されている Java のバージョンを出力します。例えば、Debian ベースのディストリビューションでは、出力は次のサンプルのようになります。

    openjdk version "11.0.9.1" 2020-11-04
    OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
    OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
  2. (オプション) デバイスにコンポーネントを実行するデフォルトのシステムユーザーおよびグループを作成します。AWS IoT Greengrass Core ソフトウェアインストーラは、--component-default-user インストーラ引数でこのユーザーとグループを作成させるという選択もあります。詳細については、「インストーラ引数」を参照してください。

    sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
  3. AWS IoT Greengrass Core ソフトウェア (通常は root) を実行するユーザーが、sudo を任意のユーザーと任意のグループに実行する許可があることを確認してください。

    1. /etc/sudoers ファイルを開くには、次のコマンドを実行します。

      sudo visudo
    2. ユーザーの権限が次の例のようになっていることを確認します。

      root ALL=(ALL:ALL) ALL
  4. (オプション) コンテナ化された Lambda 関数を実行するには、cgroups v1 を有効にし、メモリとデバイスの cgroups を有効にしてマウントする必要があります。コンテナ化された Lambda 関数を実行する予定がない場合、この手順を省略できます。

    これらの cgroups オプションを有効にするには、次の Linux カーネルパラメータを使用してデバイスを起動します。

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

    デバイスのカーネルパラメータを確認および設定するための情報については、オペレーティングシステムおよびブートローダーのドキュメントを参照してください。指示に従って、カーネルパラメータを永続的に設定します。

  5. デバイスの要件 にある要件リストで示されているように、その他の必要となる依存関係をすべてデバイスにインストールします。

AWS IoT Greengrass V2 の Windows デバイスをセットアップするには
  1. AWS IoT Greengrass Core ソフトウェアを実行するために必要な Java ランタイムをインストールします。Amazon Corretto または OpenJDK の長期サポートバージョンを使用することをお勧めします。バージョン 8 以降が必要です。

  2. PATH システム変数で Java が使用可能か確認し、そうでない場合は追加します。 LocalSystem アカウントは AWS IoT Greengrass Core ソフトウェアを実行するため、ユーザーの PATH ユーザー変数ではなく、PATH システム変数に Java を追加する必要があります。以下の操作を実行します。

    1. Windows キーを押してスタートメニューを開きます。

    2. environment variables を入力して、スタートメニューからシステムオプションを検索します。

    3. スタートメニューの検索結果から [Edit the system environment variables] (システム環境変数を編集) をクリックして、[System properties] (システムプロパティ) ウィンドウを開きます。

    4. [Environment variables...] (環境変数...) を選択して、[Environment Variables] (環境可変) ウィンドウを開きます。

    5. [System variables] (システム変数) で、[Path] (パス) 、[Edit] (編集) の順に選択します。[Edit environment variable] (環境変数の編集) ウィンドウでは、個別の行に各パスを表示できます。

    6. Java インストールの bin フォルダへのパスが存在しているかを確認します。このパスは、次の例のように表示されます。

      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
    7. [Path] (パス) で Java インストールの bin フォルダが で見つからない場合は、[New] (新規) を選択してこれを追加した上で、[OK] を選択します。

  3. 管理者として Windows コマンドプロンプト cmd.exe を開きます。

  4. Windows デバイスの LocalSystem アカウントにデフォルトユーザーを作成します。パスワードを安全なパスワードに置き換えます。

    net user /add ggc_user password
    ヒント

    Windows の構成によっては、ユーザーのパスワードの期限切れが、将来の日付に設定されている場合があります。Greengrass アプリケーションの動作を継続させるためには、パスワードの有効期限を追跡し、その期限が切れる前に更新します。ユーザーのパスワードには、期限切れを起こさないような設定も可能です。

    • ユーザーとパスワードの有効期限を確認するには、次のコマンドを実行します。

      net user ggc_user | findstr /C:expires
    • ユーザーのパスワードが期限切れにならないように設定するには、次のコマンドを実行します。

      wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
    • wmic コマンドが廃止された Windows 10 以降を使用している場合は、次の PowerShell コマンドを実行します。

      Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
  5. デバイスに Microsoft からPsExecユーティリティをダウンロードしてインストールします。

  6. PsExec ユーティリティを使用して、デフォルトユーザーのユーザー名とパスワードを LocalSystem アカウントの認証情報マネージャーインスタンスに保存します。パスワードを以前に設定したユーザーのパスワードに置き換えます。

    psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password

    PsExec License Agreement が開いたら、Accept を選択し、ライセンスに同意してコマンドを実行します。

    注記

    Windows デバイスでは、 LocalSystem アカウントが Greengrass nucleus を実行するため、 PsExec ユーティリティを使用してデフォルトのユーザー情報を LocalSystem アカウントに格納する必要があります。認証情報マネージャーアプリケーションを使用すると、この情報は アカウントではなく、現在ログオンしているユーザーの Windows LocalSystem アカウントに保存されます。