This document provides an overview of IoT and the AWS IoT platform. It discusses key IoT concepts like MQTT and smart home devices. It then details various aspects of the AWS IoT architecture including AWS IoT Core services, security, and pricing. Device SDKs and protocols are covered, as well as how AWS IoT integrates with other AWS services like Lambda, S3, DynamoDB through the AWS IoT rules engine. Device shadowing and registry services are also summarized. Finally, AWS IoT is compared to the Azure IoT Suite in terms of features.
15. AWS IoT
DEVICE SDK
Set of client libraries to
connect, authenticate and
exchange messages
DEVICE GATEWAY
Communicate with devices via
MQTT and HTTP
AUTHENTICATION
AUTHORIZATION
Secure with mutual
authentication and encryption
RULES ENGINE
Transform messages
based on rules and
route to AWS Services
AWS Services
- - - - -
3P Services
DEVICE SHADOW
Persistent thing state
during intermittent
connections
APPLICATIONS
AWS IoT API
DEVICE REGISTRY
Identity and Management of
your things
16. AWS IoT Message Broker
DEVICE GATEWAY
Communicate with devices via
MQTT and HTTP
17. AWS IoT Device Gateway
Standard Protocol Support (no lock-in)
Millions of devices and apps can connect
over any protocol starting with MQTT and
HTTP 1.1
Powerful Pub/Sub Broker with Long-
lived bi-directional messages
Clients (Devices and Apps) can receive
commands and control signals from the
cloud
Secure by Default
Connect securely via X509 Certs and TLS
Client Mutual Auth1.2
Topic Based
Architecture
(lights/thing-2 )/color
Highly Scalable
Device Gateway
18.
19. AWS IoT Security: Authentication
Secure with mutual
authentication and encryption
AUTHENTICATION
20. AWS IoT Rules Engine
RULES ENGINE
Transform messages
based on rules and
route to AWS Services
21. AWS IoT Rules Engine Basics
Simple & Familiar Syntax
- SQL Statement to define topic filter
- Optional WHERE clause
- Advanced JSON support
Functions improve signal : noise
- String manipulation (regex support)
- Mathematical operations
- Context based helper functions
- Crypto support
- UUID, Timestamp, rand, etc.
SELECT * FROM ‘things/thing-2/color’
WHERE color = ‘red’
22. AWS IoT Rules Engine’s Flexibility
SELECT *, clientId() as MQTTClientId
FROM 'one/rule'
WHERE
startsWith(topic(2), 'IME33') AND
(state = 'INIT' OR hydro_temp >
surface_temp)",
"actions":
[{
"republish": {
"topic":
"controllers/${substring(topic(3),
3, 5)}",
}]
23. AWS IoT Rules Engine
Complex Evaluations
Respond to the fleet, not just a single unit. Dozens of functions() available
Multiple / Simultaneous Actions
Sometimes a situation requires you to take many actions
24. AWS IoT Rules Engine Actions
RULES ENGINE
Transform messages
based on rules and
route to AWS Services
AWS Services
- - - - -
3P Services
AWS Services
- - - - -
3P Services
25. AWS IoT Rules Engine
. AWS Services1
)Direct Integration(
Rules Engine
Actions
AWS
Lambda
Amazon
SNS
Amazon
SQS
Amazon
S3
Amazon
Kinesis
Amazon
DynamoDB Amazon RDS
Amazon
Redshift
Amazon Glacier
Amazon
EC2
. External3 Endpoints
via Lambda and SNS( )
Rules Engine connects AWS
IoT to External Endpoints and
AWS Services.
. Rest of AWS2
via Amazon Kinesis, AWS(
Lambda, Amazon S3, and
more)
26. AWS IoT Rules Engine Actions
Rules Engine evaluates inbound
messages published into AWS
IoT, transforms and delivers to the
appropriate endpoint based on
business rules.
External endpoints can be
reached via Lambda and Simple
Notification Service (SNS).
Invoke a Lambda function
Put object in an S3 bucket
Insert, Update, Read from a
DynamoDB table
Publish to an SNS Topic
or Endpoint
Publish to an Amazon Kinesis
stream
Actions
Amazon Kinesis Firehose
Republish to AWS IoT
27. AWS IoT Rules Engine & Amazon SNS
Push Notifications
Apple APNS Endpoint, Google GCM Endpoint, Amazon ADM Endpoint, Windows WNS
Amazon SNS - )HTTP Endpoint (Or SMS or Email>
Call HTTP based 3rd
party endpoints through SNS with subscription and retry support
SNS
2
28. AWS IoT to AWS Lambda
Lambda Function
Rules Engine
PolicyPrivate Key
& Certificate
Thing/Device
Rule
SDK
AWS IoT AWS Services
Execution
Role
Policy
External Endpoint
Permission
Select * from ‘iotbutton/+’
Action
29. AWS IoT Thing Shadow
THING SHADOW
Persistent thing state
during intermittent
connections
SHADOW
Persistent thing state
during intermittent
connections
APPLICATIONS
31. AWS IoT Shadow Flow
Shadow
Device SDK
. Device Publishes Current State1
2. Persist JSON Data Store
3. App requests device’s current state
4. App requests change the state
5. Device Shadow sync’s
updated state
6. Device Publishes Current State
7. Device Shadow confirms state change
AWS IoT
32. AWS IoT Device Shadow - Simple Yet
Powerful
{
"state" : {
“desired" : {
"lights": { "color": "RED" },
"engine" : "ON"
},
"reported" : {
"lights" : { "color": "GREEN" },
"engine" : "ON"
},
"delta" : {
"lights" : { "color": "RED" }
} },
"version" : 10
}
Thing
Report its current state to one or multiple shadows
Retrieve its desired state from shadow
Mobile App
Set the desired state of a device
Get the last reported state of the device
Delete the shadow
Shadow
Shadow reports delta, desired and reported
states along with metadata and version
33. AWS IoT Device Shadow Topics (MQTT)
Thing SDK (C-SDK, JS-SDK)
makes it easy for you build shadow
functionality into your device so it
can automatically synchronize the
state with the device.
AWS IoT Thing Shadow
UPDATE: $aws/things/{thingName}/shadow/update
DELTA: $aws/things/{thingName}/shadow/update/delta
GET: $aws/things/{thingName}/shadow/get
DELETE: $aws/things/{thingName}/shadow/delete
Sensor Reported Desired Delta
LED1 RED YELLOW
LED1 =
Yellow
TEMP = 60F
ACCEL X=1,Y=5,Z=4 X=1,Y=5,Z=4
TEMP 83F F60
34. AWS IoT Registry
• Static attributes associated to Thing
• Firmware version
• Serial Numbers
• Device Type
• Device Group
• Device Description
• Sensor description
• Support and Maintenance
• Reference Manual URL
• Part # reference
• Reference to external support system
35. AWS IoT - Device Management
S3 Holds Versioned Firmware Distributions
Organize and secure your firmware binaries in S3
Message Broker notifies groups of the fleet using Topic Patterns
Alert the fleet (or part of it) of the update, and send the URL to the S3 download
Firmware Update
Stored in S3
Publish to groups of devices
• Ability to update global
or within a Region
• Rules Engine keeps
state of updates and
tracks progress in a
DynamoDB Table
• Store Version in
Registry Entry
36. Simple Pay as you go and Predictable Pricing
• Pay as you go. No minimum fees
• $5 per million messages published to, or delivered
in US East (N. Virginia), US West (Oregon), EU
(Ireland) $8 in Asia Pacific (Tokyo)
AWS IoT
Free Tier
250,000 Messages Per Month Free for first 12
Months
37. Get Started with AWS IoT Device SDK
C-SDK
(Ideal for embedded
OS)
JS-SDK
(Ideal for Embedded
Linux Platforms)
Arduino Library
(Arduino Yun)
Mobile SDK
(Android and iOS)
38. AWS IoT vs Azure IoT Suite
MICROSOFT AZURE IOT AMAZON AWS IOT
Protocols
HTTP, AMQP, MQTT and custom
protocols
HTTP, MQTT
Communication Patterns Telemetry, Command
Telemetry, Command (state
change)
Certified Platforms
Intel, Raspberry Pi 2, Freescale,
Texas Instruments,
MinnowBoard, BeagleBoard,
Seeed, resin.io
Broadcom, Marvell, Renesas,
Texas Instruments, Microchip,
Intel, Mediatek, Qualcomm,
Seeed, BeagleBoard
Device SDK / Language .Net and UWP, Java, C, NodeJS C, NodeJS
Security TLS (only server authentication) TLS (mutual authentication)
Authentication Per-device with SAS token
X.509 certificate client
authentication, IAM service,
Cognito service
Pricing
Paying for IoT Hub unit related to
number of devices and messages
per days
Paying million messages traffic
(published from devices +
delivered to devices)