AWS IoT Greengrass Version 2 introduces new fundamental concepts for devices, fleets, and deployable software. AWS Greengrass aims to ease the task of setting up and managing IoT systems. Greengrass Version 2.0 adds new developer capabilities, including a revamped command-line interface and support for adding and removing pre-built components. Additionally, its edge runtime has been open-sourced.
Differences Between Greengrass Version 1 and Version 2
In AWS IoT Greengrass V1, the AWS IoT Greengrass Core software is a single package that contains the software and its features. AWS IoT Greengrass connectors are modules that you deploy to AWS IoT Greengrass V1 core devices.
In AWS IoT Greengrass V2, the AWS IoT Greengrass Core software is modular, so that you can choose what to install. The Greengrass nucleus component is the minimum required the installation of the AWS IoT Greengrass Core software that handles deployments, orchestration, and lifecycle management of other components.
In AWS IoT Greengrass V1, a group defines a core device, the settings and software for that core device, and the list of AWS IoT things that connect to that core device.
In AWS IoT Greengrass V2, you use deployments to define the software components and configurations that run on core devices. Each deployment targets a single-core device or an AWS IoT thing group that can contain multiple core devices.
In AWS IoT Greengrass V1, Lambda functions define the software that runs on core devices. In each Greengrass group, you define subscriptions and local resources that the function uses.
In AWS IoT Greengrass V2, components are the software that runs on core devices. Components can consist of any software, and each component has a recipe that defines the component’s metadata, parameters, dependencies, and scripts to run at each step in the component lifecycle.
In AWS IoT Greengrass V1, subscriptions specify where Lambda functions receive event messages to consume as function payloads. Functions subscribe to local publish/subscribe messages and AWS IoT Core MQTT messages.
In AWS IoT Greengrass V2, components manage their own subscriptions to local publish/subscribe and AWS IoT Core MQTT messages. In the component recipe, you define authorization policies to specify which topics the component can use to communicate.
In AWS IoT Greengrass V1, Lambda functions run in containers that you configure to access volumes and devices on the core device’s file system.
In AWS IoT Greengrass V2, components run outside containers, so you don’t need to specify which local resources the component can access. You can develop components that work directly with local resources on core devices.
You can run most AWS IoT Greengrass V1 applications on AWS IoT Greengrass V2. You can use AWS-provided components that offer the same functionality as AWS IoT Greengrass connectors, and you can import Lambda functions as components that run on AWS IoT Greengrass V2. AWS IoT Greengrass V2 has some additional features like Open-source edge runtime, Improved modularity, New local development tools, Improved fleet deployment features, these can come in handy while building IoT based EDGE Applications.