Telemetry and edge data

AWS IoT Greengrass vs Azure IoT Edge

AWS IoT Greengrass and Azure IoT Edge are open-source edge runtimes that run cloud-managed software on gateways and other Linux or Windows devices near the equipment they serve. Greengrass deploys components, which can be processes, containers or Lambda functions, and has a lightweight edition under 15 MB of RAM. Azure IoT Edge deploys containerised modules, runs on Linux or on Windows through a Linux virtual machine, and keeps working offline indefinitely after its first sync. Both bill through their cloud, Greengrass per active device and IoT Edge through IoT Hub units.

TL;DR

Greengrass and IoT Edge do the same broad job, running cloud-managed software on a gateway near the equipment. They differ in packaging, footprint and offline rules.

Learning objectives

After reading this article you will be able to:

  • Compare how Greengrass and IoT Edge package, deploy and run software on a gateway
  • Explain what each one needs from the cloud, and how each behaves offline
  • Estimate what each costs, and check each one's lifecycle before choosing

Key points

  • AWS IoT Greengrass deploys components (processes, containers or Lambda functions) to Linux and Windows devices, has a lite edition under 15 MB of RAM, and bills per core device that authenticates with AWS in a month.
  • Azure IoT Edge deploys containerised modules, runs on Linux or on Windows through a Linux virtual machine, and works offline indefinitely after its first sync. The runtime is free; you pay for IoT Hub.
  • Both run a local message broker for nearby devices, both need the cloud for setup, and both treat their cloud as the place a fleet is managed.
  • Microsoft now points new edge solutions to Azure IoT Operations. IoT Edge 1.6 LTS is supported until November 2028.

Greengrass and IoT Edge as gateway runtimes

Greengrass and IoT Edge both turn a computer near the devices into a programmable gateway that a cloud service manages.

AWS describes Greengrass as an open-source edge runtime and cloud service for building, deploying and managing IoT applications on devices. It lets devices act locally on the data they generate, run machine learning predictions, and filter and aggregate data. Software is deployed as components, which AWS says can be Lambda functions, Docker containers, native operating system processes or custom runtimes.

Microsoft describes Azure IoT Edge as a device-focused runtime for deploying, running and monitoring containerised Linux applications, and as a feature of Azure IoT Hub. Its IoT Edge agent deploys and monitors modules, and its IoT Edge hub handles communication, upstream over AMQP or MQTT and locally between modules and downstream devices.

Greengrass vs IoT Edge comparison table

AWS IoT Greengrass (v2)Azure IoT Edge
Deployment unitComponent: Lambda function, container, native process or custom runtimeModule: container
Operating systemsLinux and Windows; the lite edition on Linux with systemdTier 1 Linux; Windows through a Linux virtual machine
FootprintAt least 96 MB of RAM and a Java runtime; the lite edition under 15 MBNot stated on the pages checked
Local messagingLocal publish and subscribe between components; MQTT broker for client devices (not in the lite edition)IoT Edge hub, MQTT or AMQP, for modules and downstream devices
Offline operationComponents keep running; outbound messages spooled (2.5 MB in memory by default); client devices need the cloud on first connectionIndefinitely after one initial sync; messages kept for their time to live (2 hours by default)
Downstream devicesClient devices registered as AWS IoT thingsUp to 100 children per parent by default, registered in the same IoT Hub
LicenseApache-2.0MIT
Pricing (October 2026)Per core device that authenticates in a month; local client devices free; first three devices free for a yearRuntime free; IoT Hub units from $10 to $2,500 a month
Lifecycle (October 2026)Nucleus 2.18; lite 2.71.6 LTS to November 14, 2028; 1.5 LTS ends November 10, 2026

Greengrass and IoT Edge offline behaviour

Greengrass keeps running its components and local messaging, and AWS documents that devices can continue working in a partially offline environment. Outbound MQTT messages are spooled while the core is offline, in a 2.5 MB in-memory spool by default. Client devices that connect to the core over MQTT need the core to reach the cloud during their initial connection, and reconnecting clients can only be authenticated offline if offline authentication is configured: its trust window ranges from one minute to over 4,000 years, and the default of one minute effectively turns it off. AWS does not publish a maximum offline duration for a core device.

IoT Edge is explicit. Microsoft says IoT Edge devices and their downstream devices can function offline indefinitely after the initial, one-time sync with IoT Hub, with the IoT Edge hub authenticating modules and downstream devices on IoT Hub’s behalf. Messages that cannot be delivered are stored until their time to live expires, 7,200 seconds (two hours) by default. Microsoft also warns that the portal can keep showing a device as healthy while it has no internet connection.

For either runtime, the useful test is the longest outage you expect: size the spool or time to live and the disk for it, and check what happens to devices that join or restart while offline.

Greengrass and IoT Edge pricing

Greengrass bills per active core device: AWS counts a core as active in any month it authenticates with AWS, and inactive in a month it does not, even if it keeps running locally. Devices that connect to a core locally cost nothing extra. The price table on AWS’s page loads dynamically, and its worked example uses $0.16 per device a month for up to 10,000 devices. The AWS Free Tier covers the first three core devices each month for one year.

IoT Edge is free, MIT-licensed software. Microsoft says it is available in the free and standard tiers of IoT Hub, with the free tier for testing and evaluation only. As of October 2026, Microsoft’s retail prices list IoT Hub units from $10 a month (B1) and $25 a month (S1) to $2,500 a month (S3), each with a daily message quota, such as 400,000 messages a day for B1 and S1.

Both bills also include whatever else the solution uses in each cloud.

Lifecycle and support risks

For IoT Edge, Microsoft’s version history lists 1.6 LTS as supported until November 14, 2028, and 1.5 LTS support ending on November 10, 2026. Microsoft’s overview of its IoT services now says that edge-based solutions typically use Azure IoT Operations, which runs on Arc-enabled Kubernetes, and describes IoT Edge as typically part of a hybrid solution. New projects should weigh that guidance.

For Greengrass, the v2 nucleus and the lite edition were both released in September and October 2026. The lite edition does not support hosting local client devices over MQTT, according to AWS’s feature matrix, so check it against the devices you need to serve.

Choosing between Greengrass and IoT Edge

  • Choose Greengrass if the fleet reports to AWS IoT Core, if you need native Windows or a very small footprint, or if your software is not containerised.
  • Choose IoT Edge if the fleet reports to Azure IoT Hub, your software already ships as Linux containers, and long offline periods after a one-time sync are a requirement. For new Azure edge projects, compare it with Azure IoT Operations first.

Offline Protocol alongside an edge runtime

Both runtimes manage software on a gateway and connect it to one cloud. Neither connects people’s phones and apps directly to each other, or works across organisations that use different clouds.

Offline Protocol is an SDK for that layer. Apps on phones, computers and gateways discover each other over Bluetooth LE, the local network or a relay, verify each other’s identity, and exchange encrypted messages, shared documents and service calls. A Linux gateway can run its Python package next to Greengrass or IoT Edge, so field devices hand data to the gateway locally and the edge runtime carries it to the cloud. Traffic between devices over a local transport is never metered.

Frequently asked questions

Can AWS IoT Greengrass run without the internet?

Partly. A core device keeps running its components and local messaging offline, and spools outbound messages until it reconnects. Local client devices need a cloud connection the first time they connect, and offline authentication of returning client devices must be enabled with a trust window, since the default of one minute effectively turns it off. AWS does not publish a maximum offline duration.

How long can Azure IoT Edge work offline?

Microsoft says IoT Edge devices and their downstream devices can function offline indefinitely after the initial, one-time sync with IoT Hub. Messages waiting for the cloud are kept for their time to live, which defaults to two hours, so long outages need a longer setting and enough storage.

Does Azure IoT Edge run on Windows?

Through a Linux virtual machine. Microsoft lists Linux distributions such as Debian 12, Red Hat Enterprise Linux 8 and 9, and Ubuntu Server 22.04 and 24.04 as Tier 1, and on Windows the runtime runs inside a Linux virtual machine prebuilt with IoT Edge. AWS IoT Greengrass runs natively on both Linux and Windows.

Which is cheaper, Greengrass or IoT Edge?

It depends on fleet size and message volume. Greengrass bills each core device that authenticates with AWS in a month, with AWS's own example using $0.16 per device a month, and local client devices are free. IoT Edge is free software billed through IoT Hub, whose units cost from $10 a month (B1) to $2,500 a month (S3) as of October 2026, each with a daily message quota.

How long is Azure IoT Edge supported?

As of October 2026, Microsoft's version history says IoT Edge 1.6 LTS is supported until November 14, 2028, and 1.5 LTS support ends on November 10, 2026. Microsoft's own guidance now points new edge-based solutions to Azure IoT Operations, which runs on Arc-enabled Kubernetes.

Build it with Offline Protocol

Offline Protocol's backend delivery guide covers the job next to a gateway runtime, retaining readings and events on devices while offline and delivering them to your existing backend through an adapter, with acceptance reconciled afterwards.

Read the backend delivery guide