AWS Greengrass えーだぶりゅーえす ぐりーんぐらす
簡単に言うとこんな感じ!
AWSのクラウド機能を、工場や店舗の「その場にある機器」でも動かせるようにする仕組みだよ!インターネットが繋がらない場所でもAWSのプログラムを実行できるし、必要なデータだけクラウドに送れるってこと!
AWS Greengrassとは
AWS Greengrassは、Amazon Web Services(AWS)が提供するエッジコンピューティングのサービスです。通常、AWSのサービスはインターネット経由でクラウド上のサーバーで処理を行いますが、Greengrassを使うと、工場の機械・店舗のカメラ・物流倉庫のセンサーといった現場のデバイス上でAWSのロジック(プログラム)をそのまま動かすことができます。
エッジ(Edge)とは「端っこ」の意味で、クラウドから見て末端にあるデバイスやゲートウェイ機器のことを指します。Greengrassはそのエッジデバイスに「小さなAWS環境」を持ち込むイメージです。たとえば製造ラインの異常検知プログラムを、わざわざクラウドに問い合わせることなく現場のPCやラズベリーパイ上でリアルタイムに動かすことができます。
実務上の大きなメリットは3つあります。①ネットワークが不安定・遮断されても動き続ける(オフライン耐性)、②データをクラウドに送る前に現地で処理・フィルタリングできる(通信コスト削減・低レイテンシ)、③クラウドと同じコードをそのまま使い回せる(開発効率)。これにより、IoTシステムの開発・運用コストを大幅に下げられます。
Greengrassの構造と仕組み
Greengrassは大きく「クラウド側」と「エッジ側」の2層で構成されます。
| 構成要素 | 場所 | 役割 |
|---|---|---|
| AWS IoT Core | クラウド | デバイスの管理・メッセージの受け口 |
| Greengrassクラウドサービス | クラウド | コンポーネントの配布・デプロイ管理 |
| Greengrass Core(コアデバイス) | エッジ | プログラム実行の本体。ゲートウェイ機器にインストール |
| コンポーネント | エッジ | 実行するアプリ・処理ロジックの単位(旧:Lambda関数) |
| リーフデバイス | エッジ | センサー・カメラなど末端の機器。コアデバイス経由でクラウドに接続 |
処理の流れは次のとおりです。
[センサー/カメラ等]
↓ データ送信(MQTT/HTTP)
[Greengrassコアデバイス] ← コンポーネント(処理ロジック)が動く
↓ 必要なデータだけ
[AWSクラウド(IoT Core / S3 / Lambda等)]
覚え方:「草の根AWSを現場に植える」
Greengrassの名前の由来は「緑の草」。クラウドという大きな空から、現場の「草の根(グラスルーツ)」レベルにAWSを届けるイメージです。「AWS機能を現場に植え付ける」と覚えると忘れにくいです。
バージョンの違い(V1 vs V2)
| 項目 | Greengrass V1 | Greengrass V2(現行推奨) |
|---|---|---|
| 処理ロジックの単位 | Lambda関数のみ | コンポーネント(汎用・再利用可能) |
| 対応OS | Linux中心 | Linux・Windows対応 |
| セットアップ | やや複雑 | CLIで簡略化 |
| コンポーネントの共有 | なし | AWS IoT Greengrass公開カタログあり |
歴史と背景
- 2016年 — AWS re:Inventにて「AWS Greengrass」を初発表。IoTデバイスでLambda関数を実行できる画期的な機能として注目される
- 2017年 — 一般提供(GA)開始。製造・小売・物流業での採用が始まる
- 2018〜2019年 — 機械学習推論のエッジ実行(SageMaker Neo連携)など機能拡張。スマートファクトリー用途で普及加速
- 2020年 — Greengrass V2を発表。コンポーネントベースのアーキテクチャに刷新し、オープンソース化。Windowsサポートも追加
- 2021年以降 — AWS IoT Device Managementやコンポーネントカタログとの統合強化。エッジMLや5G連携ユースケースへの対応が進む
背景には「すべてのIoTデータをクラウドに送るのは非現実的」という課題がありました。工場の製造ラインでは1秒間に数千件ものセンサーデータが発生し、全量をクラウドに送ると通信コストが膨大になり、応答速度も問題になります。そこで「クラウドのロジックを現場に持ち込む」発想が生まれました。
クラウド処理 vs エッジ処理(Greengrassの位置づけ)
GreengrassとAWS IoT Coreの違い
| 項目 | AWS IoT Core | AWS Greengrass |
|---|---|---|
| 処理場所 | クラウド | エッジデバイス(現場) |
| オフライン動作 | ❌ 不可 | ✅ 可能 |
| 主な用途 | デバイス接続・メッセージ管理 | ローカル処理・ML推論・デバイス間連携 |
| 関係性 | Greengrassと連携して使う | IoT Coreの上に成り立つ |
よくある活用シーン
- 製造業:製造ラインのセンサーデータをその場で分析し、異常を検知したら即座に機械を停止
- 小売業:店舗のカメラ映像を店内のエッジデバイスで処理し、プライバシー配慮しながら来店者数をカウント
- 物流:倉庫内のAGV(自動搬送車)がインターネット切断中も自律的に動き続ける
- 農業:圃場(畑)など通信が不安定な場所で土壌センサーのデータをローカル集計
関連する規格・サービス
| 規格・サービス | 内容 |
|---|---|
| AWS IoT Core | Greengrassと連携するクラウド側のIoTメッセージ管理サービス |
| AWS Lambda | クラウド上のサーバーレス関数。Greengrass V1ではエッジで同様に動作 |
| AWS SageMaker Neo | 機械学習モデルをエッジデバイス向けに最適化・デプロイ。Greengrassと連携 |
| MQTT | IoTデバイス間の軽量メッセージプロトコル。Greengrassが内部で使用 |
| Docker | コンテナ技術。Gregrass V2ではコンテナ形式のコンポーネントも動作可能 |
関連用語
- エッジコンピューティング — クラウドではなく現場のデバイスで処理を行うアーキテクチャ
- AWS IoT Core — AWSのIoTデバイス接続・管理の中心サービス
- IoT — モノのインターネット。センサー等の機器をネットワークに繋ぐ概念
- Lambda — AWSのサーバーレス