目次

AWS IoT Greengrass V2 対応


AWS IoT Greengrass


AWS IoT Greengrass V2 のインストーラを使用して、Greengrass V2 のセットアップを行います。
詳細は AWS IoT Greengrass コアデバイスをセットアップする - docs.aws.amazon.com などを参照してください。

準備

AWS IoT Greengrass コアデバイスをセットアップするためには下記が必要です。


JDK(JRE) をインストールしたファームウェアの作成

AWS IoT Greengrass Core ソフトウェアを入れたファームウェアを作成するとデバイス毎の設定ができなくなることとファームウェアのサイズが大きくなりすぎるため、
ここではソフトウェア開発 (MA-X3xx シリーズ)の基本編(ファームウェア作成)を参考に JDK(JRE) を追加したファームウェアを作成します。

※ JDK(JRE) をインストールしたファームウェアの作成については、JVM の追加 を参照してください。


ファームウェアの更新

作成したファームウェアをデバイスに適用します。


eMMC 後半領域の利用

AWS IoT Greengrass Core ソフトウェアは、eMMC の後半領域に入れます。
eMMC の後半領域を利用する手順については、eMMC 後半領域の利用 (MA-S1xx/MA-X3xx 共通) を参照してください。


AWS IoT Greengrass のセットアップ

AWS IoT のコンソール へ移動

AWS IoT のコンソール に移動します。


Core デバイスのセットアップ

左メニューから Greeengrass デバイス を選択し、 1つの Core デバイスをセットアップ をクリックします。


コアデバイスとモノのグループの命名

コアデバイスとモノのグループに名前をつけます。


AWS 認証情報の設定

AWS 認証情報をデバイスのターミナルにコピーしてデバイスへ貼り付けます。


デバイスで AWS 認証情報を設定します。

root@gemini:~# export AWS_ACCESS_KEY_ID=アクセスキー
root@gemini:~# export AWS_SECRET_ACCESS_KEY=シークレットアクセスキー
root@gemini:~# export AWS_SESSION_TOKEN=セッション トークンキー
root@gemini:~#


インストーラのダウンロード と インストールの実行

Web ページからそれぞれのコマンドをコピーし、ターミナルに貼り付けて実行します。


インストーラのダウンロード

root@gemini:/opt/data# curl -s https://XXXXXXXXXX.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip && unzip greengrass-nucleus-latest.zip -d GreengrassInstaller
Archive:  greengrass-nucleus-latest.zip
  inflating: GreengrassInstaller/META-INF/MANIFEST.MF
  inflating: GreengrassInstaller/META-INF/SIGNER.SF
  inflating: GreengrassInstaller/META-INF/SIGNER.RSA
  inflating: GreengrassInstaller/LICENSE
  inflating: GreengrassInstaller/NOTICE
  inflating: GreengrassInstaller/README.md
  inflating: GreengrassInstaller/THIRD-PARTY-LICENSES
  inflating: GreengrassInstaller/bin/greengrass.exe
  inflating: GreengrassInstaller/bin/greengrass.service.procd.template
  inflating: GreengrassInstaller/bin/greengrass.service.template
  inflating: GreengrassInstaller/bin/greengrass.xml.template
  inflating: GreengrassInstaller/bin/loader
  inflating: GreengrassInstaller/bin/loader.cmd
  inflating: GreengrassInstaller/conf/recipe.yaml
  inflating: GreengrassInstaller/lib/Greengrass.jar
root@gemini:/opt/data#


インストールの実行

root@gemini:/opt/data# sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE -jar ./GreengrassInstaller/lib/Greengrass.jar --aws-region ap-northeast-1 --thing-name GG-device1 --thing-group-name GG-Group --component-default-user ggc_user:ggc_group --provision true --setup-system-service true --deploy-dev-tools true
Provisioning AWS IoT resources for the device with IoT Thing Name: [GG-device1]...
Found IoT policy "GreengrassV2IoTThingPolicy", reusing it
Creating keys and certificate...
Attaching policy to certificate...
Creating IoT Thing "GG-device1"...
Attaching certificate to IoT thing...
Successfully provisioned AWS IoT resources for the device with IoT Thing Name: [GG-device1]!
Adding IoT Thing [GG-device1] into Thing Group: [GG-Group]...
Successfully added Thing into Thing Group: [GG-Group]
Setting up resources for aws.greengrass.TokenExchangeService ...
Attaching TES role policy to IoT thing...
No managed IAM policy found, looking for user defined policy...
IAM policy named "GreengrassV2TokenExchangeRoleAccess" already exists. Please attach it to the IAM role if not already
Configuring Nucleus with provisioned resource details...
Downloading Root CA from "https://www.amazontrust.com/repository/AmazonRootCA1.pem"
Created device configuration
Successfully configured Nucleus with provisioned resource details!
Creating a deployment for Greengrass first party components to the thing group
Configured Nucleus to deploy aws.greengrass.Cli component
Creating user ggc_user
ggc_user created
Creating group ggc_group
ggc_group created
Added ggc_user to ggc_group
Successfully set up Nucleus as a system service
root@gemini:/opt/data#


コアデバイスの状態の確認

コアデバイスを表示 をクリックします。


追加したコアデバイスが正常になっていることを確認します。


AWS IoT Greengrass のステータス確認

Greengrass CLI コマンドを実行し、バージョンが表示されることを確認します。

root@gemini:/opt/data# /greengrass/v2/bin/greengrass-cli -V
Greengrass CLI Version: 2.10.0
root@gemini:/opt/data#


サービスの状態を確認するには以下のコマンドを実行します。

root@gemini:/opt/data# systemctl status greengrass.service
● greengrass.service - Greengrass Core
     Loaded: loaded (/etc/systemd/system/greengrass.service; enabled; vendor pr>
     Active: active (running) since Wed 2023-05-10 12:17:48 JST; 1h 8min ago
   Main PID: 906 (sh)
      Tasks: 35 (limit: 1186)
     Memory: 165.8M
     CGroup: /system.slice/greengrass.service
             tq906 /bin/sh /greengrass/v2/alts/current/distro/bin/loader
             mq914 java -Dlog.store=FILE -Dlog.store=FILE -Droot=/greengrass/v2>

May 10 12:17:48 gemini systemd[1]: Started Greengrass Core.
May 10 12:17:48 gemini sh[906]: Greengrass root: /greengrass/v2
May 10 12:17:49 gemini sh[906]: Java executable: java
May 10 12:17:49 gemini sh[906]: JVM options: -Dlog.store=FILE -Droot=/greengras>
May 10 12:17:49 gemini sh[906]: Nucleus options: --setup-system-service false
May 10 12:18:35 gemini sh[914]: Launching Nucleus...
May 10 12:18:52 gemini sh[914]: Launched Nucleus successfully.


Documents

Getting Started Guide for AWS IoT Greengrass

File Status Note
getting_started_guide_template_for_aws_iot_greengrass_devices_ma-s1xx.docx2023/07/05 14:23 41.1 KBfor MA-S1xx Series
getting_started_guide_template_for_aws_iot_greengrass_devices_ma-x3xx.docx2023/07/05 14:25 41.1 KBfor MA-X3xx Series