Thursday, September 08, 2016

AWS Kinesis and AWS IoT services

Amazon Kinesis Service: is a platform for streaming data on AWS. It helps to load and analyze streaming data and build custom applications like:
  • 1.     Recommendation engine.
  • 2.     Real-time metering and billing system.
  • 3.     Loading data from transactional databases to data warehouses can use Kinesis for temporary durable storage of data in transit.

Data generated by web applications, mobile devices, IoT sensors, wearable devices etc. can be in the tune of TBs/hr. This data needs to be collected in real-time and processed and stored continuously. Amazon Kinesis service enables one to do this.

The streaming data can be captured and submitted to Amazon Kinesis Firehose, which loads streaming data continuously into S3, Redshift and Amazon Elasticsearch domains. The streaming data is then analyzed from these stores using Business Intelligence tools.

Amazon Analytics: enables running standard SQL queries against data streams. Kinesis analytics can then be used to feed into other analytics tools.

AWS IoT: enables device to device and device to cloud applications communication. It can support billions of devices exchanging trillions of messages and can process and route those messages to AWS endpoints and to other devices reliably and securely. AWS IoT services can be used to build IoT applications that gather, process, analyze and act on data generated by connected devices, without having to manage any infrastructure.
It supports the following communication protocols:
1.     HTTP
2.     Websockets
3.     MQTT

The connection between devices and application are authenticated at AWS IoT service and only authenticated users are allowed to control the state of the device or the authenticated device connections to AWS IoT endpoints are allowed.

At AWS IoT service, one can filter, transform and act upon device data on the fly (say invoke a lambda function). The last state of device is persisted which can be read even when the device goes offline. The state change for the device can be requested while it is offline to be implemented on the device when it is online again by AWS IoT backend.

 How it works: 

Comparison of IoT  supported across cloud providers: 

IBM IoT Foundation
Microsoft IoT
HTTP, MQTT, Websockets, custom protocols
HTTP, AMQP, MQTT and custom protocols
Certified Hardware Platforms
Broadcom, Marvell, Renesas, Texas Instruments, Microchip, Intel, Mediatek, QualComm, Seeed, BeagleBoard
ARM mbed, Texas Instruments, Raspberry Pi, Arduino Uno, Intel
Intel, Raspberry Pi 2, Freescale, Texas Instruments, MinnowBoard, BeagleBoard, Seeed,
Paying million messages traffic (published from devices + delivered to devices)
Paying related to number of devices, data traffic and storage.
Paying for IoT Hub unit related to number of devices and messages per day
Communication Patterns
Telemetry, Command
Telemetry, Command
Telemetry, Command
C, Node.js
C, C#, Python, Java, Node.js
.Net, Java, C, Node.js
TLS (mutual auth)
TLS (sever only auth)
X.509 certificate client authentication, IAM service, Cognito service
Per-device with token
Per-device with SAS token

No comments: