Amazon launched their AWS IoT platform at the end of 2015 and it now has the ability to aid you in build smart systems that can filter, transform, and act upon separate device data in real-time, based on the business rules you define. As with many other managed services from AWS, they allow you to route these device-generated messages from many of their other managed services such as Kinesis, DynamoDB, Lambda, S3 and Amazon ML.
The fact that you can connect those services with auto-scaling services via OpsWorks or Elastic Beanstalk means that now more than ever a team of 1 or 2 can effectively build a system that would normally have required a team of 10 engineers.
Example Use Case
In order to illustrate to see how AWS IoT service can work with other AWS services, lets take a household with a CO2 Alarm like Foobot. This alarm detects elevated levels of CO2, so it sends a message to an endpoint within the Amazon ecosystem that adds it to a Kinesis stream. The IoT instance is listening for Kinesis messages, and when it detects on, it processes the data. Because the developer built a rule that explains what to do when Co2 levels are high, AWS IoT performs two actions: It alerts the user via a push message on their smartphone and then shuts off the furnace via Nest to avoid a potential disaster.
This is just one of many types of use cases for this type of service.
AWS IoT Review
I have spent a lot of time within the Amazon Web Services ecosystem, and this offering is very similar to other managed services developed by Amazon.
- Easy to scale
- Many APIs that are already built in that you do not have to build yourself.
- No maintenance of the underlying servers & hardware.
- More expensive compared to you spinning up your own servers.
- Limitations compared to if you spun up your own EC2 cluster to handle incoming messages.
- It is a newer service & AWS always releases these manages services with bare-bones functionality