はじめに
今回は、Ubuntu搭載デバイスに2020年12月にリリースされたGreengrassの新しいバージョンであるGreengrassV2をインストールする手順を紹介します。
Greengrass V2ではエッジランタイムのオープンソース化や、使用する機能のみをデプロイに含められることによるソフトウェアコンポーネントのモジュール性の向上、エッジデバイスでアプリケーションをローカルに開発して他のデバイスに展開する機能の追加等の変更が行われています。
※旧バージョンGreengrass V1のインストールについてはこちらの記事をご覧ください。
環境
動作確認済デバイス(OS)
-
e-RT3 Plus F3RP70-2L1(Ubuntu 18.04 32bit)
横河電機のエッジコントローラです。 -
Raspberry Pi 4 Model B (Ubuntu Server 20.04 32bit)
これらのデバイスでは armhf アーキテクチャのパッケージが動作します。
エッジデバイスの準備
パッケージのインストール
エッジデバイスに必要なパッケージをインストールします。
sudo apt update
sudo apt install unzip default-jdk
Note
エッジデバイスがproxy環境下にある場合はproxy設定が必要です。
AWS認証情報の設定
エッジデバイスの環境変数にAWSの認証情報を設定します。
詳しくは以下のページをご覧ください。
https://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/quick-installation.html#provide-installer-aws-credentials
コアデバイスの登録とコアソフトウェアのインストール
クラウド上にコアデバイスを登録し、エッジデバイスにコアソフトウェアをインストールします。
-
エッジデバイスにコアソフトウェアをダウンロードしてインストールします。
①、②のコマンドを順にエッジデバイスで実行してコアソフトウェアをダウンロード、インストールします。
インストールが完了したら「コアデバイスを表示」をクリックします。
Note
エッジデバイスがproxy環境下にある場合は、proxy環境下でのコアソフトウェアのインストールをご覧ください。
補足
proxy環境下でのコアソフトウェアのインストール
proxy環境下にあるエッジデバイスにコアソフトウェアをインストールする場合は以下の設定が必要です。
環境により設定項目は異なりますが、参考までに今回私が行った設定を紹介します。
-
コアソフトウェアの設定ファイル
config.yaml
を作成し、proxy設定を行います。config.yamlservices: aws.greengrass.Nucleus: configuration: mqtt: port: 443 greengrassDataPlanePort: 443 networkProxy: proxy: url: "http://username:password@xxx.com:port/"
-
コアデバイスの登録とコアソフトウェアのインストールの手順4の②のコマンドから
--deploy-dev-tools true
を削除し、--init-config (path/to/config.yaml)
を追加します。コマンドは以下のようになります。
コマンド例sudo -E java \ -Droot="/greengrass/v2" -Dlog.store=FILE -jar ./GreengrassCore/lib/Greengrass.jar --aws-region ap-northeast-1 \ --thing-name SampleCore --thing-group-name SampleCoreGroup --component-default-user ggc_user:ggc_group \ --provision true --setup-system-service true --init-config (path/to/config.yaml) #追加
Note
proxy環境下だとデプロイに失敗するため--deploy-dev-tools true
オプションを削除しています。手動でデプロイする場合はaws.greengrass.Cliコンポーネントのデプロイをご覧ください。
aws.greengrass.Cliコンポーネントのデプロイ
aws.greengrass.Cliはエッジデバイスでアプリケーションをローカルに開発、デバッグできるコマンドラインインターフェース(CLI)です2。
コアソフトウェアのインストール時に--deploy-dev-tools true
オプションをつけなかった場合、aws.greengrass.Cliコンポーネントがコアデバイスにデプロイされません。
必要に応じて以下の手順に従って手動でデプロイします。
-
デプロイターゲットを指定します。デプロイ情報にデプロイ名、デプロイターゲットのターゲットタイプに「コアデバイス」ターゲット名にコアデバイス名を指定して「次へ」をクリックします。
-
デプロイするコンポーネントを指定します。パブリックコンポーネントのaws.greengrass.Cliにチェックが入っていることを確認し、「次へ」をクリックします。
-
コンポーネントの設定と詳細設定はデフォルトのまま「次へ」をクリックします。レビュー画面で設定を確認し、問題なければ「デプロイ」をクリックします。
-
デプロイの成功を確認します。エッジデバイスでコマンドを実行し、以下のように出力されたら成功です。
username@ubuntu:~$ /greengrass/v2/bin/greengrass-cli --version Greengrass CLI Version: 2.1.0