What is AWS Greengrass?

AWS Greengrass is software that extends AWS cloud capabilities to local devices, thereby enabling them to collect and analyze data closer to the source of information, while also allowing devices to securely communicate with each other on local networks. More specifically, Greengrass enables developers to author serverless code (AWS Lambda functions) in the cloud and conveniently deploy them to devices for local execution of applications.

Amazon Greengrass is now in Preview

Sign up for the Amazon Greengrass preview

 

 

What value does AWS Greengrass provide customers?

AWS Greengrass enables customers to build IoT devices that can execute local applications, which can be programmed with AWS lambda functions that are backed by the cloud. Specifically, Greengrass allows customers to locally execute Lambda functions that are triggered by local events, messages from the cloud, or other desired sources.

AWS Greengrass enables devices to securely communicate on a local network and exchange messages with each other without having to connect to the cloud. Moreover, Greengrass provides a local pub/sub message broker that can intelligently buffer messages in the event of lost connectivity, so that inbound and outbound messages to the cloud can be buffered.

AWS Greengrass protects user data with secure authentication and authorization of devices, as well as secure connectivity, both within the local network and between local devices and the cloud. Device security credentials continue to function until a defined expiration date, even if connectivity to the cloud is disrupted, so that the devices can continue to securely communicate locally.

AWS Greengrass provides convenient fleet management of devices through secure over-the-air updates of software versions and Lambda functions. In this way, customers can scale their IoT solutions by centrally administering devices, permissions, applications from the cloud.

What are the major components of AWS Greengrass software? What does each component do?

AWS Greengrass consists of two software distributions: Greengrass Core and AWS IoT Device SDK.

The AWS Greengrass Core software: 1) Allows deployment and execution of local applications created using Lambda functions and managed through device shadows. 2) Enables local messaging between devices over a secure network via a pub/sub model through MQTT protocol. 3) Ensures secure connections between devices and with the cloud via device authentication and authorization. 4) Provides device fleet management from the cloud via a device registry and over-the-air updates.

The Device SDK on the AWS Greengrass Core is an extension of the existing AWS IoT Device SDK, which enables constrained devices to discover, connect to, and communicate with the Greengrass Core Device. Devices that run the AWS IoT Device SDK are referred to as Devices).

See the chart below for a distinction between The AWS Greengrass Core and AWS IoT Device SDK:

Functionality

AWS Greengrass Core

AWS IoT Device SDK

Role

Providing local services (e.g. storage), command and control of AWS Greengrass Devices that run the AWS IoT Device SDK.

Interacting with the environment.

Runs Lambda functions?

Yes

No, but can invoke via AWS Greengrass Core.

Runs in response to:

Time, messages from devices and/or the cloud

Messages, sensors, interrupts, etc.

Runs messaging broker?

Yes

No

Runs storage subsystem?

Yes

No

Minimum requirements

1GHz and 128MB (more depending on use case)

Supports C++

Persistent local storage

Required

Not required

What are AWS Greengrass Core devices? What minimum hardware specifications are required?

The AWS Greengrass Core software runs on a hub, gateway or other device to automatically sync and interact with the cloud. Greengrass Core is designed to run on devices with a general-purpose processor that are powerful enough to run a general-purpose operating system, such as Linux. Greengrass requires at least 1GHz of compute (either ARM or X86), 128MB of RAM, plus additional resources to accommodate the desired OS, message throughput, and AWS Lambda execution depending on the use case. Highly versatile, Greengrass Core can run on devices that range from a Raspberry Pi to a server-level appliance.

What operating systems does AWS Greengrass Core support?

At the moment, AWS Greengrass Core supports 4.4 Linux kernel distributions or higher. We have validated Greengrass on Ubuntu and Amazon Linux. In the future, Greengrass Core will support popular distributions for embedded applications such, as well as support for additional operating systems.

What minimum hardware specifications are required to run the AWS IoT Device SDK? What languages does the Device SDK support?

Any device that supports TLS can use the AWS IoT Device SDK. AWS Greengrass is available on the AWS IoT Device SDK via C++.

What is AWS Greengrass’ relevance in the context of AWS cloud services?

AWS Greengrass makes it easier for customers to build systems of devices (including heterogeneous devices) that work together with AWS cloud. Greengrass is not designed to substitute the cloud, but instead to provide tools to customers to use the cloud to build applications and systems that can be deployed on premise. Greengrass is an extension of the AWS cloud services. By using Greengrass for local execution, customers can be selective about the data that should be processed and stored locally versus the most valuable data that should be processed and stored in the cloud.