getting started with aws iot

44
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. John Chang 張書源 Ecosystem Solutions Architect May 2016 AWS IoT 服務入門

Upload: amazon-web-services

Post on 16-Apr-2017

297 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Getting Started with AWS IoT

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

John Chang 張書源

Ecosystem Solutions Architect

May 2016

AWS IoT 服務入門

Page 2: Getting Started with AWS IoT

Things are NOT static assets

Page 3: Getting Started with AWS IoT
Page 4: Getting Started with AWS IoT
Page 5: Getting Started with AWS IoT
Page 6: Getting Started with AWS IoT
Page 7: Getting Started with AWS IoT

AWS IoT

Page 8: Getting Started with AWS IoT

new: EU (Frankfurt) Region Available

US-EAST (N. Virginia)

US-WEST (Oregon)

EU (Dublin)

* EU (Frankfurt)

Asia Pacific (Tokyo)

Page 9: Getting Started with AWS IoT

Routing noise

Page 10: Getting Started with AWS IoT

Device Gateway

Page 11: Getting Started with AWS IoT

Publish / Subscribe

Standard Protocol Support

MQTT, HTTP, WebSockets

Long Lived Connections

Receive signals from the cloud

Secure by Default

Connect securely via X509 Certs

and TLS 1.2 Client Mutual Auth

Page 12: Getting Started with AWS IoT

Sensor messages

Standard protocol support

MQTT, HTTP, WebSockets

Topic/channel

Message routing hierarchy

Control over full tree

Payload (JSON)

Customer-defined JSON payload

Page 13: Getting Started with AWS IoT

Finding the signals

Page 14: Getting Started with AWS IoT

Extracting the value from messages

• Filter messages with certain criteria

• Move messages to other topics

• Move messages to other systems

• Transform the payload of messages

• Predict messages based on trends

• React based on messages

Page 15: Getting Started with AWS IoT

Rules Engine

Page 16: Getting Started with AWS IoT

AWS IoT SQL reference

SELECT DATA FROM TOPIC WHERE FILTER

• Like scanning a database table

• Default source is an MQTT topic

EXAMPLES:

• FROM mqtt(‘my/topic’)

• FROM mqtt(‘my/wildcard/+/topic’)

• FROM (‘my/topic’)

Page 17: Getting Started with AWS IoT

Rules engine

• Familiar SQL syntax

• SELECT * FROM topic WHERE filter

• Functions

• String manipulation (regex support)

• Mathematical operations

• Context based helper functions

• Crypto support

• UUID, timestamp, rand, etc.

• Execute simultaneous actions

Page 18: Getting Started with AWS IoT

new: Rules engine features

• Versioning

• 2016-10-08 – Original version

• 2016-03-23-beta – Beta version released on specific date

• beta – Latest beta version (breaking changes!)

• lts – Latest long-term support version, automatically updated{

"sql": "expression",

"ruleDisabled": false,

"awsIotSqlVersion": "2015-03-23-beta",

"actions": [{

"republish": {

"topic": "my-mqtt-topic",

"roleArn": "arn:aws:iam::123456789012:role/my-iot-role"

}

}]}

Page 19: Getting Started with AWS IoT

new: Rules engine features

• JSON collections

• get(array, int) – get item at index of array

• get(string, int) – get character at position of string

• get(object, key) – get value of key

• SUB SELECT from collections

• SELECT (SELECT v FROM e WHERE n = 'temperature') as

temperature FROM 'topic'

Page 20: Getting Started with AWS IoT

new: Elasticsearch Integration

Page 21: Getting Started with AWS IoT
Page 22: Getting Started with AWS IoT

new: Predict Function

Page 23: Getting Started with AWS IoT

Basic flow for using prediction

• Generate data

• Use AWS IoT rule to forward to S3

• Build your Amazon Machine Learning model using S3

data source

• Enable real-time predications in Amazon ML

• Use AWS IoT rule to validate predicted value from real-

time prediction endpoint in Amazon ML

• Add other actions

Page 24: Getting Started with AWS IoT

Predictive Maintenance blog:

http://bit.ly/aws-iot-aml-blog

Page 25: Getting Started with AWS IoT

AWS IoT device shadow

Page 26: Getting Started with AWS IoT

AWS IoT Device Shadow

Page 27: Getting Started with AWS IoT

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 syncs

updated state

6. Device publishes current state 7. Device shadow confirms state change

AWS IoT device shadow flow

Page 28: Getting Started with 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

}

Device

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 29: Getting Started with AWS IoT

Security

Page 30: Getting Started with AWS IoT

AWS security operating principles

Separation of duties

Different personnel across service lines

Least privilege

Page 31: Getting Started with AWS IoT
Page 32: Getting Started with AWS IoT

Securing devices

Page 33: Getting Started with AWS IoT

TLS mutual authentication

• Create CSR

• Create X.509 certificate from CSR

• Activate the certificate

• Create policy

• Attach policy to certificate

* Certificate must be issued by AWS IoT

Page 34: Getting Started with AWS IoT

new: Bring your own certificate

• Use certificates issued by your own CA

• Existing certificate issuance infrastructure

• Use certificates already on board

• Limited Internet connectivity from assembly/manufacturing

locations

• Seamless provisioning of devices

• 8 new API calls to support management of certificates

Page 35: Getting Started with AWS IoT

Example publish/subscribe policy

"Effect": "Allow",

"Action": [

"iot:Publish"

],

"Resource": [

"arn:aws:iot:us-east-1:123456789012:topic/foo"

]

},

{

"Effect": "Deny",

"Action": [

”iot:Subscribe"

],

"Resource": [

"arn:aws:iot:us-east-1:123456789012:topic/bar"

]

Allow access to

topic/foo

Deny access

topic/bar

Page 36: Getting Started with AWS IoT

AWS IoT policies

• Effect

• Allow or Deny

• Action

• "iot:Publish" - MQTT publish

• "iot:Subscribe" - MQTT subscribe

• "iot:UpdateThingShadow" - Update a thing shadow

• "iot:GetThingShadow" - Retrieve a thing shadow

• "iot:DeleteThingShadow - Delete a thing shadow

• Resource

• Client

• Topic ARN or topic filter ARN

Page 37: Getting Started with AWS IoT

Securing AWS resource access

Page 38: Getting Started with AWS IoT

Creating the trust relationship with AWS IoT

P P

PRole

{

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

"Statement": [

{

"Sid": "",

"Effect": "Allow",

"Principal": {

"Service": “iot.amazonaws.com”

},

"Action": "sts:AssumeRole"

}

]

}

Page 39: Getting Started with AWS IoT

Securing AWS resource access

Page 40: Getting Started with AWS IoT

Securing user access

• WebSockets support Signature Version 4

authentication

• IAM roles and policies

• Amazon Cognito identity pools

• Anonymous access to iot:Subscribe

• Use your own application-level authentication patterns

Page 41: Getting Started with AWS IoT

Device SDKs

Page 42: Getting Started with AWS IoT

Device SDK support

• Based on open standards like Eclipse Paho

• C

• Arduino (Yun)

• iOS (Swift)

• Android

• WebSocket support

• NodeJS

• JS SDK for statically hosted site (WebSockets)

Page 43: Getting Started with AWS IoT

Summary

• AWS IoT

• New Region launch (EU – Frankfurt)

• New Rules engine features

• Elasticsearch

• Amazon ML prediction function

• New Bring your own certificates

Same room after this:

Building end-to-end AWS IoT Solutions next!

Page 44: Getting Started with AWS IoT

Thank you