Companies like GE may think of the Internet of things in terms of aircraft engines, smart manufacturing, and hospital hygiene systems, but for many of us, the IoT “thing” is a much more prosaic device — like a Raspberry Pi or an Arduino with off-the-shelf sensors attached. If you want to build cloud applications that talk to these sorts of devices, Amazon Web Services has a lot to offer, not only in terms of SDKs and back-end services, but also starter kits with step by step instructions.
The AWS IoT service includes most of what you need to connect a single-board computer such as an Arduino or Raspberry Pi to the Amazon cloud. It can also be used with laboratory and industrial instruments that can support the protocols. You would typically connect your single-board computer locally to sensors and actuators that read from or act on the physical “thing” being monitored or controlled.
As you can see in Figure 1 below, you install an AWS IoT Device SDK on your device, along with a certificate and keys generated by Amazon. You typically use MQTT messages for communication with the device gateway and typically transport them over Wi-Fi to and from your local gateway.
Within the IoT back-end service, your messages go to a rules engine and update the persistent “shadow” of your device. Applications typically talk to device shadows, as the devices themselves are likely to have intermittent connectivity. For example, if you set a new target temperature for a smart thermostat from your authorized smartphone app, it will update the thermostat shadow even if the thermostat itself is offline; once the thermostat is online the IoT service will send it the new set point.
The rules engine can transform messages and route them to the device shadow and to other AWS services, such as an AWS Lambda function, or the DynamoDB database. In addition to these two services, you are likely to use the Amazon API Gateway, Amazon Kinesis, Amazon S3, and Amazon Redshift. You might also want to use Amazon Route 53 to provide DNS services for your devices.