Over the years, edge computing for Internet of Things (IoT) systems has become more prevalent due to reasons such as low latency, better control over security, cost savings, and greater reliability. Many companies in the industry has came up with services and tools to help organizations to effectively and reliably implement edge computing. As an IoT solutions provider, MaCh eX has considered and tested different edge computing services that can provide most value to the clients.

In this article series, we will compare the edge computing software and infrastructure services provided by AWS IoT Greengrass (Version 2.1.0) and Azure IoT Edge (Version 1.2.0). In Part 1, we will talk about what is AWS IoT Greengrass and what role does it play in edge computing.

What is AWS IoT Greengrass?

Note: Currently, there are AWS IoT Greengrass Version 1 and Version 2. There are some major differences between them. This article will only discuss about AWS IoT Greengrass Version 2 as AWS is moving forward with the design of the newer version.

AWS IoT Greengrass allows its device owners to extend the functionality of their edge device and also allows them to conveniently manage the features in their devices. With AWS IoT Greengrass, cloud analytics and business logics can be moved to the edge device which allows data collected by IoT devices to be transformed and analyzed near the data source, with or without connection to the cloud. AWS IoT Greengrass consists of 2 parts – The AWS IoT Greengrass Core software and the AWS IoT Greengrass cloud service.

AWS IoT Greengrass Core Software

The AWS IoT Greengrass Core software is a runtime that is installed in the edge device. It can be installed on a System-on-Chip (SoC) like Raspberry Pi or an industrial grade server or any device that meets the requirements. Once a device is installed with the runtime, the device can be called a “Greengrass core device”. Device owners can extend the functionality of their Greengrass core device by deploying AWS IoT Greengrass components (software applications that are deployed to the device through AWS IoT Greengrass) to the device.

The runtime manages the following:

  • Connectivity and synchronization of data and device state with the AWS Cloud
  • Data storage when connection to the cloud is not available
  • Deployment and update of AWS IoT Greengrass components
  • Inter-process communication (IPC) between the Greengrass components
  • Over-The-Air (OTA) device software updates
  • Security Features

The AWS IoT Greengrass components can be any software application that the Greengrass core device supports. This means that a Greengrass core device can be transformed to a powerful edge device that can fit into many use cases simply by deploying relevant components to it.

AWS IoT Greengrass Cloud Service

The AWS IoT Greengrass cloud service is a device management service for Greengrass core devices. It helps to build, manage and deploy the AWS IoT Greengrass components to a single Greengrass core device or across a fleet of Greengrass core devices. When there are multiple groups of Greengrass core devices and each group of core devices runs a different set of components, AWS IoT Greengrass cloud service makes it easy for device owners to manage the different set of components that are running in their Greengrass core devices.

Note that AWS IoT Greengrass cloud service does not handle the data that is collected by the devices. The data collected is still sent to the other AWS Cloud services for processing or storage.

Below is an image from AWS that describes how the 2 parts interact with each other and the rest of the Cloud.


Overall, using AWS IoT Greengrass is a quick and simple way to improve edge device capabilities. In the next article, we will look at Azure IoT Edge, a service that is similar to AWS IoT Greengrass, and make a comparison between the 2 services.