The AWS re:Invent keynote session by Dr. Werner Vogels (CTO, Amazon.com) on day 2 unleashed a new set of possibilities to the world of Information Technology. Imagine Virtualization clubbed with Internet of Things (IoT) and then brought in front of you as a service. And this is now a reality since AWS has launched a new service called AWS IoT, which is currently available in beta version. When it comes to possibilities, AWS customers like BMW and John Deere showed how this service is being used by them to derive meaningful insights from their data in real time. In this blog, I’ll be describing AWS IoT in detail.
What is AWS IoT?
AWS IoT (Internet of Things) is a service by Amazon Web Services, which helps various devices to connect to AWS and upload their real-time data to AWS Storage, Analytics, Database Services like S3, Kinesis, DynamoDB etc. The data is then processed and mapped to a running application. This feature is also available even when the device is offline.
AWS IoT provides a secure way to connect and manage the devices at any scale. It can be leveraged through:
Devices: AWS provides SDKs for devices which can be used to connect to AWS IoT.These SDKs are freely available in 3 categories:
- C-SDK: Ideal for devices with embedded OS and uses C -programming.
- Arduino Library: Ideal for Arduino Yun based devices.
Network: AWS IoT makes use of MQTT protocol to talk to the devices, since it is highly fault tolerant and also makes efficient use of network bandwidth. Also, AWS supports HTTP to transfer data back to the cloud.
Security: When it comes to security, AWS uses X.509 Certificates as their primary means of authentication. In addition, AWS IoT supports AWS method of authentication called SigV4.
Data Collection: The data that is collected from devices can be directly moved to AWS Services like DynamoDB, Kinesis, S3 etc.
How does it work?
AWS IoT Device SDK: AWS IoT provides an SDK to help you easily and quickly connect your hardware device or your mobile application. The AWS IoT Device SDK enables your devices to connect, authenticate, and exchange messages with AWS IoT using the MQTT or HTTP protocols, Arduino, includes the client libraries, developer guide, and porting guide for manufacturers.
Device Gateway: AWS IoT Device Gateway enables devices to connect to AWS IoT securely and efficiently. The Device Gateway supports MQTT and HTTP protocol. The communication is established over TLS (Successor to SSL). 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 using a highly scalable environment and can support more than a billion devices without provisioning additional infrastructure.
Rules Engine: The Rules Engine is a method for message routing, where the messages that have been published will be gathered, evaluated and delivered across various cloud platforms or AWS Services like S3, DynamoDB etc. You can use simple SQL Statements to filter your inbound data to deliver a better output to dashboard.
Authentication and Authorization: A user can create, deploy, manage certificates and policies for the devices using the console or the API. These device certificates can be provisioned, activated and associated with relevant policies which can be configured using AWS IAM and allows users to instantly revoke access for an individual device if needed.
Device Shadows: AWS IoT allows persistent state or a Shadow state, where data can still be read or evaluated from the devices if they are offline. It is described as below:
Read Last Reported State: Allows you to read the previous state of device (before it went offline).
Set Desired Future State: Allows you to specify the state in which the device should be after it is connected (or online).
REST API: Allows you to build applications more easily which will interact with the devices using REST APIs.
Registry: The Registry establishes an identity for devices and tracks metadata such as the device’s attributes and capabilities. The Registry assigns a unique identity to each device which is consistently formatted regardless of the type of device or how it connects. It also supports metadata that describes the capabilities of a device, for example whether a sensor reports temperature, and if the data are Fahrenheit or Celsius.
Prices are based on the number of messages published to AWS IoT (Publishing Cost), and the number of messages delivered by AWS IoT to devices or applications (Delivery Cost). AWS will not charge you on deliveries on other AWS Services like S3, Lambda etc.
The AWS IoT free tier gets you started with 250,000 free messages (published or delivered) per month, for 12 months.
Currently, AWS IoT can be opted for in 4 regions:
|US East (N. Virginia)||$5 per million messages|
|US West (Oregon)||$5 per million messages|
|EU (Ireland)||$5 per million messages|
|Asia Pacific (Tokyo)||$8 per million messages|
AWS IoT is currently available in the BETA Version. You can sign in to AWS Console and find it in the Services tab. Keep following for more updates on AWS IoT and other Services.