When Amazon acquired the IoT platform 2lemtery in March this year, its focus on IoT started to become clearer. Soon after Microsoft announced IoT support as one of the primary things in its cloud strategy, Amazon announced its IoT platform, AWS IoT, at the re:Invent developer conference in Las Vegas in October.
It is being touted as the sure shot winner in the business of Internet of Things. Amazon has got quite a few things right in its platform and it is pretty clear that the Amazon team has put a lot of thought into the real-time requirements and scenarios while creating this platform. Amazon’s preparedness is also apparent from the fact that at the time of launch itself, in partnership with Intel, TI and other such hardware vendors, AWS has shipped starter kits. These kits include integrated native SDKs to help in immediately getting started with the prototype development. The native C SDK makes integration of low-level embedded devices and AWS IoT possible and easy.
In this blog, we provide you a detailed overview of various AWS IoT components, supported protocols, SDKs, security and authentication aspects, some unique features and the pricing model.
AWS IoT Components
Things are devices such as cars, factory floors, or aircraft engines etc. which can be of any type, shape, and size. These devices measure and/or control certain aspects in their environment. Driven by state and state changes of Things, the AWS IoT model depends on the names, attributes, and shadows of the Things.
The Rules Engine, expressed using a SQL-like syntax, transforms messages based on defined expressions. It routes the messages to AWS endpoints such as Amazon DynamoDB, Amazon Simple Storage Service (S3), AWS Lambda, Amazon Simple Queue Service (SQS), Amazon Kinesis, etc. The contents and context of the individual message drive the routing of the message.
The Message Broker which understands MQTT as well as HTTP 1.1 protocol also enables the devices to leverage alternative protocols even if the cloud backend does not necessarily support them. The Message Broker is capable of scaling to accommodate billions of connections between Things and the cloud applications. Things communicate with the Message Broker using a topic-based pub/sub model or by publishing via HTTP request/response. Using a pub/sub model, a single device can share its status with millions of other devices.
Device SDKs are individual device-specific client libraries. The SDKs allow running of the code on the device and facilitate communication with the Message Broker over encrypted connections. X.509 certificates or Amazon Cognito identities are used by the devices to identify themselves.
Apart from assigning a unique identity to each Thing, the Thing Registry tracks detailed metadata (attributes and capabilities etc.) for each Thing.
Thing Shadows, a unique feature in AWS IoT, are the cloud-based, virtual representations of Things. By maintaining the state of each connected device, Thing Shadows provide offline capabilities for communication with devices even if the Things lose connectivity for an extended period of time.
Through support for standard preferred protocols like HTTP 1.1, MQTT, and other custom protocols, Amazon has made it easier for the developers to capture incoming data from devices even if they are using a variety of different protocols.
Supported SDKs/ Languages
To make things simpler for developers, AWS IoT has provided device SDKs (all open-source) for C, Node.js, and also the Arduino Yún platform. Through partnerships with hardware manufacturers, the AWS IoT Device SDKs are available on other IoT, embedded OS, and micro-controller platforms.
Security and Authentication
With its security-first approach, AWS IoT platform has made one of the best decisions and has set the bar pretty high.
Under AWS IoT, devices need to use AWS SigV4 (AWS method of authentication) or use X.509 certificates to connect to the IoT cloud.
Through the requirement of first generating and deploying a certificate within the device, Amazon has probably shown its interest in targeting only the serious developers. The devices which are not capable of managing security by themselves will need a hub or a local gateway for handling the authentication and authorization on their behalf.
Tight integration with IAM (Amazon’s authentication engine) and support for Cognito for mobile apps add additional security layer.
Amazon has made sure that the pricing does not act as a deterrent for AWS IoT adoption. The payment mode is “pay for use only” with no minimum fees.
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) decide the pricing with no charge for deliveries to specific AWS services.
The free tier offers 250,000 free messages (published or delivered) per month, for 12 months.
While the existing AWS customers clearly have no reason to look for any other IoT platform, AWS IoT’s appeal can attract virtually anyone to be AWS customer.