AWS IoT Greengrass(エーダブリューエス アイオーティー グリーングラス)は、Amazon.comがAmazon Web Services(AWS)の一部として提供する、IoT(インターネットに接続する機器)向けのエッジコンピューティングサービスである。機器の側で動くソフトウェアと、そのソフトウェアをクラウドから配布・管理する仕組みを組み合わせたもので、機器が自身で集めたデータをその場で処理し、同じネットワーク内の機器と直接やり取りし、クラウドのAWS IoT Coreと通信できるようにする。クラウドとの接続が途切れている間も処理を続けられる点が特徴とされる。旧称はAWS Greengrassで、2016年11月30日に限定プレビューとして発表され、2017年6月7日に一般提供が始まった。
概要 鉱山や油井、工場などの現場に置かれた機器は、通信が途切れやすく通信速度も限られることが多い。AWSは、こうした環境でもクラウドと同じ考え方でプログラムを作れるようにするため、AWSのプログラミングモデルを小型の機器まで広げるサービスとしてAWS IoT Greengrassを位置付けている。
利用者は機器に「AWS IoT Greengrass Coreソフトウェア」を導入する。この機器(コアデバイス)はクラウド側のAWS IoT Greengrassと結び付けられ、利用者が作ったプログラムや設定をクラウドの操作で受け取る。コアデバイスは、センサーなどの周辺機器を束ねる中継役としても働き、それらの機器と同じネットワーク内で直接メッセージを交換する。当初は機器の上でAWS Lambdaの関数を実行する仕組みが中心であった。アマゾンウェブサービスジャパンは用途や利点として、通信帯域の不足の解消、データ保管費用の低減、現場での高速な応答、通信が切れている状態での処理などを挙げている。TechTargetジャパンは、接続された機器に対してローカルでの処理、メッセージング、データのキャッシュ、同期、機械学習といった機能を実装できると紹介している。
料金は、その月にクラウド側のサービスへ接続したコアデバイスの台数に応じて計算される従量制で、コアデバイスにローカルで接続する機器の分は加算されない。無料利用枠として、最初の3台のコアデバイスが1年間無料で利用できる(2026年時点)。
機器の状態の把握には、AWSが用意する部品のうち、ログを集めてクラウドへ送るものや、メトリクス(測定値)をAmazon CloudWatchへ送るものを利用できる。
仕組みと主な機能 現行のバージョン2では、機器上のソフトウェアを「コンポーネント」(部品)の組み合わせとして構成する。
Greengrass nucleus(ニュークリアス) コアデバイス上で動くソフトウェアの中核部分。設定の管理や、他の部品の配置・更新を担う。バージョン2ではこの実行環境がApache License 2.0のもとでオープンソースとして公開されている。 コンポーネント 機能ごとに分けられた部品。AWSが用意する部品(データの流れを扱うストリームマネージャー、機械学習、ログの収集、産業用通信規格Modbusの機器から情報を取得するアダプターなど)と、利用者が独自に作る部品があり、必要なものだけを選んで機器に配置できる。利用者のプログラムは、AWS Lambdaの関数、Dockerコンテナ、OS上のプロセスなどの形で動かせる。 ローカルでのメッセージ交換 コアデバイスはMQTT(IoT向けの軽量な通信手順)のブローカーとして働き、周辺の機器から送られたメッセージをクラウドを経由せずに受け取って処理できる。機器の状態はデバイスシャドウという仕組みでクラウドと同期され、機器がオフラインの間もクラウド側から状態を取得できる。 機械学習の推論 クラウドで学習させた機械学習のモデルを機器に配布し、機器上で推論(学習結果をもとにした判定)を行うための部品が用意されている。 デプロイと管理 作成した構成は、機器のまとまり(フリート)に対して一括で、または一部の機器から段階的に配布できる。バージョン2では、機器上で開発と動作確認を行うコマンドラインインターフェイスとローカルデバッグコンソールも提供される。
動作環境はLinuxとWindowsである。提供開始時はLinuxのみが対象で、x86またはArmのプロセッサを搭載した機器(Raspberry Piのような小型の計算機を含む)に導入できた。
歴史 AWSは2016年11月30日、年次イベントのre:Inventに合わせて「AWS Greengrass」を発表し、限定プレビューの受け付けを始めた。2017年6月7日に米国東部(バージニア北部)と米国西部(オレゴン)で一般提供が始まり、東京より先に欧州(フランクフルト)とアジアパシフィック(シドニー)でも提供され、2017年9月にアジアパシフィック(東京)へ広がった。機器上で実行できるAWS Lambdaの関数は当初Pythonのみに対応し、2017年にNode.jsとJavaが加わった。
2018年4月には、クラウドで学習した機械学習のモデルを機器上で実行する機能が追加され、Apache MXNet、TensorFlow、Caffe2、CNTKに対応した。NVIDIA JetsonやRaspberry PiなどにはApache MXNetのパッケージがあらかじめ用意され、GPUなどのハードウェアアクセラレーターをローカルリソースとして指定できた。同年11月には、外部のアプリケーションやAWSのサービスと接続するための「コネクタ」と、TPM(Trusted Platform Module)やHSM(ハードウェアセキュリティモジュール)といった専用のハードウェア部品に秘密鍵を保存する構成が追加された。この告知の時点では名称が「AWS IoT Greengrass」に改められている。2019年3月にはNVIDIAとAWSの提携が発表され、AWS上で作成した機械学習のモデルをNVIDIA Jetsonを用いたエッジ機器へ配布して実行する構成が示された。
2020年12月15日、AWSはバージョン2にあたる「AWS IoT Greengrass 2.0」を公開した。エッジ側の実行環境がApache License 2.0のもとでオープンソースとして公開され、機能を部品として組み合わせる構成に改められた。バージョン2はバージョン1の後継として提供されている。2021年11月にはバージョン2.5でWindowsへの対応が加わった。AWSは、バージョン1のサポートを2026年10月7日に終了する予定であると告知しており、バージョン2への移行手順を案内している(2026年9月時点)。
関連項目 AWS IoT Core AWS Lambda エッジコンピューティング モノのインターネット MQTT FreeRTOS
脚注
外部リンク AWS IoT Greengrass(公式サイト・日本語) AWS IoT Greengrass Developer Guide, Version 2(英語)