)に関する取組みをご紹介します。Windowsこんにちは、ブレインズテクノロジーの岩城です。IoTをDockerコンテナ上で起動できるようになったことが発表されました。aws.amazon.comこの機能を生かしたデータ活用手法について、先日公開した「Dockerコンテナ上で起動したGreengrassとWindowsとの連携で広がる新たなデータ活用の選択肢」という記事でご紹介しました。Windows上で使用するための準備の手順と、チュートリアルを拡張して実施したGreengrassからWindows上のファイル読み込みトライアルをご紹介します。技術ではなく応用例に関心がある場合は、下記の記事をご参照ください。MELIPC1002-Wを使用します。MELIPCは生産設備などから集めたデータを集約・加工する機能と、集めてきたデータを活用するためのインターフェースを備えた産業用途のPCです。MELIPCについての詳細は前回の記事やこちらの製品ページなどご参照ください。Windowsをインストールし、このDocker環境でGreengrassを動作させます。使用したWindowsのスペックについては下記の画像をご覧ください。Windows上でGreengrassを実行し、ローカル環境にあるcsvファイルを読み込ませてクラウドに送信させるというものです。基本的な流れはAWSが提供している下記のリンクのチュートリアル通りですが、先々の応用を考え、一部変更を加えています。docs.aws.amazon.com大きな変更点は、下記の3点です。Worldの代わりに、ローカル環境にあるcsvファイルを読みとるLambda関数を用意する。ローカル環境にcsvファイルを準備しておく。Dockerコンテナを起動する際に、マウントするホストの情報をコマンドに追加しておく。今回は出荷状態のMELIPCを使用したので、Dockerのインストールやコマンドのインストールなども一から実施しています。ユーザーを作成する部分などはさすがに割愛しますが、Greengrassを動かす前の事前準備から一通り行った作業を記載していきます。Dockerコンテナ上でGreengrassを使用するための下準備まずは、Dockerコンテナ上でGreengrassを使用できるように環境を整えていきます。今回の一連のトライアル実施のため、まずはチュートリアルの指示通り、下記のソフトウェアをインストールしました(括弧内はバージョン)。(1.16)その他、さらに前提として、AWSのアカウントを所有している必要があるので、持っていない場合は事前に作成しておきましょう。DockerのインストールまずはDockerをインストールします。(CE)をダウンロードします。10)のリンクに飛びます。Installer.exeをダウンロードし、実行した後は、ウィザードに従ってインストールを進めていきます。Windowsを選択する箇所があります。Windowsを選択します。Windowsを使用する場合はVirtualBoxが起動できなくなるので注意してください(後述)。この際、有効化が必要等のメッセージが出た場合は、メッセージを読み、問題なさそうであればOKを押して進めていきます。Desktop”というメッセージが出ました。DesktopのsettingsからMemoryの値を下げることで解決できました。(参考)https://qiita.com/chakimar/items/868298096ebf9186d690最終的な設定はこちらの画像のようになります。再起動などをした時などにDockerがどのような状態になっているかは、右下のステータスバーから確認できます。ここの白い鯨のアイコンが上記の画像の状態で停止していれば起動している状態です。一つ前に記載した設定画面は、このアイコンを右クリックしてsettingsを選んだ画面から開きます。versionなどのコマンドを実行すると正しくdockerがインストールできているかの確認ができます。Windowsインストールの際は下記の点に注意が必要です。Hyper-Vを使用します。そのため、Hyper-Vが使用可能になっている必要があるのですが、Hyper-Vが使用可能な状態の場合は、VirtualBoxが使用できなくなります。Hyper-VとVirtualBoxを並行して利用することができないので、注意しましょう。Hyper-Vの設定変更はインストーラーの方で行なってくれます。(2)システム要件こちらもインストールページに記載がある通りです。本記事の執筆時点では、下記のような条件があります。Hyper-Vとは別の話。オペレーティングシステム、x64ベースプロセッサとなっていたので、この辺りの条件はクリアできていたようです。M1002-W上のWindows上のスペックを再掲します。Pythonのインストール次に、Pythonの公式サイトからWindows用のPython3.6以上のインストールを行います。installerを選択しました。installerはインストールに必要な要素を全てまとめてexeファイル内で保持しているようなインストールファイルです。(参考)https://stackoverflow.com/questions/38651672/difference-between-web-based-and-executable-installers-for-python-3-on-windowshttps://python-forum.io/Thread-Python-3-x86-vs-x64-Inquirypipのインストールpipは上記インストールに標準で入っていました。updateが必要なので、下記のコマンドプロンプトで下記のコマンドを実行しました。pipを行うと上手くいかなかったように思います。エラーメッセージでこのコマンドを提示してくれたかもしれないので、一度試してみて、駄目そうなら使ってみてください。CLIのインストールは下記のコマンドです。CLIがコマンドプロンプトから実行できるようにパスの追記などを行う必要があります。この辺りは下記のリンクを参照してください。Containerの実行とファイル読み込みテストここまででようやく下準備が終わりました。Windows上で起動し、テストを行います。チュートリアルへのリンクを掲載しておきます。IoTを使用してのテストという流れになります。Greengrassの依存関係などの設定が完了済みのイメージが提供されているので、今回はそれを利用します。チュートリアル通り、下記のコマンドを順に実行していきます。下記のコマンドを実行します。このコマンドを使うことで、出力としてDockerクライアントの認証に必要なログインコマンドを取得することができます。Errorが発生することがあるので、その際は下記のリンクなどを参考に解決してください。(1)で出力されたコマンドをそのままコピーして実行します。(3)下記コマンドでコンテナイメージを取得します。loadコマンドでimageを取り込む形も取れるでしょうか。実行できますか?”という文言で検索してみてください。Lambda関数の準備まずは通常のGreengrassのグループおよびコアを作成する作業を行います。これについては、基本的なGreengrassのチュートリアル通りに進める流れになります。設定この作業が初めての方は、一旦ここは後回しにして、通常のGreengrassのチュートリアルを行うところから始めるのが良いかと思います。作業の途中でダウンロードする証明書情報と設定ファイルは後ほど使用するので保存しておきます。Greengrassコアソフトウェアは今回使用しているイメージに準備されているので、ダウンロードする必要はありません。次に、Lambda関数の準備もここで実施しておきます。今回使用したLambda関数のコードはこちらです。returnこの関数では、環境変数としてファイルの読み込み先のパスやトピックの発行先、ベースになるメッセージの内容を指定できるようにしています。関数の中でgreengrasssdkなどを使っているので、ライブラリも忘れずにアップロードしてください。チュートリアルで提供されているHelloWorld.pyを改修すると早いかもしれません。handlerの設定などについては、下記の画像を参考にしてください。これを通常のLambda関数のアップロードの手順に従い、AWS上にアップロードしておきます。latestの状態ではGreengrassにデプロイできないので、バージョン発行と、必要であればエイリアス発行も実施しておきます。Lambda関数の準備周りの手順はこちらをご参照ください。Greengrassをローカルで実行まずは先ほどダウンロードしてきた証明書情報などを所定のフォルダに準備しておきます。runだけは少しコマンドを追加しますが、基本的にはチュートリアル通りに実施すれば問題ありません。実行なお、証明書と設定フォルダが入ったgzファイルを解凍する作業では、Windowsだけで行う場合はWinZipや7-Zipなど、解凍のためのツールが必要になります。面倒な場合は別のところで解凍しておいたほうが楽かもしれません。ここでは、今回の目的であるcsvファイルの読み込みのため、ローカルのcsvファイルへのマウント情報を追加しています。ところ)お手本のコードにマウントに必要なコマンドが記載されているので、書き方はそこを参照すると良いかと思います。216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-greengrass-docker/amazonlinux:latest無事Greengrassが起動できると、コマンドプロンプトは下記のような状態になります。この状態であれば、Greengrassが正しく起動しています。Greengrassのページから、2番目の項目で作成したGreengrassのグループに、各種設定をつけていきます。今回設定を行うのはLambda関数とサブスクリプションの設定の2つだけです。ローカルリソースアクセスやコネクタ、ML推論などの機能は、コンテナなしの設定では使用できません。このトライアルではそれらの設定は不要です。Lambda関数まずは関数の設定を3箇所実施します。存続時間が長く無制限に稼働する関数にするという設定にします。次に、Lamba関数で使用する環境変数も設定しておきます。ここで使用するトピックはサブスクリプションとテストで使用します。runさせた時にマウントさせたパスにします。今回は、/tmp/gg_data_root_data_dir/sample_dataの直下にcsvが入るようにマウントさせていることに注意してください。サブスクリプションHelloWorld関数のチュートリアルを元に、相互にやり取りできるように設定します。今回は下記のような設定にしました。Docker上で動作できるようになった、という話のようです。Inferenceなどの機能が使えなくなるといデメリットがあります。他の機能を使っている場合は何か対策を行う必要が出てきます。Lambda上で動かすなどの一般の機械学習とは特に関係ありません。そちらはコンテナなしでも普通に使うことができます。無事グループの設定が完了したら、Greengrassをデプロイします。Greengrassが正しく起動した状態で、設定が適切になされていれば、グループの情報がエッジ側に配信されます。配信後、左上の表示が正常に完了したことを示したら、テストを実施します。テスト最後にテストを行います。ここではGreengrass自体のチュートリアルのHelloWorld関数のテストと同様の設定を行います。IoTのコンソールのテストのページで下記のようにトピックのサブスクライブを行い、起動側のトピックを発行します。IoT側に送信してきます。それらのファイル名と1行目の内容を送信してきてくれています。これで、ファイルの読み込みが正しくできたことが確認できました。以上、Dockerコンテナ上で起動したGreengrassを用いてのWindows上のファイル読み込みの簡単なトライアルを行いました。ファイルの読み込みができたので、今後は本格的なデータ活用に進めていくことになるかと思います。ソフトウェアとして継続的に使用していくためにイメージの拡張が必要になってきそうです。まとめ以上で今回の記事は終了です。長くなってしまいましたが、これでようやく本格的なGreengrassの活用に向けてのスタートラインに辿り着きました。本格的な取り組みに進んでいくことになると思います。この技術を生かしてより一層データ活用が進んで行くことを期待しています。ブレインズテクノロジーでは「共に成長できる仲間」を募集中です。...2019-01-29Dockerコンテナ上で起動したGreengrassとWindowsとの連携で広がる新たなデータ活用...こんにちは、ブレインズテクノロジーの岩城です。Translateで翻訳させてみ...こんにちは、ブレインズテクノロジーの桑原です。ブレインズテ...2018-02-27Dockerコンテナで起動するElasticsearchの性能情報を取得した話ブレインズテクノロジーの加藤です。今回は、Dockerコンテナ上...2017-12-01docker-composeで環境変数を使うこんにちは。エンジニアの中西です。)に関する取組みをご紹介します。Inc.または関連会社の登録商標およびサービス・マークであり、同社の許可に基づいて使用しています。reserved.ガートナーは、ガートナー・リサーチの発行物に掲載された特定のベンダー、製品またはサービスを推奨するものではありません。最高のレーティング又はその他の評価を得たベンダーのみを選択するように助言するものではありません。ガートナー・リサーチの発行物は、ガートナー・リサーチの見解を表したものであり、事実を表現したものではありません。ガートナーは、明示または黙示を問わず、本リサーチの商品性や特定目的への適合性を含め、一切の保証を行うものではありません。はてなブログをはじめよう!brains-techさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。