Spotlight

The what, when, and why of AWS IoT Greengrass

Run Lambda functions locally and save time and money by using this open-source solution for IoT devices.
Rafael Rodriguez Featured Team Member
Rafael Rodriguez | Feb 23 2023
4 min read

First of all, what is AWS IoT Greengrass?

AWS IoT Greengrass is “an open-source edge runtime and cloud service for building, deploying, and managing device software”. Put simplistically, it is a compute service that you can run on edge/IoT devices and manage from the AWS Cloud; it is often used to configure and deploy the software that runs on gateways sitting between IoT devices and the cloud. Greengrass is made up of two key components.

First, let’s discuss the Greengrass edge runtime, which is AWS software that runs on Linux/Windows environments. The runtime is composed of modules called “components”, which are independent application services running on a device. Components are further subdivided in two parts: artifacts and recipes—the first containing the component code and the second the configuration.

Second, there is the cloud service which provides tools to manage edge/IoT devices by allowing users to create, update and deploy application components, grouping devices, and interacting with other AWS Services (like Amazon CloudWatch Logs) to monitor device events without accessing the local file system, among others.

Why should you use AWS IoT Greengrass?

AWS IoT Greengrass provides a lot of capabilities to IoT and Edge devices out of the box. Thanks to its modular philosophy (meaning that AWS Greengrass models all the software pieces that are developed and deployed as components), components can represent applications, libraries, or any code that you would run on a device. AWS and the community have developed some components to provide your device with several cool features like:

  • Run AWS Lambda locally
  • Run machine learning models on edge devices
  • Send MQTT messages to AWS
  • Stream high volumes of data to AWS
  • Publish metrics to Amazon CloudWatch
  • Connect devices locally using MQTT (without an Internet connection)
  • Over-the-air updates
  • Grafana
  • LoRaWaN adapter
  • Easy interaction with other AWS Services, like Amazon S3 or AWS Secrets Manager

You can also write your custom components to match specific requirements on your local device or in the cloud. You can find more information about custom component development here.

When should you use AWS IoT Greengrass?

You should use AWS IoT Greengrass when you need to extend AWS services and capabilities to the edge. Whether it’s connecting a manufacturing floor to the cloud for data ingestion, managing IoT Gateways, or making a machine learning model available for local inference, Greengrass has dozens of features and capabilities to run your workload at the edge and centrally manage it from AWS.

There are some device requirements you must consider to install and run AWS Greengrass so ensure your device meets them prior to developing your edge/IoT application:

  • Root access
  • A minimum of 256MB of disk and 96MB of RAM (not suitable for microcontrollers, but you can use FreeRTOS with AWS IoT Greengrass integration)
  • Some other minor restrictions like Java 8 or later and GNU C Library 2.25 running installed on the device.

How much does AWS IoT Greengrass cost?

AWS IoT Greengrass is generally affordable. It costs $0.16 a month per device as long as it is authenticated with AWS within a month. If the device runs standalone without communicating to AWS, the cost is $0. Take into account that any other service(s) the device uses will be charged as the service pricing defines it. For a piece of more detailed pricing information, visit AWS IoT Greengrass Pricing.

Author
Rafael Rodriguez Featured Team Member
Rafael Rodriguez