catch-img

CONEXIOBlackBearでAWS IoT Greengrass V2を使ってみる(1) Greengrass Coreソフトウェアのセットアップ

はじめに

こんにちは。コネクシオIoTブログ 技術記事担当のHです。

以前、CONEXIOBlackBearにおけるAWS IoT Greengrassの活用例として、AWS Lambdaで作成したプログラムやSageMakerで作成した機械学習モデルをCONEXIOBlackBear内にデプロイしたりする記事を掲載しました。

現在、AWS IoT GreengrassはV2に移行し、以前と使い勝手が少し変わったため、今回改めてV2においてセットアップ~プログラム動作確認までの手順を整理したいと思います。

今回は、セットアップを行います。


実施環境

  • CONEXIOBlackBear
    • OSバージョン V1.1.9
    • Python3.7
    • シリアルコンソールを使用
    • ユーザー: root
    • aptリポジトリ設定済み(CONEXIOBlackBear_簡易プログラミングマニュアルを参照)
  • AWS
    • リージョン: us-west-2
    • Administoratorユーザーが使用可能


1. 準備

AWS IoT Greengrass Core ソフトウェアV2をCONEXIOBlackBearにインストールするには、事前に以下が必要ですのでそれぞれの手順を実行します。

  • ユーザーの作成
  • AWS CLIのインストール
  • openjdkのインストール

1.1 ユーザー/グループの作成

CONEXIOBlackBearのシリアルコンソールにて、ユーザーとグループを作成します。

adduser --system ggc_user
addgroup --system ggc_group

1.2 AWS CLIのインストール

https://docs.aws.amazon.com/greengrass/v2/developerguide/getting-started.html

上記リンク内の前提条件より、32ビットARMでは、1系が必要ですので、

https://docs.aws.amazon.com/cli/latest/userguide/install-linux.html

に従い、インストールします。


1.3 jdkのインストール

jdkは、CONEXIOBlackBearのaptリポジトリにあるopenjdk-8を利用します。

apt-get update
apt-get install openjdk-8

次に、jdkの設定を行います。以下のコマンドを実行してください。

apt-get install ca-certificates-java
mv /usr/lib/jvm/openjdk-8/jre/lib/security/cacerts /usr/lib/jvm/openjdk-8/jre/lib/security/cacerts.bak
ln -s /etc/ssl/certs/java/cacerts /usr/lib/jvm/openjdk-8/jre/lib/security/cacerts

この手順を行わないと、後述のAWS IoT Greengrass Coreソフトウェアのインストールにおいて、以下のようなエラーが出て失敗してしまいます。また、AWS IoT Greengrass Coreソフトウェア実行後もエラーが発生し動作しません。

Error while trying to setup Greengrass Nucleus
software.amazon.awssdk.core.exception.SdkClientException: Unable to execute HTTP request: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
:
省略



2. AWS IoT GreengrassCoreソフトウェアのインストール

ここでの手順は、以下のAWSのドキュメントに載っている手順のうち、

自動リソースプロビジョニングを使用してAWSIoT GreengrassCoreソフトウェアをインストールします

という方法に従います。詳細は、以下のURLです。

https://docs.aws.amazon.com/greengrass/v2/developerguide/getting-started.html


2.1 ダウンロード

以下のコマンドを実行し、ダウンロード&解凍します。

curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
mkdir -p ./GreengrassInstaller
unzip greengrass-nucleus-latest.zip -d GreengrassInstaller


2.2 クレデンシャルの設定

次に、CONEXIOBlackBearを離れてAWSコンソールで、

  • IAMポリシーを作成
  • IAMユーザーを作成し、作成したポリシーを割り当て、クレデンシャル情報をダウンロードする

の2手順を行います。IAMポリシーは、

https://docs.aws.amazon.com/greengrass/v2/developerguide/provision-minimal-iam-policy.html

に従います。

IAMポリシー、IAMユーザーが作成出来たら、CONEXIOBlackBearのシリアルコンソールに戻って、IAMユーザーの​​​​アクセスキーIDとシークレットアクセスキーを以下のように設定します。

export AWS_ACCESS_KEY_ID=*****************
export AWS_SECRET_ACCESS_KEY=*****************


2.3 インストール

以下のコマンドで、インストールを行います。引数は、基本的に

https://docs.aws.amazon.com/greengrass/v2/developerguide/quick-installation.html

に従っておりますが、1.3 jdkの設定に関連して、

  • -Djavax.net.ssl.trustStore=/usr/lib/jvm/openjdk-8/jre/lib/security/cacerts
  • -Djavax.net.ssl.trustStorePassword=changeit

の2つを追加する必要があります。

sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE -Djavax.net.ssl.trustStore=/usr/lib/jvm/openjdk-8/jre/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit -jar ./GreengrassInstaller/lib/Greengrass.jar   --aws-region us-west-2   --thing-name MyGreengrassCore   --thing-group-name MyGreengrassCoreGroup   --thing-policy-name GreengrassV2IoTThingPolicy   --tes-role-name GreengrassV2TokenExchangeRole   --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias   --component-default-user ggc_user:ggc_group   --provision true   --setup-system-service true   --deploy-dev-tools true

以下のような表示が出れば、完了です。

:
Successfully set up Nucleus as a system service


3. 起動確認

最後に、Greengrass Core ソフトウェアが起動しているか確認しておきます。

root@imx6qsabresd:~# systemctl status greengrass.service
● greengrass.service - Greengrass Core
   Loaded: loaded (/etc/systemd/system/greengrass.service; enabled; vendor prese
   Active: active (running) since Wed 2021-10-13 12:09:40 UTC; 29min ago
 Main PID: 24713 (sh)
    Tasks: 32 (limit: 4915)
   CGroup: /system.slice/greengrass.service
           tq24713 /bin/sh /greengrass/v2/alts/current/distro/bin/loader
           mq24720 java -Dlog.store=FILE -Dlog.store=FILE -Droot=/greengrass/v2

Oct 13 12:09:40 imx6qsabresd sh[24713]: JVM options: -Dlog.store=FILE -Droot=/gr
Oct 13 12:09:40 imx6qsabresd sh[24713]: Nucleus options: --setup-system-service
Oct 13 12:09:47 imx6qsabresd sh[24713]: SLF4J: Failed to load class "org.slf4j.i
Oct 13 12:09:47 imx6qsabresd sh[24713]: SLF4J: Defaulting to no-operation MDCAda
Oct 13 12:09:47 imx6qsabresd sh[24713]: SLF4J: See http://www.slf4j.org/codes.ht
Oct 13 12:09:51 imx6qsabresd sh[24713]: Launching Nucleus...
Oct 13 12:09:52 imx6qsabresd sh[24713]: AWS libcrypto resolve: searching process
Oct 13 12:09:52 imx6qsabresd sh[24713]: AWS libcrypto resolve: found static aws-
Oct 13 12:09:52 imx6qsabresd sh[24713]: AWS libcrypto resolve: found static aws-
Oct 13 12:10:12 imx6qsabresd sh[24713]: Launched Nucleus successfully.

また、AWS IoTコンソール上でも、インストールの過程で作成されたコアデバイスを確認することができます。


まとめ

以上のように、AWS IoT Greengrass Core ソフトウェア V2をCONEXIOBlackBearにインストールできました。次回は、簡単なサンプルプログラムを動作させてみたいと思います。


本記事は担当書き手の個人的感想を述べるもので、コネクシオ株式会社を代表する意思表示をするものでは有りません。

5分で理解できる!
Smart Ready IoTソリューションセット
ご質問やご要望はこちらから
お気軽にお問い合わせください

設備保全とは? 種類やIoT導入による効果について解説

2021-11-29

設備保全とは、工場の定期点検・監視をはじめ、定期整備、故障の修理などを行う業務を指します。工場内の設備・機械を円滑に稼働させ、トラブルを防ぐために必要不可欠な取り組みの一つです。この記事では、設備保全の種類や重要性、IoT導入の効果について解説します。

生産現場の見える化とは? 目的や実施のステップを解説

2021-11-29

生産現場の問題として、「業務が熟練工に属人化している」「生産効率が上がらない」「設備の故障で生産が停止してしまう」などが挙げられます。業務の標準化や生産効率の向上、稼働の安定化を実現するためには現場の“見える化”が必要です。本記事では、生産現場における見える化の目的や実施のステップについて解説します。

【実録】IoTの活用事例と導入した効果

2021-11-29

近年、さまざまなモノがインターネットとつながるIoTの活用が広がっています。しかし、IoTでどのようなことを実現できるのか、仕組みや活用シーンなどが分からないという方もいらっしゃるのではないでしょうか。この記事ではIoTでできることをはじめ、業界別の導入事例を紹介します。

CONEXIOBlackBearでAWS IoT Greengrass V2を使ってみる(2) Lambda関数コンポーネントの作成、デプロイ、動作確認

2021-11-05

前回、AWS IoT Greengrass Coreソフトウェア V2のセットアップができました。今回は、プログラムをLambda関数コンポーネントとして作成、デバイスへデプロイし、動作確認までの手順を整理したいと思います。

CONEXIOBlackBearでAWS IoT Greengrass V2を使ってみる(1) Greengrass Coreソフトウェアのセットアップ

2021-11-05

現在、AWS IoT GreengrassはV2に移行し、以前と使い勝手が少し変わったため、今回改めてV2においてセットアップ~プログラム動作確認までの手順を整理したいと思います。今回は、セットアップを行います。