AWS IoT (Amazon internet of things) is an Amazon Web Services platform that collects and analyzes data from internet-connected devices and sensors and connects that data to AWS cloud applications. AWS IoT can collect data from billions of devices and connect them to endpoints for other AWS tools and services, allowing a developer to tie that data into an application.
An AWS user accesses AWS IoT with the AWS Management Console, software development kits (SDKs) or the AWS Command Line Interface. An application accesses the service through AWS SDKs. AWS IoT APIs are divided into the control plane, which includes service configuration, device registration and logging; and the data plane, which includes data ingestion.
The IoT service includes a Rules Engine feature that enables an AWS customer to continuously ingest, filter, process and route data that is streamed from connected devices. A developer can configure rules in a syntax that's similar to SQL to transform and organize data. The feature also allows the user to configure how data interacts with other big data and automation services, such as AWS Lambda, Amazon Kinesis, Amazon Machine Learning, Amazon DynamoDB and Amazon Elasticsearch Service. Each rule consists of an SQL statement and an action list that defines and executes the rule using an editable JSON-based schema.
Device Shadows is an optional rule that enables an application to query data from devices and send commands through REST APIs. Device Shadows provide a uniform interface for all devices, regardless of limitations to connectivity, bandwidth, computing ability or power.
The optional Device Registry feature lets a developer register and track devices that are connected to the service, including metadata for each device such as model numbers and associated certificates. A developer can define a Thing Type to manage similar devices according to common characteristics. Each Thing associated with a Thing Type can have up to 50 attributes and three searchable attributes. A developer can also opt to have applications communicate directly to the IoT service.
A developer can also use open-source AWS IoT Device SDKs to optimize memory, power and network bandwidth consumption for devices. Amazon offers AWS IoT Device SDKs for the C and Node.js programming languages.
AWS IoT supports HTTP, MQTT and WebSockets communication protocols between connected devices and cloud apps through the Device Gateway, which provides secure two-way communication while limiting latency. The Device Gateway scales automatically, removing the need for an enterprise to provision and manage servers for a pub/sub messaging system, which allows clients to publish and receive messages from one another.
AWS requires devices, applications and users to adhere to strong authentication policies via X.509 certificates, AWS Identity and Access Management credentials or third-party authentication via Amazon Cognito. AWS encrypts all communication to and from devices.
AWS IoT offers a free tier of service. Beyond that tier, a customer is charged according to the number of published messages.