AWS Greengrass is a service that extends Amazon Web Services functionality to Internet of Things (IoT) devices, allowing a business to perform data collection and analysis closer to its origin. An IT team defines and configures Greengrass devices, permissions, applications and updates from the Amazon Web Services public cloud.
A developer can write AWS Lambda functions and deploy them for Greengrass. Those Lambda functions then execute locally on Greengrass devices when data is received from events or cloud messages. Greengrass secures data with authentication and authorization at both the network- and device-level.
IoT devices in a Greengrass deployment communicate with each other through local networks. A business can filter and transmit only the data it wants to the cloud, which reduces data migration and storage costs.
AWS Greengrass software
AWS Greengrass Core and AWS IoT Device SDK are the two primary software packages for AWS Greengrass. Devices that run AWS Greengrass Core and the AWS IoT Device SDK interact with each other to form what's called a Greengrass Group.
Every Greengrass Group requires AWS Greengrass Core software, which supports the local execution of applications based on Lambda functions. Core runs on a physical device that requires 1 GHz of compute power, 128MB of RAM and a processor that can support an OS, such as Linux. Greengrass Core also allows a team to use what AWS calls device shadows to manage the deployment and of IoT devices and capture their current states. Greengrass Core enables local device messaging via MQ Telemetry Transport (MQTT) protocol, and also establishes secure connections to the AWS cloud.
The AWS IoT Device SDK enables devices to connect and interact with the Greengrass Core. The AWS IoT Device SDK supports C++ for Greengrass and can run on any device that supports Transport Layer Security.