第1回 AWSのGreengrassとは?エッジ環境で AWS IoT の機能を利用する
第1回 新世代エッジエンジニアのための技術講座 コラム
この連載コラムでは、AWS IoT Greengrassについて、数回に分けてお伝えします。
第1回の今回は、概要(全体像)、構成、機能について取り上げます。
その後、第2回と第3回で個々の機能について説明し、最後の第4回目に事例やAWS以外の選択肢を紹介します。
本連載は、次のような想定・目的で記述しています。
想定する読者 |
|
想定する読者の 知識レベル |
|
本連載を読んだ後に得られる期待値 |
|
目次
AWS IoT Greengrass の概要
AWS IoT の機能をエッジにオフロード
AWS IoT Greengrassは、AWSが提供するサービスの1つで、AWS の「IoT プラットフォーム」(AWS IoT) の機能をエッジ(現場)にオフロードする仕組みです。
https://member.eureka-box.com/products/4/categories/4011892/posts/13450001
IoTシステムでは、さまざまなデバイスからクラウドにデータを吸い上げ、AIでデータを分析して、その結果に基づいてデバイスを制御します。そういったIoTシステムをクラウドの環境で構築できるよう、AWSでは、AWS IoTというサービスをもともと提供していました。そのAWS IoTの機能をエッジ環境でも使えるようにしたプラットフォームがGreengrassです。
クラウドでできることの一部または全部をエッジ環境で実行することで、負荷分散を図ることができます。
クラウドの機能を現場でも
Greengrass の導入によって、IoT システム構築に必要なクラウドの機能が現場にもたらされ、デバイスから収集したデータをクラウドを介さずに現場で処理する「エッジコンピューティング環境」を構築できるようになります。
https://member.eureka-box.com/products/4/categories/4011892/posts/13450001
現場の環境の中だけでIoTシステムを構築することも可能ですし、エッジで実行するには負荷の高い処理をクラウドに担当させるような、クラウドと連携したIoTシステムも構築できます。
AWS IoT Greengrass を使用したシステムの例
システムの例をご紹介しましょう。こちらは、製造現場において設備の異常を機械学習モデルで判別し、検知した場合にアラートを出すというシステムです。
https://member.eureka-box.com/products/4/categories/4011892/posts/13450001
設備の画像、振動、音、温度などのデータをセンサから収集し、機械学習モデルで異常を検出して、異常があればライトを付けるなどで通知します。
これをGreengrassを使ってエッジで実現できると、どのような利点があるのでしょうか。
- センサのデータは発生頻度が高く、カメラのデータは大容量になりがちですが、いちいちクラウドに転送する必要がないため通信コストが削減できます。また、製造中の製品や内部の設備・施設が写り込んでいるなど、外部に流出すると困る画像データは、クラウドに出したくないものです。そういうプライバシーを考慮しなければならないデータを外部に送出せずに処理できます。(図左上)
- クラウドを介さないので、異常を検知したら即停止することができます。そのため、リアルタイム性、即応性が求められる処理に対応できます。(図左下)
- Greengrassを使用すると、エッジだけで処理する以外に、クラウドと連携させて、エッジでやるには荷が重い処理をクラウドで実行することが可能です。たとえばエッジで動かす機械学習モデルは、精度を上げるために運用中に採取したデータで再学習させることが一般的ですが、その学習にはかなりのリソースが必要なので、エッジで行うのは困難です。その再学習をクラウドで実行するようなことが考えられます。
またその際に、Greengrassでは、クラウドで学習したモデルをエッジにデプロイする仕組みが提供されているのもメリットです。(図右上)
AWS IoT Greengrass の効果
Greengrassを導入すると、「クラウドヘビー」の弊害が軽減できます。
https://member.eureka-box.com/products/4/categories/4011892/posts/13450001
すべてをクラウドで処理すると、図の赤い吹き出しで示されているような「クラウドヘビー」と言われる弊害が生じますが、Greengrassを使うことで処理をエッジ側と分担できるため、問題を軽減できます。つまり、
- クラウドでのデータ処理や保管コスト
- 通信量、通信コストを低減できる
- プライバシー漏洩リスクが軽減される
- クラウドとつながらないオフラインの状態でも処理ができる
- リアルタイム性が求められる処理を遅延(レイテンシ)なく実行できる
といったメリットがあります。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
2. AWS Greengrass の構成と機能
AWS Greengrass の構成
Greengrass の構成は以下のとおりです。
https://member.eureka-box.com/products/4/categories/4011892/posts/13450001
物理的には大きくエッジ環境とクラウド環境に分かれます。エッジ側はさまざまなデバイス(ハードウェア)で構成されますが、その種類はIoTデバイスとエッジデバイスの2つに大別されます。
- IoTデバイスは、センサやアクチュエーターなど、いわゆる「Thing」に相当します。
- エッジデバイスは、IoTデバイス間の連携を支えたりクラウドとの連携を担ったりする、ゲートウェイに相当するデバイスです。
- クラウド側は基本的にAWSです。ただし、連携先にはサードパーティーのクラウドサービスも利用可能です。
そして、これらのハードウェアに、それぞれソフトウェアが搭載されます。
- 中でも重要なのが、エッジデバイスに搭載されるGreengrass Coreというソフトウェアで、一般にGreengrassと呼ばれています。(Greengrass Coreの機能については連載の2回目と3回目で詳しく説明します。)
- IoTデバイスではIoT Device SDKが動作します。これは、Greengrass Coreに接続し、データを転送する処理を簡単に行うためのSDKです。
- クラウド側のサービスはAWS IoTを使用します。AWS IoTはIoTシステムのクラウド側のプラットフォームであり、これを窓口にして、背後にあるAWSのさまざまなサービスにアクセスできます。
クラウド側に存在するソフトウェアで、Greengrassにとって大切なのは管理コンソールです。これはGreengrassの管理やメンテナンスを行うためのポータルのサイトであり、ここで管理した内容をエッジ側のGreengrass Coreに反映させて使うのが基本です。
これをまとめると、次のようになります。
ハードウェア
構成要素 | 概要 |
エッジデバイス | エッジ(現場)におけるゲートウェイとして機能するデバイス。 Greengrass Core が搭載される。 |
IOT デバイス | エッジ(現場)内でのモノとして機能するデバイス群。 AWS IoT Device SDK が搭載される。 ※AWS 提供のFreeRTOS搭載のIoTデバイスもエッジデバイスとの接続が可能 |
ソフトウェア
構成要素 | 概要 |
Greengrass Core | Greengrassの中核となるソフトウェア。 以下のような機能を提供する。 (1)デバイス間/デバイス-クラウド間のメッセージ中継 (2) アプリケーションロジック(Lambda)の実行 |
AWS IoT Device SDK | Greengrass(あるいはAWS IoT)との通信/連携機能を提供するSDK。 |
管理コンソール | エッジ(現場)のデバイス構成やGreengrass の動作を定義・保守するためのクラウドサービス。 下記の定義とGreengrassへのデプロイ機能を提供する。 (a)アプリケーションロジック (b) デバイス構成 (c)メッセージのルーティング(Subscription) |
AWS Greengrass の機能
Greengrass Coreの主要な役割は、IoTデバイス集めたデータを処理するためのアプリケーションやロジックを配置し、実行することです。
https://member.eureka-box.com/products/4/categories/4011892/posts/13450001
これらの機能は、図の上半分にあたる中核となる機能セットと、下半分にあたる補助的な機能セットに分類できます。
中核となる機能 「IoTデバイスから収集したデータをエッジで処理する」のを実現する機能 |
1 IoTデバイスおよびAWS IoTとの接続 |
2 データの収集と配信 | |
3 データを処理するアプリケーションロジックの実行 | |
4 アプリケーションロジックの開発とエッジへのデプロイ | |
補助的な機能 ロジック開発のための |
5 IoT デバイスの状態の監視や操作【デバイスシャドウ】 |
6 エッジデバイス上のファイル、またエッジデバイスに直接つながるデバイスへのアクセス【ローカルリソースアクセス】 | |
7 外部のサービスとの連携【コネクタ】 |
これらの各機能について、次回以降、具体的に見ていきます。
これからのエッジエンジニアに求められる技術を知るには
新世代エッジエンジニアのための技術を実際に学んでみたいという方に、まずは無料でお試しいただけるオンライン学習プラットフォームを準備しています。
業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。
ソフトウェア開発を改善するための開発技術を“知り・学び”“実践する”
超実践的オンライン学習プラットフォーム
Eureka Box(ユーリカボックス)
Greengrassを正しく理解した上で適用し、最大限の効果を得られるようスキルアップしたい方にもEureka Boxでの学習はお勧めで、無料会員登録だけでも以下の特典が受けられます。
- 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
- USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
- ソフトウェア開発に関わる無料お試しコンテンツも充実
次回以降のコラムから、AWS Greengrassの機能解説、活用事例、AWS以外の選択肢(パブリッククラウド系、オープン系)、その他の情報(動作要件、料金)で扱います。
AWSのGreengrassの技術を習得されたい方、ご質問事項は、エクスモーションへお気軽にお問い合わせください。