「AWS IoT Greengrass」とは?
「AWS IoT Greengrass」とは、AWS上のIoT関連の機能を「エッジ(IoTデバイス)」まで拡張するAWSサービスです。
AWSにはIoT関連のサービスが多数用意されており、「AWS IoT Greengrass」を理解する上で、これらのサービス群との関係性を踏まえておく必要があります。
最初に、IoTサービス群の概要、サービス群内での「AWS IoT Greengrass」の位置付け、関連サービスについて解説していきます。
「エッジコンピューティング」とは?
「エッジコンピューティング」とは、クラウド以外の場所に「コンピューティングリソース」と「データ処理機能」をもたせることです。
センサー等のデータ収集機能だけではなく、データを処理する機能(コンピューティング)を「IoTデバイス」に持たせます。このデバイスが、クラウド側から見た時に「端(エッジ)」に位置するため、このように呼ばれています。
AWSのIoT関連のサービスによって、「エッジコンピューティング」を実現することが可能です。
IoTの代表的な要件
IoTの代表的な要件として、「モニタリング」、「遠隔制御」、「分析・予測」、「データ連携」の4種類があります。
「モニタリング」は、IoTデバイスの位置情報や機器状態の監視、データ処理状況の管理等です。
「遠隔制御」は、遠隔地のIoTデバイスの運用や保守、各種作業の自動化が対象です。
「分析・予測」は、エッジ側で監視している対象物の異常検知や故障予測があります。
「データ連携」は、IoTデバイスとクラウドとのデータのやり取りで、企業間で連携するデータやオープンデータ(二次利用可能な公開データ)が対象となっています。
「AWS Greengrass」は、デバイス側の要件を実現する上で、重要なAWSサービスです。
AWSのIoTに関するアーキテクチャ
AWSのIoTに関するアーキテクチャは、「Device software」、「Connectivity & Control services」、「Analytics services」の3階層で構成されています。
それぞれの階層についての概要と、含まれるAWSの個別サービスについて説明します。
「Device software」とは?
「Device software」とは、IoTデバイス(エッジ)とクラウドとを接続する方法、クラウド側からエッジを操作する方法を管理するサービスです。
具体的なAWSサービスとしては、「AWS IoT Device SDK」、「FreeRTOS」、「AWS IoT Device Tester」があり、「AWS IoT Greengrass」もこのアーキテクチャ階層に含まれています。
「Connectivity & Control services」とは?
「Connectivity&Control services」とは、IoTデバイス(エッジ)とクラウド間を通信する方法やデバイス管理に関するサービスです。
具体的なAWSサービスとしては、「AWS IoT Core」、「AWS IoT Device Management」、「AWS IoT Device Defender」があります。
特に「AWS IoT Core」は、エッジ側の「AWS IoT Greengrass」と連携するサービスなので、AWSのIoTサービス群で重要なサービスとなっています。
「Analytics services」とは?
「Analytics services」とは、エッジ(IoTデバイス)から収集してクラウド上に蓄積したデータを分析するサービスです。
具体的なAWSサービスとしては、「AWS IoT SiteWise」、「AWS IoT Analytics」、「AWS IoT Events」、「AWS IoT Things Graph」があります。
「AWS IoT Greengrass」の概要
「AWS IoT Greengrass」の概要について、サービスの構成要素や基本機能について解説していきます。
エッジ(IoTデバイス)側を管理するサービスの「AWS IoT Greengrass」に対して、クラウド側のIoTサービスの中心的な役割を担っている「AWS IoT Core」というサービスがあります。
「AWS IoT Greengrass」が解決できる課題
「AWS IoT Greengrass」が解決できる課題として、データ処理の遅延抑止、通信量の削減、オフライン動作の3点があります。
エッジ側で処理を行わない場合は、クラウド側に情報を送り、その処理結果を待つ必要があるため、データ処理の通信遅延(レイテンシ)が発生するという課題があります。
膨大な数となるIoTデバイスから通信が発生することで、その通信量により帯域を圧迫するという課題もあります。
また通信中(オンライン)時にしかエッジ側でデータ処理ができないという課題があります。
AWS IoTの各種機能をエッジ側へ拡張することで、クラウドのメリットを受けながら、エッジ側でのデータ処理も可能とすることで、「AWS IoT Greengrass」はこれらの課題を解決しています。
「AWS IoT Greengrass」の構成要素について
「AWS IoT Greengrass」の構成要素は、IoTデバイスにインストールするソフトウェア(Greengrass Core)と、その動作の定義(Greengrass Group)やアプリケーションをデプロイするクラウドサービス(Greengrass Service)で構成されています。
これらの構成要素について、解説していきます。
「Greengrass Core」とは?
「Greengrass Core」とは、エッジデバイスにインストールするソフトウェアで、「Lambdaランタイム」、「メッセージマネージャ」、「シャドウサービス(ローカルシャドウ)」等の機能があります。
このソフトウェアを起動すると、常駐プロセスとして動作します。 動作させるハードウェアは、ユーザー要件に応じて選択する必要があります。
これらの機能の詳細について解説していきます。
「Lambdaランタイム」とは?
「Lambdaランタイム」とは、「Greengrass Service」によりデプロイされた「AWS Lambda」をエッジデバイス上で実行できる機能です。
クラウド上の「AWS Lambda」と比較すると、インストールされたデバイスに実行環境が依存していたり、使用可能なプログラミング言語が制限(Node.js、Python、Javaのみ)されていたりする点に注意が必要です。
「メッセージマネージャ」とは?
「メッセージマネージャ」とは、IoTデバイス間のメッセージや、クラウド上の「AWS IoT」へのメッセージを中継する機能です。
このため「Greengrass Core」全体としては、「Amazon MQ」のような「MQTT」の「メッセージブローカー」として動作します。
なお「MQTT」とは、ハードウェア制約があるデバイス向けに設計された軽量メッセージングプロトコルです。
「シャドウサービス(ローカルシャドウ)」とは?
「シャドウサービス(ローカルシャドウ)」とは、「Greengrass Core」内にセンサー等のデバイスの「シャドウ(仮想的な管理対象)」を設定し、それを管理することで実際のデバイスと同期させて管理するという機能です。
「AWS IoT」クラウド側にエッジデバイスのシャドウを設定する「AWS IoT Device Shadow」サービスと、基本的には同内容のサービスです。
AWSの各サービスは、「AWS IoT」上のシャドウを介してエッジデバイスにアクセスし、モニタリングや制御が可能となります。
「AWS IoT Greengrass」のまとめ
「AWS IoT Greengrass」の構成要素や機能の概要について解説してきました。
通信量の増大によるネットワーク負荷の軽減やプライバシー保護等の課題を解決するため、エッジデバイス側にデータ処理機能を移管できる「AWS IoT Greengrass」で解決することが可能です。
またエッジ側に機械学習等の処理を実装したい場合にも、AWSの関連サービスと連携することで「AWS IoT Greengrass」を活用できます。
実際に試してみたい方は、AWSの公式サイトで公開されている「ハンズオン」を試してみてはいかがでしょうか?]]>