- Periodic Table of Realtime
- AWS IoT
The Internet of Things (IoT) is a type of system that connects physical things in the real world to the internet. These systems can be used to monitor, analyze, or control different physical things. This includes sensors, microcontrollers, and devices that can be used to turn homes, factories, farms, machines, and cars into smarter systems. IoT can be used in industrial applications, home automation, and commercial applications among others.
AWS IoT exists to provide a back-end system for sensors that detects and measures changes in the physical world. The IoT service was announced at AWS re:Invent in 2015, in order to help developers create and manage IoT applications. It connects devices using various protocols such as HTTP, MQTT, and WebSockets. One can map roles and policies for devices, outlining what they can and can’t do, as well as revoke access to devices.
AWS IoT lets you connect, analyze, and collect device data, allowing you to create applications around the data that your devices generate. It is, in fact, a suite of tools that each solves a problem around connecting devices to the cloud.
AWS IoT tools
IoT Core lets devices interact with cloud applications or other devices. Its Device Gateway allows devices to communicate using the pub/sub messaging pattern to efficiently and securely communicate to IoT Core. Devices publish messages to channels called topics, and the client can subscribe to receive changes. Device Gateway handles scaling automatically and it supports secure communication using an X.509 certificate or Amazon Cognito Identities over a TLS connection.
IoT Device Management helps manage, track, and monitor a fleet of devices. It allows for managing permissions in bulk, sending firmware updates over-the-air (OTA), which is important when managing many devices.
AWS IoT Device Defender is a managed service that keeps devices secure, by continuously making security audits for the device configurations, so that they don’t deviate from security best practices.
AWS IoT Analytics a managed analytics service that can handle large volumes of IoT data, allowing for making decisions based on insights gathered by the analytics platforms.
AWS IoT Greengrass extends the capabilities offered by the cloud to devices. Devices can collect and analyze data closer to where the source of data is collected, allowing for lower reaction time between processing and collecting data. Edge devices can run Docker containers, Lambda functions, and machine learning models even when there is no internet connection. It lets devices communicate securely with each other over local networks.
Amazon FreeRTOS integrates the FreeRTOS kernel, an open-source operating system for microcontrollers, designed for connecting small and low-power devices to AWS.
Benefits of AWS IoT
One of the main benefits of using AWS IoT is that it’s a flexible tool, solving issues regarding managing and updating edge devices. Once connected to the cloud, your system can leverage a vast ecosystem of other cloud services. 51.8% of the participants of a 2018 survey by the Eclipse Foundation use AWS for building IoT solutions. Engineers like the platform as well since it supports various popular programming languages. Additionally, AWS IoT Device SDK is open source, allowing developers to explore the library when creating solutions using it.
Another benefit of using AWS IoT includes the high-security standard provided by the cloud platform. It uses the X.509 certificates over HTTPS. And it is integrated with IAM, allowing you to manage access to AWS services and resources, by creating and managing groups, and permissions to allow and deny access to resources.
Furthermore, AWS IoT solutions give developers the ability to leverage serverless architecture. This allows creating solutions without having to manage servers or focus on scaling, as is needed when provisioning your own instances. Because the code is written in smaller functions that are executed in the AWS platform where you only pay for the duration these functions are executed, the cost is reduced. Since AWS is responsible for handling the environment the functions are being executed in, developers don’t have to manage any scaling-related issues, as they would in a more traditional server environment. This is very suitable for startups.
A final benefit is AWS IoT Device Defender: it monitors the device fleet for any abnormal activity, which might be an indicator of a security issue. It monitors the device configuration, in order to ensure that it doesn’t deviate from any security best practices. If a spike in outbound traffic occurs from a device, it could be an indication of a DDOS attack, something which has plagued IoT devices in the past.
Downsides of using AWS IoT
By using AWS IoT you are locking yourself into the AWS ecosystem. Alternative service providers include Oracle IoT, Azure IoT, IBM IoT, and GCP IoT. Recent surveys done by the Eclipse foundation shows that adoption for IoT middleware has AWS at a slight edge by 35%, followed by Azure 31% and GCP at 30%. This indicates a very competitive market for IoT middleware, with developers not having a strong preference for one cloud provider over the other.
You can also develop your own systems for managing and updating your IoT devices if you have the ability to create your own device software that makes it easy to manage and deploy changes yourself. For instance, you could develop containerized software for devices, and use another AWS service such as AWS Elastic Container Registry to distribute software to edge devices. However, creating your own software for managing edge devices can be difficult, especially keeping up with security best practices that are evolving over time.
APNs is a cloud service that enables third-party developers to push notifications to applications on Apple devices over a secure connection.
Amazon Kinesis Data Streams
Kinesis Data Streams is a scalable and durable realtime data streaming service.
Learn about RethinkDB, an open-source scalable JSON DB management system for realtime web applications that require continuously updated query results.