コアデバイスへのインストールと AWS IoT Greengrass を実行 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 は機能更新を受信しなくなり、2023 年 6 月 30 日までセキュリティパッチとバグ修正のみ受信します。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。重要な新機能新たなプラットフォームのサポートが追加された AWS IoT Greengrass Version 2 への移行を強くお勧めします。

コアデバイスへのインストールと AWS IoT Greengrass を実行

注記

このチュートリアルでは、Raspberry Pi で AWS IoT Greengrass Core ソフトウェアを実行する方法について説明しますが、サポートされている任意のデバイスを使用できます。

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

AWS IoT Greengrassをインストールして実行するには

  1. このガイドの AWS IoT Greengrass Core ソフトウェア セクションから、 AWS IoT Greengrass Core ソフトウェアインストールパッケージをダウンロードします。コアデバイスの CPU アーキテクチャ、ディストリビューション、OS に最適なパッケージを選択します。

    • Raspberry Pi で、ARMv7L アーキテクチャと Linux オペレーティングシステムに対応したパッケージをダウンロードします。

    • Amazon EC2 インスタンスの場合は、x86_64 アーキテクチャおよび Linux オペレーティングシステムに対応したパッケージをダウンロードします。

    • NVIDIA Jetson TX2 の場合は、Armv8 (AArch64) アーキテクチャおよび Linux オペレーティングシステムに対応したパッケージをダウンロードします。

    • Intel Atom の場合は、x86_64 アーキテクチャおよび Linux オペレーティングシステムに対応したパッケージをダウンロードします。

  2. 前のステップでは、コンピュータに 5 つのファイルをダウンロードしました。

    • greengrass-OS-architecture-1.11.6.tar.gz - この圧縮ファイルには、コアデバイスで実行される AWS IoT Greengrass Core ソフトウェアが含まれています。

    • certificateId-certificate.pem.crt - デバイス証明書ファイル。

    • certificateId-public.pem.key - デバイス証明書のパブリックキーファイル。

    • certificateId-private.pem.key - デバイス証明書のプライベートキーファイル。

    • AmazonRootCA1.pem - Amazon ルート認証機関 (CA) ファイル。

    このステップでは、これらのファイルをコンピュータからコアデバイスに転送します。次を実行してください。

    1. Greengrass コアデバイスの IP アドレスがわからない場合は、コアデバイスでターミナルを開き、次のコマンドを実行します。

      注記

      このコマンドは、一部のデバイスでは正しい IP アドレスを返さない可能性があります。デバイスの IP アドレスを取得する方法については、デバイスのドキュメントを参照してください。

      hostname -I
    2. これらのファイルをコンピュータからコアデバイスに転送します。ファイル転送手順はお使いのコンピュータのオペレーティングシステムによって異なります。ファイルを Raspberry Pi デバイスに転送する方法を示すステップについて、オペレーティングシステムを選択します。

      注記

      Raspberry Pi では、デフォルトのユーザー名は pi、デフォルトのパスワードは raspberry です。

      NVIDIA Jetson TX2 では、デフォルトのユーザー名は nvidia、デフォルトのパスワードは nvidia です。

      Windows

      圧縮ファイルをコンピュータから Raspberry Pi コアデバイスに転送するには、WinSCP などのツールまたは PuTTYpscp コマンドを使用してください。pscp コマンドを使用するには、コンピュータでコマンドプロンプトウィンドウを開き、次のコマンドを実行します。

      cd path-to-downloaded-files pscp -pw Pi-password greengrass-OS-architecture-1.11.6.tar.gz pi@IP-address:/home/pi pscp -pw Pi-password certificateId-certificate.pem.crt pi@IP-address:/home/pi pscp -pw Pi-password certificateId-public.pem.key pi@IP-address:/home/pi pscp -pw Pi-password certificateId-private.pem.key pi@IP-address:/home/pi pscp -pw Pi-password AmazonRootCA1.pem pi@IP-address:/home/pi
      注記

      このコマンドのバージョン番号は、AWS IoT Greengrass Core ソフトウェアパッケージのバージョンと一致する必要があります。

      macOS

      圧縮ファイルを Mac から Raspberry Pi コアデバイスに転送するには、コンピュータでターミナルウィンドウを開き、以下のコマンドを実行します。path-to-downloaded-files は、通常 ~/Downloads です。

      注記

      2 つのパスワードの入力を要求される場合があります。その場合、最初のパスワードは Mac の sudo コマンド用で、2 番目は Raspberry Pi のパスワードです。

      cd path-to-downloaded-files scp greengrass-OS-architecture-1.11.6.tar.gz pi@IP-address:/home/pi scp certificateId-certificate.pem.crt pi@IP-address:/home/pi scp certificateId-public.pem.key pi@IP-address:/home/pi scp certificateId-private.pem.key pi@IP-address:/home/pi scp AmazonRootCA1.pem pi@IP-address:/home/pi
      注記

      このコマンドのバージョン番号は、AWS IoT Greengrass Core ソフトウェアパッケージのバージョンと一致する必要があります。

      UNIX-like system

      コンピュータから Raspberry Pi コアデバイスに圧縮ファイルを転送するには、コンピュータでターミナルウィンドウを開き、以下のコマンドを実行します。

      cd path-to-downloaded-files scp greengrass-OS-architecture-1.11.6.tar.gz pi@IP-address:/home/pi scp certificateId-certificate.pem.crt pi@IP-address:/home/pi scp certificateId-public.pem.key pi@IP-address:/home/pi scp certificateId-private.pem.key pi@IP-address:/home/pi scp AmazonRootCA1.pem pi@IP-address:/home/pi
      注記

      このコマンドのバージョン番号は、AWS IoT Greengrass Core ソフトウェアパッケージのバージョンと一致する必要があります。

      Raspberry Pi web browser

      Raspberry Pi のウェブブラウザを使用して圧縮ファイルをダウンロードした場合は、ファイルは /home/pi/Downloadsなどの Pi の ~/Downloads フォルダにある必要があります。それ以外の場合は、圧縮ファイルは /home/piなどの Pi の ~ フォルダ にある必要があります。

  3. Greengrass コアデバイスでターミナルを開き、AWS IoT Greengrass Core ソフトウェアと証明書が格納されているフォルダに移動します。path-to-transferred-files は、コアデバイスでファイルを転送したパスに置き換えます。例えば、Raspberry Pi で、cd /home/pi を実行します。

    cd path-to-transferred-files
  4. コアデバイス上の AWS IoT Greengrass Core ソフトウェアを解凍します。コアデバイスに転送したソフトウェアアーカイブを解凍するには、次のコマンドを実行します。このコマンドは -C / 引数を使用して、コアデバイスのルートフォルダに /greengrass フォルダを作成します。

    sudo tar -xzvf greengrass-OS-architecture-1.11.6.tar.gz -C /
    注記

    このコマンドのバージョン番号は、AWS IoT Greengrass Core ソフトウェアパッケージのバージョンと一致する必要があります。

  5. 証明書とキーを AWS IoT Greengrass Core ソフトウェアのフォルダに移動します。次のコマンドを実行して証明書用のフォルダを作成し、証明書とキーをそのフォルダに移動させます。path-to-transferred-files をコアデバイス上でファイルを転送したパスに置き換え、certificateId をファイル名に含まれる証明書 ID に置き換えます。例えば、Raspberry Pi では、 path-to-transferred-files/home/pi に置き換えます。

    sudo mv path-to-transferred-files/certificateId-certificate.pem.crt /greengrass/certs sudo mv path-to-transferred-files/certificateId-public.pem.key /greengrass/certs sudo mv path-to-transferred-files/certificateId-private.pem.key /greengrass/certs sudo mv path-to-transferred-files/AmazonRootCA1.pem /greengrass/certs
  6. AWS IoT Greengrass Core ソフトウェアは、ソフトウェアのパラメータを指定する設定ファイルを使用します。この設定ファイルは、証明書ファイルのファイルパスと、使用する AWS クラウド エンドポイントを指定します。このステップでは、コア用の AWS IoT Greengrass Core ソフトウェア設定ファイルを作成します。次を実行してください。

    1. コアの AWS IoT のモノの Amazon リソースネーム (ARN) を取得します。次を実行してください。

      1. AWS IoT コンソールで、[Manage] (管理) の [Greengrass devices](Greengrass デバイス) で、[Groups (V1)] (グループ (V1)) を選択します。

      2. [Greengrass groups] (Greengrassグループ) ページで、以前に作成した [Ggroup] (グループ) を選択します。

      3. [Overview](概要) で、 [Greengrass core] (Greengrass コア) を選択します。

      4. コアの詳細ページで、 [AWS IoT thing ARN] (AWS IoT のモノの ARN) をコピーし、AWS IoT Greengrass Core 設定ファイルで使用するために保存します。

    2. 現在のリージョンにあるお客様の AWS アカウント で、AWS IoT デバイスデータエンドポイントを取得します。デバイスはこのエンドポイントを使用して、AWS IoT のモノとして AWS に接続します。次を実行してください。

      1. AWS IoT コンソールで、[Settings] (設定) を選択します。

      2. [Device data endpoint](デバイス データ エンドポイント) で、 [Endpoint](エンドポイント)をコピーし、 AWS IoT Greengrass Core 設定ファイルで使用するために保存します。

    3. AWS IoT Greengrass Core ソフトウェアの設定ファイルを作成します。例えば、次のコマンドを実行し、GNU nano を使用してファイルを作成することができます。

      sudo nano /greengrass/config/config.json

      ファイルの内容を次の JSON ドキュメントに置き換えます。

      { "coreThing" : { "caPath": "AmazonRootCA1.pem", "certPath": "certificateId-certificate.pem.crt", "keyPath": "certificateId-private.pem.key", "thingArn": "arn:aws:iot:region:account-id:thing/MyGreengrassV1Core", "iotHost": "device-data-prefix-ats.iot.region.amazonaws.com", "ggHost": "greengrass-ats.iot.region.amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "yes" } }, "managedRespawn": false, "crypto": { "caPath": "file:///greengrass/certs/AmazonRootCA1.pem", "principals": { "SecretsManager": { "privateKeyPath": "file:///greengrass/certs/certificateId-private.pem.key" }, "IoTCertificate": { "privateKeyPath": "file:///greengrass/certs/certificateId-private.pem.key", "certificatePath": "file:///greengrass/certs/certificateId-certificate.pem.crt" } } } }

      次に、以下の操作を実行します。

      • Amazon ルート CA 1 とは異なる Amazon ルート CA 証明書をダウンロードした場合は、AmazonRootCA1.pem の各インスタンスを Amazon ルート CA ファイルの名前に置き換えます。

      • certificateId の各インスタンスを証明書とキーファイルの名前に含まれる証明書 ID に置き換えます。

      • arn:aws:iot:region:account-id:thing/MyGreengrassV1Coreを、以前に保存したコアのモノの ARN に置き換えます。

      • MyGreengrassV1core をコアのモノの名前に置き換えます。

      • device-data-prefix-ats.iot.region.amazonaws.com を、以前に保存した AWS IoT デバイス データ エンドポイントに置き換えます。

      • [region] (リージョン) をお客様の AWS リージョンに置き換えてください。

      設定ファイルで指定できる設定オプションの詳細については、「AWS IoT Greengrass Core 設定ファイル」を参照してください。

  7. コアデバイスがインターネットに接続されていることを確認します 次に、コアデバイスで AWS IoT Greengrass を起動します。

    cd /greengrass/ggc/core/ sudo ./greengrassd start

    Greengrass successfully started」メッセージが表示されます。PID を書き留めておきます。

    注記

    システム起動時に AWS IoT Greengrass を開始するためにコアデバイスを設定するには、「Init システムを設定して Greengrass デーモンを開始する」を参照してください。

    次のコマンドを実行して AWS IoT Greengrass Core ソフトウェア (Greengrass デーモン) が機能していることを確認できます。PID-number は、PID に置き換えます。

    ps aux | grep PID-number

    実行中の Greengrass デーモンへのパスを持つ PID のエントリが表示されます (例: /greengrass/ggc/packages/1.11.6/bin/daemon)。AWS IoT Greengrass の起動で問題が発生した場合は、「AWS IoT Greengrass のトラブルシューティング」を参照してください。