The AWS IoT cloud platform now offers Lambda-based “AWS Greengrass” software for Linux IoT devices, enabling offline processing and communication.
In Oct. 2015, Amazon unveiled its AWS IoT platform for aggregating data to Amazon Web Services (AWS). The software, which runs on embedded devices including Linux hacker boards, is now being extended with an optional AWS Greengrass package that enables more autonomous, offline operation of Internet of Things devices.
AWS Greengrass lets AWS IoT devices “run local compute, messaging & data caching for connected devices in a secure way,” says Amazon. The software enables the devices to “respond quickly to local events, operate with intermittent connections, and minimize the cost of transmitting IoT data to the cloud.” In other words, AWS Greengrass tailors AWS IoT to better fit the often harsh realities of the embedded world.
AWS Greengrass conceptual diagram
(click image to enlarge)
AWS Greengrass has been released in a preview version for Linux devices that can run the AWS IoT Device SDK, such as the Raspberry Pi. The software extends the Device SDK with a Greengrass Core runtime version of Amazon’s Lambda cloud compute service. This allows connected devices to locally process data and talk amongst themselves without incurring the latency and bandwidth costs of continual cloud communications. In the case of remote devices, it also helps compensate for the challenges of intermittent connectivity.
AWS Greengrass can be programmed to filter device data to limit what is sent back to the cloud while still enabling cloud services including management, analytics, and durable storage. The software authenticates and encrypts device data at all points of connection, says the company.
Intel Edison with Arduino
AWS IoT kit
The software keeps devices in sync, and integrates with the AWS IoT Device SDK’s Device Shadow function, which caches the state of your device, and tracks the device’s current versus desired state. Devices can process messages and deliver them to devices based on user-defined business rules, using MQTT-based pub/sub messaging, whether or not any of the devices are connected at the time to the AWS IoT cloud.
Because AWS Greengrass uses AWS Lambda programming models, customers can develop and test device software in the cloud before deploying it to devices. Further access to Greengrass is available through the AWS Management Console, AWS APIs, and the AWS Command Line Interface (CLI).
AWS Greengrass runs on 1GHz or faster x86 or ARM devices with at least 128MB of RAM. It also requires persistent local storage. Examples are said to “range from a Raspberry Pi to a server-level appliance.” The software currently runs on distributions with Linux 4.4 or higher, and has been validated on Ubuntu and the Red Hat-based Amazon Linux.
AWS IoT conceptual diagram
(click image to enlarge)
The AWS IoT Device SDK can run on most Linux systems and hacker boards, as well as MCU-based boards. It’s available with IoT starter kits built around boards like the DragonBoard 410c, BeagleBone Green, and Intel Edison, supported with SeeedStudio’s Grove sensors and other add-ons. According to Yahoo Finance, Intel will use AWS Greengrass to develop an IoT asset-tracking solution meant for the industrial market.
While a growing number of embedded IoT platforms support cloud services, AWS
IoT with Greengrass tackles the problem from the cloud perspective. The idea is to deploy enterprise software on IoT gateways and endpoints in a consistent way. Another strategy along these lines is to bring container technology to IoT, as in the case of technologies like ResinOS and Ubuntu Core.
AWS Greengrass is available now in a preview version. Each AWS customer can connect up to three devices for one year at no charge. Beyond that, monthly costs for each device is $0.16 ($1.49 per year) for up to 10,000 devices. More information may be found in the AWS Greengrass announcement and website.