SlideShare a Scribd company logo
1 of 78
Download to read offline
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Juan Villa, AWS Solutions Architect
July 26, 2017
Deep Dive on AWS IoT
Shadows, Rules, and More
SRV408
AWS IoT
Data storage
& analytics
Administration
Sensors
Actuators
Connected Farm
Control
automation
Agenda
• Introduction to AWS IoT
• Telemetry & analytics
• Cloud control
• Mobile control
• Lifecycle management
• Wrap up
AWS IoT
Key takeaways
• Messaging
• Be careful with wide fan out
• No message ordering guarantees
• Avoid large fan in
• WebSockets for Amazon Cognito authentication
• Rules
• Send data to multiple data stores at the same time
• Manage device lifecycle events
• Shadows
• Designed for the real world: poor connectivity, out of order messages
• Fine-grained control over software rollouts
• Not ideal for storing time-series analytics data
• Security
• One cert per device
• Set fine-grained permissions for devices and Amazon Cognito users
• Naming conventions can simplify policy management
Telemetry & Analytics
Administration
Actuators
Control
automation
AWS IoT
Data storage
& analytics
Sensors
Connected Farm
AWS IoT Telemetry & Analytics
1. Connect devices
2. Send data
3. Collect and store the data
4. Do something with the data
AWS IoT Telemetry & Analytics
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
1) Connect the devices
1. Provision a certificate
2. Attach policy
3. Connect over MQTT
2) Send data
PUBLISH macdonald/sensors/123 (qos: 0)
{
"timestamp": "2016-01-29T10:00:00",
"temperature": 55
"humidity": 39,
"ph": 6.7
}
3) Collect the data
AWS IoT
Data storage
& analytics
Sensors
?
Single consumer (don’t do this)
AWS IoT instance database
PUBLISH sensors/123
PUBLISH sensors/456
SUBSCRIBE sensors/+
PUBLISH sensors/789
Don’t do this: scalability
AWS IoT instance
SUBSCRIBE #
Don’t do this: availability
AWS IoT instance
Don’t do this: maintainability
AWS IoT
Store it in the device shadow (don’t do this)
Sensors
DEVICE SHADOWS
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,
Lambda, S3, and more)
Example rule
{
"rule": {
"sql": "SELECT * AS message FROM ’macdonald/#'",
"description": "Store all sensor data into dynamodb and firehose",
"actions": [{
"dynamoDB": {
"tableName": "sensor_data",
"roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDB",
"hashKeyField": "sensor_id",
"hashKeyValue": "${topic(2)}",
"rangeKeyField": "timestamp“
"rangeKeyValue": "${timestamp()}",
}
}, {
"firehose": {
"roleArn": "arn:aws:iam::123456789012:role/aws_iot_firehose",
"deliveryStreamName": "my_firehose_stream"
}
}]
}
}
macdonald/sprinkler-456/temperature
IoT SQL Functions
• Math
• abs, acos, asin, atan, atan2, cos, cosh, etc…
• round, ceil, floor, exp,
• Bitwise Ops
• bitand, bitor, bitxor, and bitnot
• String and Arrays
• chr, concat, encode, endswith, get, indexof, length, lower, upper, etc...
• newuuid, parse_time
• Hashing
• md2, md5, sha1, sha224, sha256, sha384, sha512
• IoT
• machinelearning_predict(modelId, roleARN, record)
• get_thing_shadow(thingName, roleARN)
• principal, topic, timestamp, traceid
[…]
"hashKeyValue": "${topic(2)}",
“rangeKeyField": "timestamp“
"rangeKeyValue": "${timestamp()}”
[…]
Different data scenarios
Want to run a lot of queries constantly?
Use Amazon Kinesis Firehose to write into
Amazon Redshift
Need fast lookups, e.g., in Rules or Lambda functions?
Write into DynamoDB, add indexes if necessary
Have a need for heavy queries but not always-on?
Use Firehose and S3, process with Amazon EMR or Athena.
Takeaways
• Avoid single “firehose” MQTT consumer architecture
• Rules route data into the rest of AWS at scale
• Fork data into multiple data stores simultaneously
• Avoid the device shadow for analytics
Cloud Control
Administration
AWS IoT
Data storage
& analytics
Sensors
Connected Farm
Actuators
Control
automation
Automated Sprinkler Service
Amazon
Kinesis
Amazon Machine
Learning
Amazon
Redshift
Rules
Engine
Device
Gateway
Sensor
Sprinkler
Amazon Kinesis–
enabledapp
Talking back to the sprinklers
Amazon
Kinesis
Amazon Machine
Learning
Amazon
Redshift
Rules
Engine
Sensor
Device
Gateway
Sprinkler
Amazon Kinesis–
enabledapp
Publish on/off to the sprinkler (don’t do this)
Device
Gateway
Sprinkler
Control
logic
SUBSCRIBE
macdonald/sprinkler-456
Publish on/off to the sprinkler (don’t do this)
Device
Gateway
Sprinkler
Control
logic
PUBLISH
macdonald/sprinkler-456
{ "water": "on" }
Direct publishing: why not?
Device
Gateway
Sprinkler
(offline) Control
logic
PUBLISH
macdonald/sprinkler-456
{ "water": "on" }
X
Direct publishing: why not?
Sprinkler
Control
logic
on
off
Device
Gateway
off
on
Direct publishing: why not?
• Connection blips
• Messages aren’t ordered
So then what?
Device Shadows
Shadow
State
Apps
offline
Device Shadows
Device Controller
reported
state
desired
state
Device Shadows
Device Controller
reported
state
desired
state
HTTP/
WebSockets
MQTT
AWS IoT 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
Device Shadows and versioning
Sprinkler
Control
logic
on (version=1)
off (version=2)
Device
Gateway
off (version=2)
on (version=1)
(old message ignored by device)
Takeaways
• Plan for devices losing connectivity
• Send devices’ commands through shadows
• Query device state through shadows
• Version numbers control concurrency
Mobile Control
Data storage
& analytics
Sensors
Talking back to the sprinklers: manual override
Control
automation
AWS IoT
Administration
Actuators
AWS IoT
DEVICE SHADOW
Persistent thing state
during intermittent
connections
APPLICATIONS
Using Cognito with IoT
DEVICE SHADOW
Persistent thing state
during intermittent
connections
APPLICATIONS
AMAZON
COGNITO
PERMISSIONS APIs
Configure device and
Cognito User permissions
end-user
(farmer)
end-user
(farmer)
Using Cognito with IoT
DEVICE SHADOW
Persistent thing state
during intermittent
connections
APPLICATIONS
AMAZON
COGNITO
PERMISSIONS APIs
Configure device and
Cognito User permissions
Policy for Cognito with IoT
aws iot attach-principal-policy --policy-name farm-sensors
--principal us-east-1:xxxx-yyyy-zzzz
Cognito Identity = us-east-1:xxxx-yyyy-zzzz
You will need a trusted entity to attach the Cognito principal to an IoT policy
• Only needed for iot-data plane calls such as DeleteThingShadow,
UpdateThingShadow, GetThingShadow, Connect, Publish, and Subscribe
• Can use API Gateway, Cognito Sync Triggers, or other techniques for
attaching the Cognito principal ID to the IoT Policy
Overall Cognito “pairing” workflow
1. Create a Cognito identity pool
2. Customer signs in using mobile app
3. Associate their user with their “farm”
4. Create a scope-down policy in IoT for their user
5. Attach that policy to their Cognito user in IoT
Managing fine-grained permissions
• One “farm owner” needs permissions to many shadows
• "arn:aws:iot:…:thing/sprinkler123abc"
• "arn:aws:iot:…:thing/sprinkler456def"
• …
• Listing each is tedious
Best practice: Thing name prefixing
• Prefix thing name with logical owner
• sensor123abc -> macdonald-sensor123abc
• IAM policies support wildcards
• "arn:aws:iot:…:thing/sensor123abc"
• "arn:aws:iot:…:thing/sensor123abc"
• "arn:aws:iot:…:thing/sensor456def"
• …
• "arn:aws:iot:…:thing/macdonald-*"
Takeaways: Cognito authorization
• Cognito enables secure human control over IoT devices
• IoT scope-down policy supports fine-grained control
• Naming conventions simplify policy management
Lifecycle Management
Actuators
Data storage
& analytics
Device lifecycle management
Control
automation
AWS IoT
Sensors
Maintenance
1
Lifecycle workflow
Notify operator
1
Connected Disconnected Still
disconnected?
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 third-party endpoints through SNS with subscription and retry
support
SNS
2
Detecting disconnects
DisconnectedConnected
Graceful disconnect
Crash
Back online
Lifecycle events
• Connect
• PUBLISH lifecycle/sensor-123
{"status": "online"}
• Disconnect (graceful)
• PUBLISH lifecycle/sensor-123
{"status": "offline"}
• Disconnect (crash)
• PUBLISH lifecycle/sensor-123
{"status": "offline", "isCrash": true}
Handling lifecycle events
SELECT
status,
topic(2) as deviceId,
timestamp() as time,
isCrash
FROM lifecycle/#
WHERE status='offline'
- Look up mobile push ID for device owner
- Send SNS mobile push
AWS Lambda function
Delayed lifecycle events
SELECT
status,
topic(2) as deviceId,
timestamp() as time,
isCrash
FROM lifecycle/#
Device Status Time
sensor-123 connected 11:30
…
- Double-check the status in DynamoDB
- Send SNS push notification if still offline
- Store update device status in DynamoDB
- If offline: enqueue an SQS message with
DelaySeconds
AWS Lambda function
SQS Message (15 minutes later)
Amazon
DynamoDB
Generating lifecycle events
• Connect
• PUBLISH lifecycle/sensor-123
{"status": "online"}
• Disconnect (graceful)
• PUBLISH lifecycle/sensor-123
{"status": "offline"}
• Disconnect (crash)
• PUBLISH lifecycle/sensor-123
{"status": "offline", "isCrash": true}
Lifecycle events: connecting
$aws/events/presence/connected/clientId
{
"clientId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"timestamp": 1460065214626,
"eventType": "connected",
"sessionIdentifier": "00000000-0000-0000-0000-000000000000",
"principalIdentifier": "000000000000/XXX:some-user/XXX:some-user"
}
Automatic lifecycle message
Lifecycle events: disconnecting
$aws/events/presence/disconnected/clientId
{
"clientId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"timestamp": 1460065214626,
"eventType": ”disconnected",
"sessionIdentifier": "00000000-0000-0000-0000-000000000000",
"principalIdentifier": "000000000000/XXX:some-user/XXX:some-user"
}
Automatic lifecycle message
Last Will and Testament (LWT)
CONNECT message parts:
Protocol: MQTT 3.1.1
ClientId: abc
KeepAlive: 60 seconds
LastWill PUBLISH message:
Topic: foo/bar
QoS: 1
Payload: {"foo": "bar"}
Takeaways: lifecycle management
• Use automatic lifecycle events
• Use LWT for lifecycle events
• SQS delayed messages and DynamoDB can reduce
false positives
Wrap-up
AWS IoT
Data storage
& analytics
Administration
Sensors
Actuators
Connected Farm
Control
automation
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
Key takeaways
• Messaging
• Be careful with wide fan out
• No message ordering guarantees
• Avoid large fan-in
• WebSockets for Cognito authentication
• Rules
• Send data to multiple data stores at the same time
• Manage device lifecycle events
• Shadows
• Designed for the real world: poor connectivity, out of order messages
• Fine-grained control over software rollouts
• Not ideal for storing time-series analytics data
• Security
• One cert per device
• Set fine-grained permissions for devices and Cognito users
• Naming conventions can simplify policy management
AWS Marketplace
Really quick…
AWS Marketplace – IoT Software on AWS
EDGE, GATEWAY AND
CONNECTIVITY
DEVELOPMENT
PLATFORMS & TOOLS
DATA ANALYTICS AND
MACHINE LEARNING
IoT HARDWARE
AND SENSORS
aws.amazon.com/mp/iot
Working with system
integrator Pinacl, Newport
used the Davra
ConnecThing.io IoT platform
from AWS Marketplace to
connect sensors and create a
unified city dashboard.
Newport wanted to implement
IoT proofs of concept to
improve flood control, waste
management, and air quality
measurement—without
buying and managing costly
server infrastructure.
• Deployment in weeks
instead of months
• Ability to start with just a
few sensors and scale up
as needed
• Freedom to experiment at
low cost and risk
“ Pinacl presented a smart city solution with the Davra
ConnecThing.io platform from AWS Marketplace in
record time. We were able to complete a full evaluation
ahead of schedule and quickly see our smart city
initiative, the Newport Intelligence Hub, coming to light.
Shaun Powell, Digital Lead, Newport City Council
CHALLENGE SOLUTION BENEFITS
About Newport
Newport is a vibrant city of more
than 300,000 in Wales, UK,
seeking to invigorate its
economy and improve quality of
life for citizens and visitors using
forward-thinking technology.
Company: Newport City Council
Industry: Government
Country: Wales, UK
Councilors: 50
Website: www.newport.gov.uk
Newport, Wales Deploys Innovative Smart City
Technology in Weeks with IoT Platform from
AWS Marketplace
Thank you!
Kudos to Daniel Austin, Brett Francis, Olewale
Oladehin, and especially David Yanacek!
Appendix:
Managing Software Updates
Data storage
& analytics
Managing software updates
Control
automation
AWS IoT
Administration
Actuators
Sensors
Firmware topic (don’t do this)
• Have all devices subscribe to a topic
• Publish updated binaries to this topic
SUBSCRIBE sensor/firmware
SUBSCRIBE sensor/firmware
SUBSCRIBE sensor/firmware
PUBLISH sensor/firmware
01100100 01101111 00100000
01101110 01101111 01110100
00100000 01100100 01101111
00100000 01110100 01101000
01101001 01110011
Firmware topic (don’t do this)
Pros:
• Sending an update is easy
Cons:
• Large messages not supported
• Offline devices miss updates
• No control over rollout
Firmware version shadow (don’t do this)
• One thing shadow for the current firmware version
• All devices subscribe to shadow updates
• Messages include a CloudFront download URL
SUBSCRIBE
$aws/shadow/firmware-thing
PUBLISH $aws/shadow/firmware-thing
{
"desired": {
"version": “123.45"
"url": “https://abc123.cloudfront.net/newversion"
}
}
SUBSCRIBE
$aws/shadow/firmware-thing
Firmware version shadow (don’t do this)
Pros:
• Sending an update is easy
• Offline devices eventually see updates
• Bulk download happens through CloudFront
Cons:
• No control over rollout
• Shadow protocol is chatty
Firmware in device shadows
• Set each device’s shadow to its desired firmware version
• Devices subscribe to their own shadow
• Messages include a CloudFront download URL
Firmware in device shadows
SUBSCRIBE
$aws/shadow/sensor-abc123
PUBLISH $aws/shadow/sensor-abc123
{
"desired": {
"version": “123.45"
"url": "https://abc123.cloudfront.net/newversion"
}
}
SUBSCRIBE
$aws/shadow/sensor-def456
PUBLISH $aws/shadow/sensor-def456
{
"desired": {
"version": “123.45"
"url": "https://abc123.cloudfront.net/newversion"
}
}
Firmware in device shadows
Pros:
• Full control over rollout / rollback
• Offline devices eventually see updates
• Bulk download happens through CloudFront
Cons:
• Sending updates requires sending multiple messages
Takeaway
• Be careful with wide fan out to millions of devices
• Wide fan out is supported, but won’t be instant
• Encourage safe device management

More Related Content

What's hot

Securing Serverless Architectures
Securing Serverless ArchitecturesSecuring Serverless Architectures
Securing Serverless ArchitecturesAmazon Web Services
 
(SEC308) Wrangling Security Events In The Cloud
(SEC308) Wrangling Security Events In The Cloud(SEC308) Wrangling Security Events In The Cloud
(SEC308) Wrangling Security Events In The CloudAmazon Web Services
 
Rackspace: Best Practices for Security Compliance on AWS
Rackspace: Best Practices for Security Compliance on AWSRackspace: Best Practices for Security Compliance on AWS
Rackspace: Best Practices for Security Compliance on AWSAmazon Web Services
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSAmazon Web Services
 
AWS re:Invent 2016: How DataXu scaled its Attribution System to handle billio...
AWS re:Invent 2016: How DataXu scaled its Attribution System to handle billio...AWS re:Invent 2016: How DataXu scaled its Attribution System to handle billio...
AWS re:Invent 2016: How DataXu scaled its Attribution System to handle billio...Amazon Web Services
 
AWS APAC Webinar Week - 2015 An Amazing Year in AWS
AWS APAC Webinar Week - 2015 An Amazing Year in AWSAWS APAC Webinar Week - 2015 An Amazing Year in AWS
AWS APAC Webinar Week - 2015 An Amazing Year in AWSAmazon Web Services
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...Amazon Web Services
 
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...Amazon Web Services
 
Stream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdaysStream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdaysSmartNews, Inc.
 
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...Amazon Web Services
 
Getting started with aws io t.compressed.compressed
Getting started with aws io t.compressed.compressedGetting started with aws io t.compressed.compressed
Getting started with aws io t.compressed.compressedAmazon Web Services
 
AWS re:Invent 2016: Innovation After Installation: Establishing a Digital Rel...
AWS re:Invent 2016: Innovation After Installation: Establishing a Digital Rel...AWS re:Invent 2016: Innovation After Installation: Establishing a Digital Rel...
AWS re:Invent 2016: Innovation After Installation: Establishing a Digital Rel...Amazon Web Services
 
Amazon CloudWatch Logs and AWS Lambda: A Match Made in Heaven | AWS Public Se...
Amazon CloudWatch Logs and AWS Lambda: A Match Made in Heaven | AWS Public Se...Amazon CloudWatch Logs and AWS Lambda: A Match Made in Heaven | AWS Public Se...
Amazon CloudWatch Logs and AWS Lambda: A Match Made in Heaven | AWS Public Se...Amazon Web Services
 
Ponencia Principal - AWS Summit - Madrid
Ponencia Principal - AWS Summit - MadridPonencia Principal - AWS Summit - Madrid
Ponencia Principal - AWS Summit - MadridAmazon Web Services
 
Keynote: Future of IT - future of enterprise it Canada
Keynote: Future of IT - future of enterprise it CanadaKeynote: Future of IT - future of enterprise it Canada
Keynote: Future of IT - future of enterprise it CanadaAmazon Web Services
 
Srv204 Getting Started with AWS IoT
Srv204 Getting Started with AWS IoTSrv204 Getting Started with AWS IoT
Srv204 Getting Started with AWS IoTAmazon Web Services
 
AWS re:Invent 2016: Scaling Security Resources for Your First 10 Million Cust...
AWS re:Invent 2016: Scaling Security Resources for Your First 10 Million Cust...AWS re:Invent 2016: Scaling Security Resources for Your First 10 Million Cust...
AWS re:Invent 2016: Scaling Security Resources for Your First 10 Million Cust...Amazon Web Services
 

What's hot (20)

Securing Serverless Architectures
Securing Serverless ArchitecturesSecuring Serverless Architectures
Securing Serverless Architectures
 
(SEC308) Wrangling Security Events In The Cloud
(SEC308) Wrangling Security Events In The Cloud(SEC308) Wrangling Security Events In The Cloud
(SEC308) Wrangling Security Events In The Cloud
 
Rackspace: Best Practices for Security Compliance on AWS
Rackspace: Best Practices for Security Compliance on AWSRackspace: Best Practices for Security Compliance on AWS
Rackspace: Best Practices for Security Compliance on AWS
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWS
 
AWS re:Invent 2016: How DataXu scaled its Attribution System to handle billio...
AWS re:Invent 2016: How DataXu scaled its Attribution System to handle billio...AWS re:Invent 2016: How DataXu scaled its Attribution System to handle billio...
AWS re:Invent 2016: How DataXu scaled its Attribution System to handle billio...
 
AWS APAC Webinar Week - 2015 An Amazing Year in AWS
AWS APAC Webinar Week - 2015 An Amazing Year in AWSAWS APAC Webinar Week - 2015 An Amazing Year in AWS
AWS APAC Webinar Week - 2015 An Amazing Year in AWS
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
 
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...
Overview of IoT Infrastructure and Connectivity at AWS & Getting Started with...
 
Deep Dive on AWS IoT
Deep Dive on AWS IoTDeep Dive on AWS IoT
Deep Dive on AWS IoT
 
Stream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdaysStream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdays
 
Sec301 Security @ (Cloud) Scale
Sec301 Security @ (Cloud) ScaleSec301 Security @ (Cloud) Scale
Sec301 Security @ (Cloud) Scale
 
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...
 
Getting started with aws io t.compressed.compressed
Getting started with aws io t.compressed.compressedGetting started with aws io t.compressed.compressed
Getting started with aws io t.compressed.compressed
 
AWS re:Invent 2016: Innovation After Installation: Establishing a Digital Rel...
AWS re:Invent 2016: Innovation After Installation: Establishing a Digital Rel...AWS re:Invent 2016: Innovation After Installation: Establishing a Digital Rel...
AWS re:Invent 2016: Innovation After Installation: Establishing a Digital Rel...
 
Amazon CloudWatch Logs and AWS Lambda: A Match Made in Heaven | AWS Public Se...
Amazon CloudWatch Logs and AWS Lambda: A Match Made in Heaven | AWS Public Se...Amazon CloudWatch Logs and AWS Lambda: A Match Made in Heaven | AWS Public Se...
Amazon CloudWatch Logs and AWS Lambda: A Match Made in Heaven | AWS Public Se...
 
Ponencia Principal - AWS Summit - Madrid
Ponencia Principal - AWS Summit - MadridPonencia Principal - AWS Summit - Madrid
Ponencia Principal - AWS Summit - Madrid
 
Keynote: Future of IT - future of enterprise it Canada
Keynote: Future of IT - future of enterprise it CanadaKeynote: Future of IT - future of enterprise it Canada
Keynote: Future of IT - future of enterprise it Canada
 
Srv204 Getting Started with AWS IoT
Srv204 Getting Started with AWS IoTSrv204 Getting Started with AWS IoT
Srv204 Getting Started with AWS IoT
 
AWS re:Invent 2016: Scaling Security Resources for Your First 10 Million Cust...
AWS re:Invent 2016: Scaling Security Resources for Your First 10 Million Cust...AWS re:Invent 2016: Scaling Security Resources for Your First 10 Million Cust...
AWS re:Invent 2016: Scaling Security Resources for Your First 10 Million Cust...
 
SRV408 Deep Dive on AWS IoT
SRV408 Deep Dive on AWS IoTSRV408 Deep Dive on AWS IoT
SRV408 Deep Dive on AWS IoT
 

Similar to SRV408 Deep Dive on AWS IoT

Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...
Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...
Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...Amazon Web Services
 
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...Amazon Web Services
 
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)Amazon Web Services Korea
 
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015Amazon Web Services Korea
 
How to Easily and Securely Connect Devices to AWS IoT - AWS Online Tech Talks
How to Easily and Securely Connect Devices to AWS IoT - AWS Online Tech TalksHow to Easily and Securely Connect Devices to AWS IoT - AWS Online Tech Talks
How to Easily and Securely Connect Devices to AWS IoT - AWS Online Tech TalksAmazon Web Services
 
Reply Webinar Online - Mastering AWS - IoT Foundations
Reply Webinar Online - Mastering AWS - IoT FoundationsReply Webinar Online - Mastering AWS - IoT Foundations
Reply Webinar Online - Mastering AWS - IoT FoundationsAndrea Mercanti
 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineAmazon Web Services
 
AWS+Intel: Smart Greenhouse Demo
AWS+Intel: Smart Greenhouse DemoAWS+Intel: Smart Greenhouse Demo
AWS+Intel: Smart Greenhouse DemoAmazon Web Services
 
AWS Innovate: Building an Internet Connected Camera with AWS IoT- Tim Cruse
AWS Innovate: Building an Internet Connected Camera with AWS IoT- Tim CruseAWS Innovate: Building an Internet Connected Camera with AWS IoT- Tim Cruse
AWS Innovate: Building an Internet Connected Camera with AWS IoT- Tim CruseAmazon Web Services Korea
 
(MBL205) New! Everything You Want to Know About AWS IoT
(MBL205) New! Everything You Want to Know About AWS IoT(MBL205) New! Everything You Want to Know About AWS IoT
(MBL205) New! Everything You Want to Know About AWS IoTAmazon Web Services
 
(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules
(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules
(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & RulesAmazon Web Services
 
An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)Julien SIMON
 
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksEssential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksAmazon Web Services
 

Similar to SRV408 Deep Dive on AWS IoT (20)

Deep Dive on AWS IoT
Deep Dive on AWS IoTDeep Dive on AWS IoT
Deep Dive on AWS IoT
 
AWS IoT 深入探討
AWS IoT 深入探討AWS IoT 深入探討
AWS IoT 深入探討
 
SRV408 Deep Dive on AWS IoT
SRV408 Deep Dive on AWS IoTSRV408 Deep Dive on AWS IoT
SRV408 Deep Dive on AWS IoT
 
Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...
Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...
Implementare e gestire soluzioni per l'Internet of Things (IoT) in modo rapid...
 
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...
 
Internet of Things on AWS
Internet of Things on AWSInternet of Things on AWS
Internet of Things on AWS
 
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
 
Introduction to AWS IoT
Introduction to AWS IoTIntroduction to AWS IoT
Introduction to AWS IoT
 
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
 
How to Easily and Securely Connect Devices to AWS IoT - AWS Online Tech Talks
How to Easily and Securely Connect Devices to AWS IoT - AWS Online Tech TalksHow to Easily and Securely Connect Devices to AWS IoT - AWS Online Tech Talks
How to Easily and Securely Connect Devices to AWS IoT - AWS Online Tech Talks
 
Reply Webinar Online - Mastering AWS - IoT Foundations
Reply Webinar Online - Mastering AWS - IoT FoundationsReply Webinar Online - Mastering AWS - IoT Foundations
Reply Webinar Online - Mastering AWS - IoT Foundations
 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules Engine
 
AWS+Intel: Smart Greenhouse Demo
AWS+Intel: Smart Greenhouse DemoAWS+Intel: Smart Greenhouse Demo
AWS+Intel: Smart Greenhouse Demo
 
Web + AWS + IoT, how to
Web + AWS + IoT, how to Web + AWS + IoT, how to
Web + AWS + IoT, how to
 
AWS Innovate: Building an Internet Connected Camera with AWS IoT- Tim Cruse
AWS Innovate: Building an Internet Connected Camera with AWS IoT- Tim CruseAWS Innovate: Building an Internet Connected Camera with AWS IoT- Tim Cruse
AWS Innovate: Building an Internet Connected Camera with AWS IoT- Tim Cruse
 
(MBL205) New! Everything You Want to Know About AWS IoT
(MBL205) New! Everything You Want to Know About AWS IoT(MBL205) New! Everything You Want to Know About AWS IoT
(MBL205) New! Everything You Want to Know About AWS IoT
 
(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules
(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules
(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules
 
An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)
 
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksEssential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
 
IoT on azure
IoT on azureIoT on azure
IoT on azure
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Recently uploaded

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

SRV408 Deep Dive on AWS IoT

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Juan Villa, AWS Solutions Architect July 26, 2017 Deep Dive on AWS IoT Shadows, Rules, and More SRV408
  • 2. AWS IoT Data storage & analytics Administration Sensors Actuators Connected Farm Control automation
  • 3. Agenda • Introduction to AWS IoT • Telemetry & analytics • Cloud control • Mobile control • Lifecycle management • Wrap up
  • 5. Key takeaways • Messaging • Be careful with wide fan out • No message ordering guarantees • Avoid large fan in • WebSockets for Amazon Cognito authentication • Rules • Send data to multiple data stores at the same time • Manage device lifecycle events • Shadows • Designed for the real world: poor connectivity, out of order messages • Fine-grained control over software rollouts • Not ideal for storing time-series analytics data • Security • One cert per device • Set fine-grained permissions for devices and Amazon Cognito users • Naming conventions can simplify policy management
  • 8. AWS IoT Telemetry & Analytics 1. Connect devices 2. Send data 3. Collect and store the data 4. Do something with the data
  • 9. AWS IoT Telemetry & Analytics 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
  • 10. 1) Connect the devices 1. Provision a certificate 2. Attach policy 3. Connect over MQTT
  • 11. 2) Send data PUBLISH macdonald/sensors/123 (qos: 0) { "timestamp": "2016-01-29T10:00:00", "temperature": 55 "humidity": 39, "ph": 6.7 }
  • 12. 3) Collect the data AWS IoT Data storage & analytics Sensors ?
  • 13. Single consumer (don’t do this) AWS IoT instance database PUBLISH sensors/123 PUBLISH sensors/456 SUBSCRIBE sensors/+ PUBLISH sensors/789
  • 14. Don’t do this: scalability AWS IoT instance SUBSCRIBE #
  • 15. Don’t do this: availability AWS IoT instance
  • 16. Don’t do this: maintainability AWS IoT
  • 17. Store it in the device shadow (don’t do this) Sensors DEVICE SHADOWS
  • 18. 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, Lambda, S3, and more)
  • 19. Example rule { "rule": { "sql": "SELECT * AS message FROM ’macdonald/#'", "description": "Store all sensor data into dynamodb and firehose", "actions": [{ "dynamoDB": { "tableName": "sensor_data", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDB", "hashKeyField": "sensor_id", "hashKeyValue": "${topic(2)}", "rangeKeyField": "timestamp“ "rangeKeyValue": "${timestamp()}", } }, { "firehose": { "roleArn": "arn:aws:iam::123456789012:role/aws_iot_firehose", "deliveryStreamName": "my_firehose_stream" } }] } } macdonald/sprinkler-456/temperature
  • 20. IoT SQL Functions • Math • abs, acos, asin, atan, atan2, cos, cosh, etc… • round, ceil, floor, exp, • Bitwise Ops • bitand, bitor, bitxor, and bitnot • String and Arrays • chr, concat, encode, endswith, get, indexof, length, lower, upper, etc... • newuuid, parse_time • Hashing • md2, md5, sha1, sha224, sha256, sha384, sha512 • IoT • machinelearning_predict(modelId, roleARN, record) • get_thing_shadow(thingName, roleARN) • principal, topic, timestamp, traceid […] "hashKeyValue": "${topic(2)}", “rangeKeyField": "timestamp“ "rangeKeyValue": "${timestamp()}” […]
  • 21. Different data scenarios Want to run a lot of queries constantly? Use Amazon Kinesis Firehose to write into Amazon Redshift Need fast lookups, e.g., in Rules or Lambda functions? Write into DynamoDB, add indexes if necessary Have a need for heavy queries but not always-on? Use Firehose and S3, process with Amazon EMR or Athena.
  • 22. Takeaways • Avoid single “firehose” MQTT consumer architecture • Rules route data into the rest of AWS at scale • Fork data into multiple data stores simultaneously • Avoid the device shadow for analytics
  • 24. Administration AWS IoT Data storage & analytics Sensors Connected Farm Actuators Control automation
  • 25. Automated Sprinkler Service Amazon Kinesis Amazon Machine Learning Amazon Redshift Rules Engine Device Gateway Sensor Sprinkler Amazon Kinesis– enabledapp
  • 26. Talking back to the sprinklers Amazon Kinesis Amazon Machine Learning Amazon Redshift Rules Engine Sensor Device Gateway Sprinkler Amazon Kinesis– enabledapp
  • 27. Publish on/off to the sprinkler (don’t do this) Device Gateway Sprinkler Control logic SUBSCRIBE macdonald/sprinkler-456
  • 28. Publish on/off to the sprinkler (don’t do this) Device Gateway Sprinkler Control logic PUBLISH macdonald/sprinkler-456 { "water": "on" }
  • 29. Direct publishing: why not? Device Gateway Sprinkler (offline) Control logic PUBLISH macdonald/sprinkler-456 { "water": "on" } X
  • 30. Direct publishing: why not? Sprinkler Control logic on off Device Gateway off on
  • 31. Direct publishing: why not? • Connection blips • Messages aren’t ordered So then what?
  • 35. AWS IoT 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
  • 36. Device Shadows and versioning Sprinkler Control logic on (version=1) off (version=2) Device Gateway off (version=2) on (version=1) (old message ignored by device)
  • 37. Takeaways • Plan for devices losing connectivity • Send devices’ commands through shadows • Query device state through shadows • Version numbers control concurrency
  • 39. Data storage & analytics Sensors Talking back to the sprinklers: manual override Control automation AWS IoT Administration Actuators
  • 40. AWS IoT DEVICE SHADOW Persistent thing state during intermittent connections APPLICATIONS
  • 41. Using Cognito with IoT DEVICE SHADOW Persistent thing state during intermittent connections APPLICATIONS AMAZON COGNITO PERMISSIONS APIs Configure device and Cognito User permissions end-user (farmer)
  • 42. end-user (farmer) Using Cognito with IoT DEVICE SHADOW Persistent thing state during intermittent connections APPLICATIONS AMAZON COGNITO PERMISSIONS APIs Configure device and Cognito User permissions
  • 43. Policy for Cognito with IoT aws iot attach-principal-policy --policy-name farm-sensors --principal us-east-1:xxxx-yyyy-zzzz Cognito Identity = us-east-1:xxxx-yyyy-zzzz You will need a trusted entity to attach the Cognito principal to an IoT policy • Only needed for iot-data plane calls such as DeleteThingShadow, UpdateThingShadow, GetThingShadow, Connect, Publish, and Subscribe • Can use API Gateway, Cognito Sync Triggers, or other techniques for attaching the Cognito principal ID to the IoT Policy
  • 44. Overall Cognito “pairing” workflow 1. Create a Cognito identity pool 2. Customer signs in using mobile app 3. Associate their user with their “farm” 4. Create a scope-down policy in IoT for their user 5. Attach that policy to their Cognito user in IoT
  • 45. Managing fine-grained permissions • One “farm owner” needs permissions to many shadows • "arn:aws:iot:…:thing/sprinkler123abc" • "arn:aws:iot:…:thing/sprinkler456def" • … • Listing each is tedious
  • 46. Best practice: Thing name prefixing • Prefix thing name with logical owner • sensor123abc -> macdonald-sensor123abc • IAM policies support wildcards • "arn:aws:iot:…:thing/sensor123abc" • "arn:aws:iot:…:thing/sensor123abc" • "arn:aws:iot:…:thing/sensor456def" • … • "arn:aws:iot:…:thing/macdonald-*"
  • 47. Takeaways: Cognito authorization • Cognito enables secure human control over IoT devices • IoT scope-down policy supports fine-grained control • Naming conventions simplify policy management
  • 49. Actuators Data storage & analytics Device lifecycle management Control automation AWS IoT Sensors Maintenance 1
  • 50. Lifecycle workflow Notify operator 1 Connected Disconnected Still disconnected?
  • 51. 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 third-party endpoints through SNS with subscription and retry support SNS 2
  • 53. Lifecycle events • Connect • PUBLISH lifecycle/sensor-123 {"status": "online"} • Disconnect (graceful) • PUBLISH lifecycle/sensor-123 {"status": "offline"} • Disconnect (crash) • PUBLISH lifecycle/sensor-123 {"status": "offline", "isCrash": true}
  • 54. Handling lifecycle events SELECT status, topic(2) as deviceId, timestamp() as time, isCrash FROM lifecycle/# WHERE status='offline' - Look up mobile push ID for device owner - Send SNS mobile push AWS Lambda function
  • 55. Delayed lifecycle events SELECT status, topic(2) as deviceId, timestamp() as time, isCrash FROM lifecycle/# Device Status Time sensor-123 connected 11:30 … - Double-check the status in DynamoDB - Send SNS push notification if still offline - Store update device status in DynamoDB - If offline: enqueue an SQS message with DelaySeconds AWS Lambda function SQS Message (15 minutes later) Amazon DynamoDB
  • 56. Generating lifecycle events • Connect • PUBLISH lifecycle/sensor-123 {"status": "online"} • Disconnect (graceful) • PUBLISH lifecycle/sensor-123 {"status": "offline"} • Disconnect (crash) • PUBLISH lifecycle/sensor-123 {"status": "offline", "isCrash": true}
  • 57. Lifecycle events: connecting $aws/events/presence/connected/clientId { "clientId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "timestamp": 1460065214626, "eventType": "connected", "sessionIdentifier": "00000000-0000-0000-0000-000000000000", "principalIdentifier": "000000000000/XXX:some-user/XXX:some-user" } Automatic lifecycle message
  • 58. Lifecycle events: disconnecting $aws/events/presence/disconnected/clientId { "clientId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "timestamp": 1460065214626, "eventType": ”disconnected", "sessionIdentifier": "00000000-0000-0000-0000-000000000000", "principalIdentifier": "000000000000/XXX:some-user/XXX:some-user" } Automatic lifecycle message
  • 59. Last Will and Testament (LWT) CONNECT message parts: Protocol: MQTT 3.1.1 ClientId: abc KeepAlive: 60 seconds LastWill PUBLISH message: Topic: foo/bar QoS: 1 Payload: {"foo": "bar"}
  • 60. Takeaways: lifecycle management • Use automatic lifecycle events • Use LWT for lifecycle events • SQS delayed messages and DynamoDB can reduce false positives
  • 62. AWS IoT Data storage & analytics Administration Sensors Actuators Connected Farm Control automation
  • 63. 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
  • 64. Key takeaways • Messaging • Be careful with wide fan out • No message ordering guarantees • Avoid large fan-in • WebSockets for Cognito authentication • Rules • Send data to multiple data stores at the same time • Manage device lifecycle events • Shadows • Designed for the real world: poor connectivity, out of order messages • Fine-grained control over software rollouts • Not ideal for storing time-series analytics data • Security • One cert per device • Set fine-grained permissions for devices and Cognito users • Naming conventions can simplify policy management
  • 66. AWS Marketplace – IoT Software on AWS EDGE, GATEWAY AND CONNECTIVITY DEVELOPMENT PLATFORMS & TOOLS DATA ANALYTICS AND MACHINE LEARNING IoT HARDWARE AND SENSORS aws.amazon.com/mp/iot
  • 67. Working with system integrator Pinacl, Newport used the Davra ConnecThing.io IoT platform from AWS Marketplace to connect sensors and create a unified city dashboard. Newport wanted to implement IoT proofs of concept to improve flood control, waste management, and air quality measurement—without buying and managing costly server infrastructure. • Deployment in weeks instead of months • Ability to start with just a few sensors and scale up as needed • Freedom to experiment at low cost and risk “ Pinacl presented a smart city solution with the Davra ConnecThing.io platform from AWS Marketplace in record time. We were able to complete a full evaluation ahead of schedule and quickly see our smart city initiative, the Newport Intelligence Hub, coming to light. Shaun Powell, Digital Lead, Newport City Council CHALLENGE SOLUTION BENEFITS About Newport Newport is a vibrant city of more than 300,000 in Wales, UK, seeking to invigorate its economy and improve quality of life for citizens and visitors using forward-thinking technology. Company: Newport City Council Industry: Government Country: Wales, UK Councilors: 50 Website: www.newport.gov.uk Newport, Wales Deploys Innovative Smart City Technology in Weeks with IoT Platform from AWS Marketplace
  • 68. Thank you! Kudos to Daniel Austin, Brett Francis, Olewale Oladehin, and especially David Yanacek!
  • 70. Data storage & analytics Managing software updates Control automation AWS IoT Administration Actuators Sensors
  • 71. Firmware topic (don’t do this) • Have all devices subscribe to a topic • Publish updated binaries to this topic SUBSCRIBE sensor/firmware SUBSCRIBE sensor/firmware SUBSCRIBE sensor/firmware PUBLISH sensor/firmware 01100100 01101111 00100000 01101110 01101111 01110100 00100000 01100100 01101111 00100000 01110100 01101000 01101001 01110011
  • 72. Firmware topic (don’t do this) Pros: • Sending an update is easy Cons: • Large messages not supported • Offline devices miss updates • No control over rollout
  • 73. Firmware version shadow (don’t do this) • One thing shadow for the current firmware version • All devices subscribe to shadow updates • Messages include a CloudFront download URL SUBSCRIBE $aws/shadow/firmware-thing PUBLISH $aws/shadow/firmware-thing { "desired": { "version": “123.45" "url": “https://abc123.cloudfront.net/newversion" } } SUBSCRIBE $aws/shadow/firmware-thing
  • 74. Firmware version shadow (don’t do this) Pros: • Sending an update is easy • Offline devices eventually see updates • Bulk download happens through CloudFront Cons: • No control over rollout • Shadow protocol is chatty
  • 75. Firmware in device shadows • Set each device’s shadow to its desired firmware version • Devices subscribe to their own shadow • Messages include a CloudFront download URL
  • 76. Firmware in device shadows SUBSCRIBE $aws/shadow/sensor-abc123 PUBLISH $aws/shadow/sensor-abc123 { "desired": { "version": “123.45" "url": "https://abc123.cloudfront.net/newversion" } } SUBSCRIBE $aws/shadow/sensor-def456 PUBLISH $aws/shadow/sensor-def456 { "desired": { "version": “123.45" "url": "https://abc123.cloudfront.net/newversion" } }
  • 77. Firmware in device shadows Pros: • Full control over rollout / rollback • Offline devices eventually see updates • Bulk download happens through CloudFront Cons: • Sending updates requires sending multiple messages
  • 78. Takeaway • Be careful with wide fan out to millions of devices • Wide fan out is supported, but won’t be instant • Encourage safe device management