Greengrass vs. IoT Core

1

Hi,

our company is working on creating an innovative security system to prevent theft of goods from parking trucks. Our goal is to equip every truck with radar sensors and a central control unit which handles the incoming data. We want to upload this data to a cloud so that we can use machine learning in order to analyse the risk of a theft at any given moment.

Our concept is:

  1. Send the data to the cloud
  2. Store the data on the cloud
  3. Analyse and use machine learning on the data

We are looking to set our central unit (Currently a raspberry pi 4) as an AWS IoT device. The main questions are:

What are the differences between IoT Core and Greengrass?

What are the pros and cons of each of these services?

Which one would fit most to our use-case?

Please send us a detailed description and any kind of documentation you think would help us in achieving our goals.

2 Answers
4

In your case, it's not likely a question of IoT Core versus Greengrass. You will likely use IoT Core. It's just whether you will use Greengrass as well.

IoT Core runs in the cloud and Greengrass runs at the edge (usually). IoT Core is a cloud service but Greengrass is an edge runtime, with supporting cloud service.

You can build your device software on top of the Greengrass edge runtime. For devices with sufficient resources, Greengrass is a great way to compose and manage your device software. For your central unit, you would likely use either Greengrass or one of our IoT Device SDKs (https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html) to create your device software. AWS IoT Device Client (https://github.com/awslabs/aws-iot-device-client ) may also be of interest; it is a Linux reference implementation using the C++ IoT Device SDK. Greengrass is likely a good choice for your device if the device will perform edge processing (Lambdas or ML inference for example) and/or if the device acts as a hub for other IoT devices.

However you choose to compose your device software, your device will likely connect to IoT Core and publish messages to the IoT Core message broker.

https://aws.amazon.com/iot-core/features/

https://aws.amazon.com/greengrass/features/

https://greengrassv2.workshop.aws/

profile pictureAWS
EXPERT
Greg_B
answered 2 years ago
2

Hi there! A few points to below to add to the details Greg provided.

  1. You can think of IoT Core as a pub/sub messaging broker with added features for device management, security, OTA etc. Greengrass is a software runtime designed to operate on edge devices and provides functionality to make it easier to develop edge solutions such as local compute, ML inference, ability to build custom components etc. When you use Greengrass, it uses IoT Core for secure connectivity to AWS and other infrastructure services.

  2. Since IoT Core is an ingestion & device management service and Greengrass is a software runtime used to develop device software it doesn't make sense to compare them since they serve different use-cases.

  3. Some questions to ask when deciding how to architect your overall solution:

  • Do you have a need for local compute? If so, Greengrass would likely make your development easier since you can create "components" which can be deployed to an entire fleet of devices

  • How much and what type of data do you need to send for ML processing and what is the cost of sending data back to the cloud? Sending telemetry data is different than image files, video data.

  • Do you need to operate the solution when there is no viable network connection? If so, then Greengrass is essential since messages cannot be sent to IoT core without a connection. Greengrass can operate without network connectivity and run ML inference which may be useful if your solution requires real-time decision-making capabilities. Even with a connection there would be latency with cloud-based inference.

  • Do you have a need for real-time processing? (See above)

  • What is your plan for deploying software to your edge hardware? If you are deploying software to many devices, Greengrass would simplify the process and DevOps/management/compliance components.

It sounds like you are currently in the prototyping phase, however once you develop device software which requires management at scale, then Greengrass would simplify your operations, OTA, security posture etc.

otl
answered a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions