Caylent Catalysts™
IoT
Connect, understand, and act on data from industrial devices at scale to improve uptime, efficiency, and reliability across manufacturing, energy, and utilities.
Go beyond lift-and-shift: Re-platform your AWS IoT Greengrass V1 apps to V2 with this guide covering key architectural changes and a starter migration plan.
This blog was originally written and published by Trek10, which is now part of Caylent.
That said, when AWS “strongly recommends” that customers migrate to AWS IoT Greengrass V2 (henceforth, V2), it is well worth the effort to understand what this entails and then draw a roadmap toward migration if your business has critical workloads running on Greengrass V1. Because AWS already provides a thorough “lift-and-shift” migration plan in their documentation, in this post I will instead focus on re-platforming a Greengrass V1 application to start fresh and fully leverage all the features that V2 has to offer. First, I will clearly delineate the architectural differences between V1 and V2, and then I will present a starter V1 to V2 re-platforming plan.
Here’s what you need to know in a nutshell:

Figure 1 - comparison between static application blocks in V1 and dynamic components in V2
V2 overhauls this subscriptions-based mechanism by providing an Interprocess Communication (IPC) system. You may think of this as a data bus shared amongst all Components. Every Component can use the IPC interface to interact with any other Component so long as its authorization policy allows it. For example, a Component whose function is to read data from a sensor can then send its readings to the MQTT Broker Component which then relays the data up to AWS IoT Core.

Figure 2 - comparison of V1’s subscription-based communication and V2’s IPC system
In V2, by contrast, deployments can be deployed to a single Greengrass Core device or to an AWS IoT Thing Group containing multiple core devices. A deployment in V2 is simply a collection of Components and their associated settings.

Figure 3 - comparison of V1’s groups and V2 deployments
The overall pattern here is moving away from having static and prescriptive architectures in V1 towards modularized, highly dynamic architectures in V2. There are a few other smaller changes that you may view in the official V1 and V2 differences guide, but the items above cover the fundamentals, plus a bit more.
To migrate your Greengrass application from V1 to V2, you may start off with the following steps:
If you need packaged applications (perhaps some that run both in the Cloud and at Edge), Lambda functions or Docker containers could be a good choice to port your code. If you need access to system resources or specialized libraries or applications (such as when you have sensor reading logic that relies on specific application drivers) a system process or custom runtime may be a better fit.
Each of these new application Components will likely need to communicate with each other or with the cloud, so the next step is to…
One key thing to note is the MQTT broker in V2 is a Component that must be configured to relay messages published locally by client devices to AWS IoT Core–this relay doesn’t happen automatically as it would under a V1 Subscription definition (revisit Figure 2 above).
Once you’re done re-architecting your Greengrass application, you will want to begin setting up proper security policies for your client devices, Components, and Core devices, as well as establishing proper device management processes like CI/CD pipelines, deployment strategies, fleet monitoring, and incident response playbooks.
Founded in 2013, Trek10 helped organizations migrate to and maximize the value of AWS by designing, building, and supporting cloud-native workloads with deep technical expertise. In 2025, Trek10 joined Caylent, forming one of the most comprehensive AWS-only partners in the ecosystem, delivering end-to-end services across strategy, migration and modernization, product innovation, and managed services.
View Trek10's articlesCaylent Catalysts™
Connect, understand, and act on data from industrial devices at scale to improve uptime, efficiency, and reliability across manufacturing, energy, and utilities.
Caylent Services
Reliably Operate and Optimize Your AWS Environment
Caylent Services
Quickly establish an AWS presence that meets technical security framework guidance by establishing automated guardrails that ensure your environments remain compliant.
How to properly configure an EC2 instance to run a Greengrass Deployment to use as a development environment.
Run Lambda functions locally and save time and money by using this open-source solution for IoT devices.
Continuing a journey into AWS IoT, this post examines how to use IoT Core rules to format and route messages to destinations within the AWS ecosystem.