internet of things on aws

32
IoT on AWS Dean Bryen AWS Solutions Architect @deanbryen [email protected]

Upload: amazon-web-services

Post on 07-Jan-2017

1.845 views

Category:

Technology


0 download

TRANSCRIPT

IoT on AWS

Dean BryenAWS Solutions Architect

@[email protected]

What to Expect from the Session

• Overview of AWS IoT

• Message Broker

• Rules Engine

• Thing Shadow

• Thing Registry and Security

• Thing SDK

• AWS IoT Hardware Program

Things are Becoming Connected

NowNot too long

from now Soon After

Source: Pretty much everyone

Challenges with Connected Things

• Connected does not necessarily mean useful

• Noise to Signal

• Event Driven Computing

• Stream Processing, Big Data and Analytics

• SECURITY!

AWS IoT

DEVICE SDKSet of client libraries to

connect, authenticate and

exchange messages

MESSAGE BROKERCommunicate with devices via

MQTT and HTTP

AUTHENTICATIONSecure with mutual

authentication and encryption

RULES ENGINETransform messages

based on rules and

route to AWS Services

AWS Services

- - - - -

3P Services

THING SHADOWPersistent thing state

during intermittent

connections

APPLICATIONS

AWS IoT API

THING REGISTRYIdentity and Management of

your things

AWS IoT Message Broker

MESSAGE BROKERCommunicate with devices via

MQTT and HTTP

AWS IoT API

AWS IoT Message Broker

Standard Protocol Support (no lock-in)

Millions of devices and apps can

connect over MQTT and HTTP 1.1

Long-lived bi-directional communication

Clients (Devices and Apps) can receive

commands and control signals from the

cloud

Secure by Default

Connect securely via X509 Certs and

TLS 1.2 Client Mutual Auth

Topic Based

Architecture

(lights/thing-2/color)

AWS IoT Rules Engine

RULES ENGINETransform messages

based on rules and

route to AWS Services

AWS IoT API

AWS IoT Rules Engine Basics

SELECT * FROM ‘things/thing-2/color’

WHERE color = ‘red’

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.

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

AWS IoT Rules Engine

RULES ENGINETransform messages

based on rules and

route to AWS Services

AWS IoT API

AWS Services

- - - - -

3P Services

AWS IoT Rules Engine

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 a Kinesis stream

Actions

Amazon Firehose

Republish to AWS IoT

AWS IoT Thing Shadow

AWS IoT API

THING SHADOWPersistent thing state

during intermittent

connections

AWS IoT Thing Shadow

AWS IoT Shadow Flow

Shadow

Device SDK

1. Device Publishes Current State

2. Persist JSON Data Store

3. App requests device’s current state

4. App requests change the state5. Device Shadow sync’s

updated state

6. Device Publishes Current State7. Device Shadow confirms state change

AWS IoT Thing 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

AWS IoT 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 60F

AWS IoT Security and Authorization

AWS IoT API

AUTHENTICATIONSecure with mutual

authentication and encryption

One Service, Two Protocols

MQTT + Mutual Auth TLS AWS Auth + HTTPS

Server Auth TLS + Cert TLS + Cert

Client Auth TLS + Cert AWS API Keys

Confidentiality TLS TLS

Protocol MQTT HTTP

Identification AWS ARNs AWS ARNs

Authorization AWS Policy AWS Policy

NEW

Mutual Auth TLS

Security

Secure Communications with Things

- Single API call to CreateKeysAndCertificate()

- Client Generated CreateCertificateFromCSR(CSR)

Fine-grained Authorization for:

Thing Management

Pub/Sub Data Access

AWS Service Access

{

"Version": "2012-10-17",

"Statement": [

{

"Effect": "Allow",

"Action": ["iot:Publish"],

"Resource":

["arn:aws:iot:us-east-

1:123456972007:topic/foo"]

},

{

"Effect": "Allow",

"Action": ["iot:Subscribe"],

"Resource":

["arn:aws:iot:us-east-

1:123456972007:topicfilter/foo/bar/*"]

}]}

AWS IoT Thing Registry

AWS IoT API

THING REGISTRYIdentity and Management of

your things

Thing Registry

• key: value

• Firmware version

• Serial Numbers

• Support and Maintenance

• Reference Manual URL

• Part # reference

• Reference to external support system

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

Get Started with AWS IoT Thing SDK

C-SDK

(Ideal for embedded

OS)

JS-SDK

(Ideal for Embedded

Linux Platforms)

Arduino Library

(Arduino Yun)

Mobile SDK

(Android and iOS)

Launching AWS IoT Hardware Program

The AWS IoT Hardware Program helps AWS

customers build connected products using

any hardware platform. IoT Hardware

Partners reduce the time to market and

improve customer experiences by providing

necessary tools, SDKs and sensors to

connect their devices to AWS.

The program is designed for partners that

provide hardware (semiconductors,

connectivity modules, sensors, actuators) to

customers and are interested in connecting

their hardware platform to AWS.

AWS IoT Launch Partners

IoT Systems Integrators

IoT Communication

IoT Management Platform

IoT Analytics PlatformIoT Operating Systems

Official IoT Starter Kits, Powered by AWS

AWS IoT Button

AWS IoT Button

- WIFI button for AWS IoT

- Claim the button in AWS Console

- Set up Rules and Actions

SELECT * FROM ‘button/press’

Pricing

Free Tier

- First 250,000 messages are free!

Normal Pricing

- $5 per Million messages received

- $5 per Million messages sent

100 sensors each publish one 400-byte

message per minute to AWS IoT. AWS IoT

then delivers all of the messages to one

other device, and also to DynamoDB.

Total cost: This example would incur

$21.50 monthly AWS IoT cost for

publishing of messages, plus $21.50 AWS

IoT cost per month for delivered

messages, for a total of $43.00 of AWS IoT

cost.

A Real World Example

2

Thank You!

@deanbryen

[email protected]