CONEXIOBlackBearでAWS IoT Greengrassを使ってみる
目次[非表示]
はじめに
こんにちは。コネクシオIoTブログ 技術記事担当のHです。
さて、今回はCONEXIOBlackBearとAmazon Web Service(以下、AWS)との連携について取り上げます。
CONEXIOBlackBear は、IoT Greengrass用AWSデバイス認定を取得しており、AWSサービスで機能するデバイスとして、すぐに利用できます。AWS IoT Greengrassを活用すると、例えば、AWS上で作成した学習モデルをCONEXIOBlackBear内にデプロイし、エッジAIで即座に処理するといったことが、セキュアかつ容易にできます。これにより、製造現場におけるモーター故障予兆検知や画像AIによる不良個体識別といった、現場でのエッジAI活用が期待できます。
そこで、今回はサンプルプログラムをAWS IoT Greengrassを使ってCONEXIOBlackBearへデプロイし動作させる手順を紹介したいと思います。CONEXIOBlackBearは認定デバイスなので、AWS公式のドキュメントに沿った手順が多いのですが、一部CONEXIOBlackBear上での作業が必要になるため、その作業内容を本記事で具体的に示すことで、よりイメージが沸くのではと思います。
なお、こちらの資料ダウンロードページから入手できる簡易プログラミングマニュアルには、CONEXIOBlackBearへのAWS IoT Greengrass Coreソフトウェアをインストールする手順が掲載されていますが、この記事ではもう少し詳しい内容となっています。
詳細
0. 実施環境
- CONEXIOBlackBear OSバージョン1.1.5
- AWS IoT Greengrass Coreソフトウェア バージョン 1.9.2
- AWS Lambdaプログラムのランタイム Python 2.7
1. CONEXIOBlackBearへのAWS IoT Greengrass Coreソフトウェアのインストール
AWS IoT Greengrassを CONEXIOBlackBear で利用するには、「AWS IoT Greengrass Coreソフトウェア」を CONEXIOBlackBear にインストールすることが必要です。
1.1 CONEXIOBlackBearの準備
まず、こちらを参考にCONEXIOBlackBear上で、以下のようにユーザーとグループを作成します。
1.2 Greengrassグループ・コアの作成と、セキュリティリソース・設定ファイルをダウンロード
次は、PC上で作業を行います。
以下のリンクを参考に、AWS IoT Greengrassコンソールにて、Greengrassグループ、コアの作成およびコアのセキュリティリソースと設定ファイルをダウンロードしていきます。
https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/gg-config.html
手順10まで進めます。手順9で、作業しているPC上にセキュリティリソースと設定ファイル一式0123456789-setup.tar.gzというファイルのダウンロードを忘れないでください。 (0123456789は、実際はランダムな文字列)
1.3 AWS IoT Greengrass Core ソフトウェアをダウンロード、インストール
CONEXIOBlackBearに戻って、以下のコマンドにてソフトウェア一式を配置します。
1.4 Greengrass Coreのセキュリティリソースと設定ファイルを配置
さらに、AWS IoT Greengrassコンソールでダウンロードした0123456789-setup.tar.gzをCONEXIOBlackBear上にコピーします。
そして、コピー先にて、
として展開します。また、以下のようにrootCA証明書をダウンロードします。
ここまでで、AWS IoT Greengrass Coreソフトウェアのインストールが完了しました。
1.5 AWS IoT Greengrass Coreソフトウェア デーモンの起動
以下で、デーモンが起動できます。このデーモンが起動している状態であれば、AWS IoT Greengrass コンソールから、エッジソフトウェアをデプロイできます。
以下のように、出力されれば、デーモンの起動が完了です。
ということで、次はデプロイを行っていきます。
2. サンプルのプログラムをCONEXIOBlackBearにデプロイして動作を確認する
ここでは、AWS IoT Greengrass Core SDKに同梱のサンプルプログラムを、AWS IoT GreengrassからCONEXIOBlackBearへデプロイし、動作させてみます。以下を参考に進めます。
https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/module3-I.html
2.1 AWS IoT Greengrass Core SDKのダウンロードとサンプルLambdaプログラムの作成
以下の2つのリンクにある手順に従って、AWS IoT Greengrass Core SDK同梱のサンプルプログラムをAWS Lambda上に作成し、AWS IoT Greengrass Coreに追加します。少し手順が多いですが、順番通り進めます。注意が必要なのは、手順15で、ストリームマネージャーを無効化するのを忘れないことです。有効化されていると、今回使用しているAWS IoT Coreソフトウェア v1.9.2ではデプロイに失敗します。
https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/create-lambda.html
https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/config-lambda.html
今回はPython用のサンプルを使用するため、
https://github.com/aws/aws-greengrass-core-sdk-python/
からバージョン1.2.0をPC上にダウンロード、展開し、Greengrass_HelloWorldというlambda関数をAWS上に作成しました。
2.2 CONEXIOBlackBearへLambdaプログラムをデプロイ
そして、こちらに従って、CONEXIOBlackBearへデプロイします。
デプロイされた様子が以下です。成功しました。
3. デプロイされたプログラムの動作確認
正しくデプロイされると、CONEXIOBlackBearからAWS IoT CoreへMQTTメッセージがパブリッシュされているはずなので、確認してみます。参考
AWS IoTコンソールのテストページで"hello/world"トピックをサブスクライブすると、以下のように表示されました。5秒ごとに飛んできます。
まとめ
以上のように、AWS IoT GreengrassをCONEXIOBlackBearで利用する実際の手順をご紹介しました。今回は簡単なサンプルプログラムを動作させましたが、CONEXIOBlackBearがAWS IoT Greengrassとの連携で威力を発揮するのは、エッジAIを扱うときだと思いますので、今後、エッジAIをデプロイして動かす記事についても取り上げていきたいと思います。