IoT Core
AWS IoT Core is the platform that enables users to connect devices to AWS Services and other devices, secure data and interactions, and process and act upon device data
Key Features
AWS IoT Device SDK
The AWS-developed IoT Device SDK helps easily and quickly connect a hardware device to the AWS IoT core. The SDK is what is primarily used by the buoys to connect to AWS IoT Core using the MQTT protocol. There are a variety of SDKs available that support C, JavaScript, and Arduino, and includes client libraries and developer guides to help kickstart development.
Device Gateway
The Device gateway serves as the main entry point for IoT devices connecting to AWS. It is responsible for managing all active device communications and implements semantics for multiple protocols to ensure that devices are able to securely and efficiently communicate with AWS IoT Core. As of this moment, most buoys are connected using MQTT which allows for long-lived, bidirectional connections, enabling these devices to send and receive messages at any time with low latency. The device gateway is also a fully managed scalable infrastructure that can support up to a billion devices.
Authentication and Authorization
AWS IoT Core provides mutual authentication and encryption at all points of connection, this ensures that data is never exchanged between devices and IoT core without a proven identity. Since we are connected using MQTT, it uses a certificate-based authorization method.
AWS IoT core allows us to create, deploy, and manage certificates and policies for devices from the console or even through the use of an API. These certificates can then be provisioned, activated and associated with the relevant IoT policies that are configured using IoT Core. This is a powerful system as it allows us to revoke access to an individual device if we choose to do so.
Rules Engine
The Rules engine is a powerful system that makes it possible to built IoT applications that gather, process, analyze, and act on data generated by connected devices without having to manage any infrastructure. The Rules Engine evaluates inbound messages published into AWS IoT core and allows us to deliver that data into another device or a cloud service. These rules can apply to data from one or many devices and it can take one or many actions in parallel.
Rules can be created in the management console using SQL-like syntax. Rules can also be authored to behave differently depending upon the content of the message. We can manipulate the body of the received data by inserting additional meta info. Or we could trigger an action based off thresholds within the data.