freshidea - Fotolia


AWS IoT platform delivers a world of data

For many IT shops, the Internet of Things is still more theoretical than practical. But AWS IoT is closing that gap, allowing IT teams to put the concept to work.

The Internet of Things is an emerging technology that promises to connect billions of discrete data-driven devices...

to the global network. But IoT isn't just about connectivity -- it's about gathering, managing, storing, processing and making intelligent decisions from the data that those devices generate. The AWS IoT platform addresses evolving device connectivity and data processing.

AWS IoT is a managed cloud service that supports fast, low-latency connectivity between different devices -- or between devices and cloud applications. The idea is to provide a platform that moves and processes an enormous volume of small messages from external devices, and then stores and processes that data using applications built with AWS cloud products. The AWS IoT platform can handle billions of devices and trillions of messages, so businesses can potentially field and communicate with an incredibly large volume of discrete devices.

Applications that store and process device data run within traditional virtual machines, such as Amazon EC2 instances. But AWS' data management tools can also integrate other products, including AWS Lambda, Amazon S3 instances, Amazon Machine Learning and Amazon DynamoDB.

So, how does this system work?

The AWS IoT platform starts and ends with connected devices (endpoints), and there are no limits to the number of devices or what they can do. Devices can include any types of sensors, measuring such criteria as temperature, pressure, acceleration, position and motion. These sensors are actuators that affect things in the real world -- like motors, valves and light, and sound devices, as well as portable and wearable devices and appliances. These devices can send and receive data or commands depending on the device and its purpose.

AWS IoT is a managed cloud service that supports fast, low-latency connectivity between different devices -- or between devices and cloud applications.

But all of these devices must connect to the Internet. This normally requires the addition of a dedicated communication transceiver chip that can convert real-world information into data, apply a unique IP address to the device and then pass the device's data across a cabled or wireless connection to the Internet. In this case, the destination would be the AWS IoT Device Gateway.

The AWS IoT Device Gateway exchanges device data with cloud applications that were created to process the information. Data processing results are then passed back across the gateway in the form of commands to selected devices. For example, a motion sensor indicates a person's presence in a room; that data is processed, and the application sends a signal to turn on a corresponding lamp (actuator) in response. After a period of no motion, the lamp turns off again. The motion sensor and lamp can be the same IoT device, meaning they share the same IP address.

The AWS IoT platform supports secure data protocols, including HyperText Transfer Protocol Secure, WebSockets and a secure version of machine-to-machine data transfer protocol designed for IoT usage. In addition, every IoT device, application and end user must use strong authentication like AWS Identity and Access Management, X.509 certificates or other authentication schemes to ensure security.

Once device data arrives at the AWS IoT Device Gateway, administrators can apply rules using a rules engine to route or process data. The data can also be passed to other AWS tools, like DynamoDB or Amazon ElasticSearch Service and to non-AWS architecture or resources, such as a local data center, for additional processing, analysis or storage.

AWS IoT tracks connected devices using a device registry. Each device can be represented as a logical abstraction that contains its properties. It can be cumbersome for developers to communicate with granular device hardware, but this abstraction -- called a device shadow -- can make it easier. With a device shadow, developers can use uniform, higher-level APIs to pass selected data between a device and cloud application, though direct hardware-level device interaction is still possible.

Putting the AWS IoT platform to work

While AWS IoT can ingest huge amounts of data from countless connected devices, all of that data is useless unless it is processed and stored. While this can be accomplished with applications running in EC2 instances, AWS IoT integrates with many other Amazon cloud services to move, filter, change, store and process data from connected devices.

AWS IoT uses a rules engine to integrate IoT with other services. Rules can be created through the AWS command-line interface or the AWS Management Console. Each rule includes a name, description, statement and actions; rule names and descriptions provide text designations that help identify and organize rules.

Statements are typically SQL-based, outlining details for the rule, including the resource, how data should be transformed or filtered and the conditions for when the rule should run. A developer can assign one or more actions to each statement to define what happens when that rule is applied. Such actions could include inserting data into a DynamoDB table, saving data to an S3 instance or launching a Lambda function.

After the rules are created, admins must manage and monitor them. Rules are initially created using a menu system, but can be edited in detail afterward, as needed. All rules are based on JavaScript Object Notation (JSON); admins can edit the JSON code using the AWS Management Console. Rules also can be viewed, reviewed and deleted via the console.

Administrators and developers can also follow the behavior of AWS IoT rules using Amazon CloudWatch logs. Once CloudWatch is authorized and configured to receive log data from AWS IoT, administrators can review the logs to determine which rules were triggered, the result of that rule trigger -- its success or failure -- and the matching conditions within each triggered rule.

Admins can also analyze CloudWatch logs to debug IoT rules and make sure newly created rules work properly. AWS IoT rule troubleshooting further allows administrators and developers to identify improperly functioning rules or trace improper conditions or actions.

Watch the costs

Developers should closely evaluate the costs involved with the AWS IoT platform. Not only will IoT data processing demand storage and compute instances, but IoT rules can trigger support for other services such as AWS Lambda, ElasticSearch and Auto Scaling. This can produce millions or even billions of new actions and drive up the costs of associated services. Analyzing the operating costs in development can help prevent sticker shock at the end of every AWS billing cycle -- and keep the IoT project on track.

Next Steps

AWS IoT connects devices to the cloud

AWS dives into the IoT sphere

Amazon and IoT go hand in hand

Dig Deeper on AWS tools for development