aws iot webinar

39
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Ian Massingham AWS Technical Evangelist @IanMmmm Introduction to AWS IoT

Upload: amazon-web-services

Post on 08-Jan-2017

2.579 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: AWS IoT Webinar

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

Ian MassinghamAWS Technical Evangelist

@IanMmmm

Introduction to AWS IoT

Page 2: AWS IoT Webinar

Pain Points in Building IoT Applications

Many SDKs & Tools

Alternate Protocols

Scalability&

Noise/Signal

Security & Management

Integration with Cloud and Mobile Apps and

Analytics

Page 3: AWS IoT Webinar

AWS IoT

“Securely connect one or one billion devices to AWS, so they can interact with applications and other devices”

Page 4: AWS IoT Webinar

AWS IoT

DEVICE SDKSet of client libraries to

connect, authenticate and exchange messages

DEVICE GATEWAYCommunicate with devices via

MQTT and HTTP

AUTHENTICATIONAUTHORIZATION

Secure 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 5: AWS IoT Webinar

AWS IoT Message Broker

DEVICE GATEWAYCommunicate with devices via

MQTT and HTTP

Page 6: AWS IoT Webinar

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 messagesClients (Devices and Apps) can receive commands and control signals from the cloud

Secure by DefaultConnect securely via X509 Certs and TLS 1.2 Client Mutual Auth

Topic Based Architecture

(lights/thing-2/color)

Highly ScalableDevice Gateway

Page 7: AWS IoT Webinar

MQTT

MQTT vs HTTPS:

• 93x faster throughput• 11.89x less battery to send• 170.9x less battery to receive• 50% less power to keep connected• 8x less network overhead

Source: http://stephendnicholas.com/archives/1217

• OASIS standard protocol (v3.1.1)• Lightweight, pub/sub transport protocol

that is useful for connected devices• MQTT is used on oil rigs, connected

trucks, and many more sensitive and resource-sensitive scenarios.

• Customers have needed to build, maintain and scale a broker to use MQTT with cloud applications

Page 8: AWS IoT Webinar

AWS IoT Message Broker : Managed Service

Highly ScalableDevice Gateway

Millions of devices sending billions of messages

SubscribersPublishers

Page 9: AWS IoT Webinar

AWS IoT Security: Authentication and Authorization

AUTHENTICATIONSecure with mutual

authentication and encryption

AUTHENTICATIONAUTHORIZATION

Secure with mutual authentication and encryption

Page 10: AWS IoT Webinar

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 11: AWS IoT Webinar

Mutual Auth TLS

Page 12: AWS IoT Webinar

Provisioning and SecuritySecure Communications with Things

- Single API call to CreateKeysAndCertificate()- Client Generated CreateCertificateFromCSR(CSR)

Fine-grained Authorization for:Thing ManagementPub/Sub Data AccessAWS 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 13: AWS IoT Webinar

AWS IoT Rules Engine

RULES ENGINETransform messages based on rules and

route to AWS Services

Page 14: AWS IoT Webinar

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 15: AWS IoT Webinar

AWS IoT Rules Engine

Complex EvaluationsRespond to the fleet, not just a single unit. Dozens of functions() available

Multiple / Simultaneous ActionsSometimes a situation requires you to take many actions

Page 16: AWS IoT Webinar

AWS IoT Rules Engine Actions

RULES ENGINETransform messages based on rules and

route to AWS Services

AWS Services- - - - -

3P ServicesAWS Services

- - - - -3P Services

Page 17: AWS IoT Webinar

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 18: AWS IoT Webinar

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 19: AWS IoT Webinar

AWS IoT Rules Engine & Amazon SNS

Push NotificationsApple 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 20: AWS IoT Webinar

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 21: AWS IoT Webinar

AWS IoT to AWS Lambda to and External Endpoint

Lambda Function

Rules Engine

PolicyPrivate Key& Certificate

Thing/Device

RuleSDK

AWS IoT AWS Services

ExecutionRole Policy

External Endpoint

Permission

Select * from ‘iotbutton/+’

Action

Page 22: AWS IoT Webinar

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/+’

Action DynamoDB S3 Website

Page 23: AWS IoT Webinar

AWS IoT Thing Shadow

THING SHADOWPersistent thing state

during intermittent connections

SHADOWPersistent thing state

during intermittent connections

APPLICATIONS

Page 24: AWS IoT Webinar

AWS IoT Thing Shadow

Shadow

Page 25: AWS IoT Webinar

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 State 7. Device Shadow confirms state change

AWS IoT

Page 26: AWS IoT Webinar

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 shadowsRetrieve its desired state from shadow

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 27: AWS IoT Webinar

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/updateDELTA: $aws/things/{thingName}/shadow/update/delta GET: $aws/things/{thingName}/shadow/getDELETE: $aws/things/{thingName}/shadow/delete

Sensor Reported Desired Delta

LED1 RED YELLOWLED1 = YellowTEMP = 60F

ACCEL X=1,Y=5,Z=4 X=1,Y=5,Z=4

TEMP 83F 60F

Page 28: AWS IoT Webinar

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 29: AWS IoT Webinar

AWS IoT Registry

THING REGISTRYIdentity and Management of

your things

REGISTRYIdentity and Management of

your things

Page 30: AWS IoT Webinar

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 31: AWS IoT Webinar

AWS IoT – Device Management

S3 Holds Versioned Firmware DistributionsOrganize and secure your firmware binaries in S3

Message Broker notifies groups of the fleet using Topic PatternsAlert 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 32: AWS IoT Webinar

AWS IoT

DEVICE SDKSet of client libraries to

connect, authenticate and exchange messages

DEVICE GATEWAYCommunicate with devices via

MQTT and HTTP

AUTHENTICATIONAUTHORIZATION

Secure 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 33: AWS IoT Webinar

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 34: AWS IoT Webinar

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.904.38 million deliveries to a metering unit: 4.38 * $5 = $21.90

4.38 million deliveries to DynamoDB: $0

AWS IoT

Page 35: AWS IoT Webinar

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 36: AWS IoT Webinar

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 37: AWS IoT Webinar

Official IoT Starter Kits, Powered by AWS

Page 38: AWS IoT Webinar

Official IoT Starter Kits on Variety of Platforms

Broadcom WICEDBCM4343WOn Threadx/Netx

Marvell EZConnectMW302On FreeRTOS

Renasas RX63NOn Micrium OS

TI CC3200On TI-RTOS

Microchip WCMPIC32 Platform

Intel Edison on Yocto Linux

Mediatek LinkOneon Linkit OS

Dragonboard 410c on Ubuntu

Seeeduino Arduino on openWRT

Beaglebone Green on Debian

Page 39: AWS IoT Webinar

Thank you!

Ian Massingham @IanMmmm

Learn more at aws.amazon.com/iot