(mbl205) new! everything you want to know about aws iot

57
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Kyle Roche | Jinesh Varia @kyleroche | @jinman MBL205 Everything You Want to Know About AWS IoT

Upload: amazon-web-services

Post on 16-Apr-2017

8.890 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: (MBL205) New! Everything You Want to Know About AWS IoT

© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Kyle Roche | Jinesh Varia

@kyleroche | @jinman

MBL205

Everything You Want to

Know About AWS IoT

Page 2: (MBL205) New! Everything You Want to Know About AWS IoT

Things Are Becoming Connected

NowNot too long

from now Soon After

Source: Pretty much everyone

Page 3: (MBL205) New! Everything You Want to Know About AWS IoT

Hello

World!

Page 4: (MBL205) New! Everything You Want to Know About AWS IoT

State of Acceleration / Growth

Invention Refinement Traction

Page 5: (MBL205) New! Everything You Want to Know About AWS IoT

Source: Patrick Bergel @ ThingMonk 2014

based on research by Ingo Althöfer

Page 6: (MBL205) New! Everything You Want to Know About AWS IoT

Hello

Again!

Page 7: (MBL205) New! Everything You Want to Know About AWS IoT
Page 8: (MBL205) New! Everything You Want to Know About AWS IoT

Building Blocks for Innovation in IoT

Page 9: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Makes Things Smarter

“A 10 year old product can do things that hadn’t been

invented 10 years ago. Most importantly, going forward,

people will expect your product to improve, and if it isn’t

being updated and getting better, you’re literally being left

behind.”

Page 10: (MBL205) New! Everything You Want to Know About AWS IoT

How can we escape the spin cycle?

Many SDKs

& Tools

Alternate

Protocols

Scalability

&

Noise/Signal

Security &

Management

Integration with Cloud

and Mobile Apps and

Analytics

Page 11: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT

“Securely connect one or one billion devices to AWS,

so they can interact with applications and other devices”

Page 12: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT

DEVICE SDKSet of client libraries to

connect, authenticate and

exchange messages

DEVICE GATEWAYCommunicate with devices via

MQTT and HTTP

AUTHENTICATION

AUTHORIZATIONSecure with mutual

authentication and encryption

RULES ENGINETransform messages

based on rules and

route to AWS Services

AWS Services

- - - - -

3P Services

DEVICE SHADOWPersistent thing state

during intermittent

connections

APPLICATIONS

AWS IoT API

DEVICE REGISTRYIdentity and Management of

your things

Page 13: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Message Broker

DEVICE GATEWAYCommunicate with devices via

MQTT and HTTP

Page 14: (MBL205) New! Everything You Want to Know About AWS IoT

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

1.2 Client Mutual Auth

Topic Based

Architecture

(lights/thing-2/color)

Highly Scalable

Device Gateway

Page 15: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Message Broker : Managed Service

Highly Scalable

Device Gateway

Millions of devices

sending billions of

messages

SubscribersPublishers

Page 16: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Security: Authentication and

AuthorizationAUTHENTICATION

Secure with mutual

authentication and encryption

AUTHENTICATION

AUTHORIZATIONSecure with mutual

authentication and encryption

Page 17: (MBL205) New! Everything You Want to Know About AWS IoT

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

Page 18: (MBL205) New! Everything You Want to Know About AWS IoT

Mutual Auth TLS

Page 19: (MBL205) New! Everything You Want to Know About AWS IoT

Provisioning and 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/*"]

}]}

Page 20: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Rules Engine

RULES ENGINETransform messages

based on rules and

route to AWS Services

Page 21: (MBL205) New! Everything You Want to Know About AWS IoT

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 Basics

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

WHERE color = ‘red’

Page 22: (MBL205) New! Everything You Want to Know About AWS IoT

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)}",

}]

Page 23: (MBL205) New! Everything You Want to Know About AWS IoT

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

Page 24: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Rules Engine Actions

RULES ENGINETransform messages

based on rules and

route to AWS Services

AWS Services

- - - - -

3P Services

AWS Services

- - - - -

3P Services

Page 25: (MBL205) New! Everything You Want to Know About AWS IoT

1. AWS Services(Direct Integration)

Rules Engine

Actions

AWS IoT Rules Engine

AWS

Lambda

Amazon

SNS

Amazon

SQS

Amazon

S3

Amazon

Kinesis

Amazon

DynamoDB Amazon RDS

Amazon

Redshift

Amazon Glacier

Amazon

EC2

3. External Endpoints(via Lambda and SNS)

Rules Engine connects AWS

IoT to External Endpoints and

AWS Services.

2. Rest of AWS(via Amazon Kinesis, AWS

Lambda, Amazon S3, and

more)

Page 26: (MBL205) New! Everything You Want to Know About AWS IoT

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

Page 27: (MBL205) New! Everything You Want to Know About AWS IoT

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

Page 28: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Button - “Hello World” of AWS IoT

• Based on the Amazon dash button

hardware (Stateless Wi-Fi Button)

• Code in the Cloud; no device

specific code or flashing required

• Learn Rules, Shadows and Topics

Build Cool Stuff

Page 29: (MBL205) New! Everything You Want to Know About AWS IoT

You already have competition!

Call an Uber cab

Order pizza

Start a car

Poke someone on Facebook

“Like” something on Facebook

Mayday button

Tweet Something

Call customer service

Slack it

Approve Expense reports

Count things

Track Things

Page 30: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Mega Contest by Hackster.io

Step 1: Go to Hackster.io/Challenges (AWS)Step 2: Submit your idea (by 11/8) Step 3: Submit your project (by 1/8)

Page 31: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT to AWS Lambda to and External Endpoint

Lambda Function

Rules Engine

PolicyPrivate Key

& Certificate

Thing/Device

RuleSDK

AWS IoT AWS Services

Execution

RolePolicy

External Endpoint

Permission

Select * from ‘iotbutton/+’

Action

Page 32: (MBL205) New! Everything You Want to Know About AWS IoT

Demo: AWS IoT Button Publish

Page 33: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT to Amazon DynamoDB to Dashboard

DynamoDB Table

Rules Engine

PolicyPrivate Key

& Certificate

Thing/Device

RuleSDK

AWS IoT AWS Services

Policy

Dashboard

IAM

Role

Select * from ‘iotbutton/+’

ActionDynamoDB S3 Website

Page 34: (MBL205) New! Everything You Want to Know About AWS IoT

Demo: AWS IoT Button Dashboard

Page 35: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Thing Shadow

THING SHADOWPersistent thing state

during intermittent

connections

SHADOWPersistent thing state

during intermittent

connections

APPLICATIONS

Page 36: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Thing Shadow

Shadow

Page 37: (MBL205) New! Everything You Want to Know About AWS IoT

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

Page 38: (MBL205) New! Everything You Want to Know About AWS IoT

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

Page 39: (MBL205) New! Everything You Want to Know About AWS IoT

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

Page 40: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Button to Device Shadow

Thing

Shadow

Android App

HTTP Publish

UpdateThingShadow()

Desired:

Purple, Yellow, Green

“p,y,g”

Reported:

Blue, White, Cyan

“b,w,c”

GetThingShadow()

Page 41: (MBL205) New! Everything You Want to Know About AWS IoT

Demo: AWS IoT Button Device Shadow

Page 42: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Registry

THING REGISTRYIdentity and Management of

your things

REGISTRYIdentity and Management of

your things

Page 43: (MBL205) New! Everything You Want to Know About AWS IoT

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

Page 44: (MBL205) New! Everything You Want to Know About AWS IoT

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

Page 45: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT

DEVICE SDKSet of client libraries to

connect, authenticate and

exchange messages

DEVICE GATEWAYCommunicate with devices via

MQTT and HTTP

AUTHENTICATION

AUTHORIZATIONSecure with mutual

authentication and encryption

RULES ENGINETransform messages

based on rules and

route to AWS Services

AWS Services

- - - - -

3P Services

DEVICE SHADOWPersistent thing state

during intermittent

connections

APPLICATIONS

AWS IoT API

DEVICE REGISTRYIdentity and Management of

your things

Page 46: (MBL205) New! Everything You Want to Know About AWS IoT

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 Tier250,000 Messages Per Month Free for first 12

Months

Page 47: (MBL205) New! Everything You Want to Know About AWS IoT

Pricing Example

100 sensors * 30 days

* 24 hours * 60

minutes =

4.38 million messages

1 meter * 100 readings * 30

days * 24 hours * 60

minutes =

4.38 million messages

100 Sensors:

Publishing 1x/minute

DynamoDB Table: Receives all Sensor Data

Metering Unit: Receives all Sensor Data

1 table * 100 readings * 30

days * 24 hours * 60

minutes =

4.38 million messages

4.38 million publishes from sensors: 4.38 * $5 = $21.90

4.38 million deliveries to a metering unit: 4.38 * $5 = $21.90

4.38 million deliveries to DynamoDB: $0

AWS IoT

Page 48: (MBL205) New! Everything You Want to Know About AWS IoT

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)

Page 49: (MBL205) New! Everything You Want to Know About AWS IoT

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.

Page 50: (MBL205) New! Everything You Want to Know About AWS IoT

Official IoT Starter Kits, Powered by AWS

Page 51: (MBL205) New! Everything You Want to Know About AWS IoT

Official IoT Starter Kits on Variety of Platforms

Broadcom WICED

BCM4343W

On Threadx/Netx

Marvell

EZConnect

MW302

On FreeRTOS

Renasas RX63N

On Micrium OS

TI CC3200

On TI-RTOSMicrochip WCM

PIC32 Platform

Intel Edison

on Yocto Linux

Mediatek

LinkOne

on Linkit OS

Dragonboard

410c on

Ubuntu

Seeeduino

Arduino on

openWRT

Beaglebone

Green on

Debian

Page 52: (MBL205) New! Everything You Want to Know About AWS IoT

AWS IoT Always Growing Ecosystem Partners

IoT Systems Integrators

IoT Communication

IoT Management Platform

IoT Analytics PlatformIoT Operating Systems

Page 53: (MBL205) New! Everything You Want to Know About AWS IoT

Anyone can now build a device quickly and scale

AWS IoT

Device Gateway

Rules Engine

Device Shadow

Registry

Security

Easy to get started

AWS IoT Device SDK

AWS IoT Button

Hackster Contest

Free Tier

Partners and

Ecosystem

AWS IoT Starter Kits

AWS IoT Partners

Still incomplete

Page 54: (MBL205) New! Everything You Want to Know About AWS IoT

You don’t want to miss these deep dive sessions

MBL311 AWS IoT Security - Palazzo A 1:30 PM

MBL312 Rules and Shadow - Palazzo A 2:45 PM

MBL313 Devices SDK and Kits - Palazzo A 4:15 PM

MBL303 Mobile Devices and IoT - Delfino 4005 4:15 PM

MBL203 Devices in Motion - Delfino 4005 Friday 10:15 AM

MBL305 IoT Data and Analytics - Delfino 4005 Friday 11:30

Page 55: (MBL205) New! Everything You Want to Know About AWS IoT

We can’t wait to see what you invent with AWS IoT

Step 1: Go to Hackster.io/Challenges (AWS)Step 2: Submit your idea (by 11/8) Step 3: Submit your project (by 1/8)

Page 56: (MBL205) New! Everything You Want to Know About AWS IoT

Thank you!

Kyle Roche @kyleroche

Jinesh Varia @jinman

Page 57: (MBL205) New! Everything You Want to Know About AWS IoT

Remember to complete

your evaluations!