AWS IoT: A service for the Internet of Things
The AWS Re:Invent keynote session led by Dr. Werner Vogels (CTO at Amazon.com), on day 2, opened up new possibilities for the world of Information Technology. Imagine Virtualization combined with Internet of Things (IoT), and then presented to you as a service. This is now possible thanks to AWS’ new service, AWS IoT. It is currently in beta. AWS customers John Deere and BMW demonstrated how they are using this service to gain meaningful insights from their data in real-time. This blog will detail AWS IoT.
What is AWS IoT? AWS IoT (Internet of Things), is a service provided by Amazon Web Services. It allows various devices to connect with AWS and upload real-time data to AWS Storage Analytics, Storage, Analytics, DynamoDB, DynamoDB, S3, Kinesis, DynamoDB, etc. The data is then processed, and mapped to a running program. This feature is available even if the device is offline. AWS IoT allows you to securely connect and manage devices at any scale. You can use it through:
Devices: AWS offers SDKs that can be used to connect devices to AWS IoT. These SDKs are available in three categories:
C-SDK is ideal for embedded OS devices and uses C-programming.
Arduino Library: Ideal for Arduino Yun based devices.
Network: AWS IoT uses MQTT protocol to communicate with the devices. It is fault-tolerant and makes efficient use of network bandwidth. AWS supports HTTP to send data back to the cloud.
Security: AWS uses X.509 certificates as their primary method of authentication. AWS IoT also supports SigV4, an AWS method for authentication.
Data Collection: Device data can be transferred directly to AWS Services such as DynamoDB and Kinesis.
How does it work?
AWS IoT DeviceSDK: AWS IoT offers an SDK that allows you to quickly and easily connect your mobile device or hardware device. The AWS IoT DeviceSDK allows your devices to connect, authenticate and exchange messages with AWS IoT via the MQTT and HTTP protocols. It also includes the developer guide, client libraries, and porting guide.
Device Gateway: AWS IoT Device gateway allows devices to connect to AWS IoT efficiently and securely. The Device Gateway supports MQTT protocol and HTTP protocol. TLS (Successor SSL) is used to establish the communication. This process uses Publication/Subscription model, where sensors connected to various devices publish the data and do not know the details of the receiver(s) and the subscribers then receive this data. Device Gateway is built in a highly scalable environment that can support more than one billion devices without the need for additional infrastructure.
Rules Engine: The Rules Engine allows for message routing. The Rules Engine allows messages to be gathered, evaluated, and delivered across multiple cloud platforms or AWS Services such as S3, DynamoDB, etc. To filter your inbound data and deliver a better dashboard output, you can use simple SQL Statements.
Authentication and Authorization: Users can use the console or API to create, deploy, and manage certificates and policies for devices. These device certificates can then be provisioned, activated, and associated with relevant policies. Policies can be configured using AWSIAM. Users can also instantly revoke access to a particular device if necessary.
It is described as follows:Read Last Reported State: Allows you to read the previous state of the device (before it went offline).Set Desired Future State: Allows you to specify the future state that the device should be in after it is connected. It can be described as follows:Read Last Reported Status: This allows you to view the device’s previous state (before it went offline).Set Wishful Future State: This allows you to specify the future state that the device should be in after it is connected (or online).RESTAPI: Allows for y