SlideShare a Scribd company logo
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS re:INVENT
One Message to a Million Things:
Done in 60 Seconds with AWS IoT
D i n k a r P a t a b a l l a , A W S I o T
V i n a y B a n s a l , A m a z o n M u s i c
N o v e m b e r 2 7 , 2 0 1 7
I O T 3 0 8
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
How many of you are building or have built
applications on AWS IoT?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Did you think of scale?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scale
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• Message Broker
• Securely connect devices
• Communicate over PubSub Messaging model
• MQTT, HTTPS, Websockets protocol support
• Rules Engine
• Thing Shadows
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Examples
• Home automation
• Telemetry
• Device data delivery
• Broadcast notifications
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Home automation
—C o n n e c t e d T V
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Connected TV
Alexa, turn on the TV
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Connected TV
PUBLISH
command/switchOn
command/switchOff
command/volumeUp
command/volumeDown
…
…
SUBSCRIBE
command/switchOn
command/switchOff
command/volumeUp
command/volumeDown
…
…
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Wildcard subscriptions
SUBSCRIBE
command/switchOn
command/switchOff
command/volumeUp
command/volumeDown
…
…
SUBSCRIBE
command/+
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Connected TV
PUBLISH
command/switchOn
command/switchOff
command/volumeUp
command/volumeDown
…
…
SUBSCRIBE
command/+
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Wait! What if we had 1,000,000 TVs?
Sure, add a deviceId somewhere in your topic
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Somewhere, where??
deviceId/command/+
or
command/deviceId/+
or
command/+/deviceId
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT subscriptions
Data store
Write Operation
Read Operation
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT subscriptions
P0 P1 P2
Customer Subscription key space
P9
1,000,000 subscriptions
Partitions are accessed based on prefix of the topics
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT subscriptions
P0
P1
P9
deviceId1- deviceId100k
deviceId100k- deviceId200k
deviceId900k- deviceId1M
deviceId/command/+
{deviceId = 125764}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT subscriptions
P0
P1
P9
command/deviceId1-
command/deviceId100k-
command/deviceId900k -
command/deviceId/+
{deviceId = 125764}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT subscriptions
P0
P1
P9
command/+/deviceId
Creates non-uniform
workload
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
How to choose topic structure?
scalable
NOT
scalable
scalable
deviceId/command/+
or
command/deviceId/+
or
command/+/deviceId
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Takeaways
Use wildcards to consolidate subscriptions
Use deviceId to get high cardinality for your topics
When using wildcards, have wildcards to the
rightmost part of the topic structure (to the right of
high cardinality part)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Telemetry
—C o n n e c t e d W i n d F a r m
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Connected Wind Farm
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Connected Wind Farm
Amazon
Kinesis
AWS IoT
rule action
PUBLISH
sensor/windspeed
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT rule
{
"rule": {
"sql": "SELECT * FROM ‘sensor/windspeed'",
"ruleDisabled": false,
"actions": [{
"kinesis": {
"roleArn": "arn:aws:iam::123456789012:role/aws_iot_kinesis",
"streamName": "my_kinesis_stream",
"partitionKey": "${topic()}"
}
}],
}
}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT rule
“A partition key in Amazon Kinesis is used to group data into shards within a
stream”
– Amazon Kinesis
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Connected Wind Farm requirements
Number of sensors = 1,000,000
Time interval for publishing data per sensor = 50 sec
Rate of data published across all sensors = 1,000,000/50 per sec
20,000 publishes per second
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Kinesis
“Each shard can support up to 1,000 records per second for writes”
– Amazon Kinesis
So, for 20,000 writes per second, we’d need?
20 Shards
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT rule
Shard1
Shard2
Shard12
Shard20
Amazon Kinesis
PUBLISH
sensor/windspeed
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
How do we distribute our writes?
High cardinality for partitionKeys!
For example: clientId(), newuuid() ...
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT rule
{
"rule": {
"sql": "SELECT * FROM ‘sensor/windspeed'",
"ruleDisabled": false,
"actions": [{
"kinesis": {
"roleArn": "arn:aws:iam::123456789012:role/aws_iot_kinesis",
"streamName": "my_kinesis_stream",
"partitionKey": "${topic()}"
}
}],
}
}
"partitionKey": "${clientId()}"
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT rule
Shard1
Shard2
Shard12
Shard20
Amazon Kinesis
PUBLISH
sensor/windspeed
partitionKey=<clientId>
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Takeaways
Provision enough capacity for downstream services
Use high cardinality keys to write into those services
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Device Data Delivery
—C o n n e c t e d c a r s
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Connected cars
Data bundle
Common data like:
Device settings,
configuration files …
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Connected cars
offline
PUBLISH
cars/CommonContent
SUBSCRIBE
cars/CommonContent
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Connected cars
How will get the content delivered to it?
We need to store this content somewhere
Thing Shadows!
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thing Shadows
offline
AWS IoT
Thing Shadow
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Do not use shared Shadows
SUBSCRIBE
$aws/thing/shadow/CommonContent/get/accepted
Car1 Car2 Car3 Car4 Car5
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Do not use shared Shadows
PUBLISH
$aws/thing/shadow/CommonContent/get
Car1 Car2 Car3 Car4 Car5 Car6
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Do not use shared Shadows
PUBLISH
$aws/thing/shadow/CommonContent/get/accepted
Car1 Car2 Car3 Car4 Car5 Car6
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What’s the fix?
High cardinality for Thing Shadows!
Thing Shadow per device, no shared Shadows
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thing Shadows
$aws/thing/shadow/<thingName>/…
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Takeaways
Avoid shared Thing Shadows
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Broadcast notifications
—M o b i l e a d v e r t i s i n g
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Mobile advertising
Advertising platform
Mobile users
User group2
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Mobile advertising
Advertising platform
Mobile users
Geolocation = Las Vegas
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Mobile advertising
SUBSCRIBE
Ads/City/LasVegas
PUBLISH
Ads/City/LasVegas
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Mobile advertising requirements
Number of devices to fan-out = 1,000,000
Total time to deliver ads to all devices = < 60 sec
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT fanout
“For each inbound message onto AWS IoT, AWS IoT will deliver that message
to all subscribers at a rate of 10,000 per sec”
– AWS IoT
So, for 1,000,000 subscribers, it will take?
100 seconds
But we need it delivered in 60 seconds, so …?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Mobile advertising
SUBSCRIBE
Ads/City/LasVegas
PUBLISH
Ads/City/LasVegas
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Mobile advertising
SUBSCRIBE
Ads/City/LasVegas/group2
SUBSCRIBE
Ads/City/LasVegas/group1
PUBLISH
Ads/City/LasVegas/group1
Ads/City/LasVegas/group2
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS IoT fanout
Ads/City/LasVegas/group1 = 500,000 subscribers
Time to deliver to all subscribers = 50 seconds
“For each inbound message onto AWS IoT, AWS IoT will deliver that message
to all subscribers at a rate of 10,000 per sec”
– AWS IoT
Total time to deliver to all 1,000,000 subscribers = 50 seconds
Ads/City/LasVegas/group2 = 500,000 subscribers
Time to deliver to all subscribers = 50 seconds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Takeaways
Shard subscribers across topics to get desired SLAs
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Music
V i n a y B a n s a l
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Live soccer on Amazon Music
Amazon Music launched audio streaming of Bundesliga and other soccer
leagues for its Prime and Amazon Music Unlimited subscribers earlier this
year
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Problem statement
Provide near real-time updates to all browse views for all users listening to
soccer games
GOAL! Red Card
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Games page Now Playing page
1 2
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Design goals
1. Latency – < 60 secs
2. Scalability – ~ 1 MM users
3. Development Support – Client SDKs availability
iOSAndroid JavaScript
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pull vs Push
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pull
All connected devices poll for new updates
periodically.
Rest
Service
mobile
Client
Pull
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Disadvantages of Pull
1. Cost – REST Service needs to be able to handle up to 1 MM TPS
2. Latency – Added latency because of polling delay
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Push
Updates are pushed by Push Service
to all connected devices
Push
Service
mobile Client
Push
Push
updates
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Architecture
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Topic schemas
We considered multiple topic schemas to meet our requirements.
• One topic per game
• One topic for multiple games
• One topic for all games
IoT
topic
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Single topic per game
Publisher
Topic
Game 31
Topic
Game 32
Topic
Game 33
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Single topic for pool of games
Publisher
Topic
Pool 1
Topic
Pool 2
Topic
Pool 3
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
One topic for all games
Publisher
Topic
All
Games
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Future Topic Sharding
Pool 1
Pool 2
Pool 3
Publisher
Topic
Pool 1
Topic
Pool 2
Topic
Pool 3
Each pool consists
of several devices
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Advantages of AWS IoT
Criteria AWS IoT
Latency < 60 secs
Message Size < 128 KB
Security (Auth) Amazon Cognito, IAM
QoS/Reliability 2 QoS modes (At most once, At least once)
Fully Managed/Hosted Yes
Rapid Prototype Yes
Operational Dashboards Through Amazon CloudWatch
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Key takeaways
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Key takeaways
command/+
deviceId/command/+ or command/deviceId/+
20k write records per second <=> 20 Shards
"partitionKey": "${clientId()}“
$aws/thing/shadow/<thingName>/…
SUBSCRIBE Ads/City/LasVegas/group1 & SUBSCRIBE
Ads/City/LasVegas/group2
Amazon Music
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you!

More Related Content

What's hot

20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon CognitoAmazon Web Services Japan
 
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるとにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるMasatoshi Tada
 
The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAmazon Web Services Japan
 
20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSyncAmazon Web Services Japan
 
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...Amazon Web Services Japan
 
Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321) ...
Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321) ...Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321) ...
Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321) ...Amazon Web Services
 
[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様Shuji Kikuchi
 
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)Amazon Web Services Japan
 
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)Amazon Web Services Japan
 
Harbor RegistryのReplication機能
Harbor RegistryのReplication機能Harbor RegistryのReplication機能
Harbor RegistryのReplication機能Masanori Nara
 
負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おうiRidge, Inc.
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2018 AWS上の位置情報
AWS Black Belt Online Seminar 2018 AWS上の位置情報AWS Black Belt Online Seminar 2018 AWS上の位置情報
AWS Black Belt Online Seminar 2018 AWS上の位置情報Amazon Web Services Japan
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~Daisuke Morishita
 

What's hot (20)

eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについてeBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
 
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるとにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
 
The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発
 
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
 
Black Belt Online Seminar Amazon Cognito
Black Belt Online Seminar Amazon CognitoBlack Belt Online Seminar Amazon Cognito
Black Belt Online Seminar Amazon Cognito
 
20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync
 
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
 
Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321) ...
Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321) ...Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321) ...
Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321) ...
 
[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様
 
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
 
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
 
Harbor RegistryのReplication機能
Harbor RegistryのReplication機能Harbor RegistryのReplication機能
Harbor RegistryのReplication機能
 
負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
AWS IoT Greengrass V2 の紹介
AWS IoT Greengrass V2 の紹介AWS IoT Greengrass V2 の紹介
AWS IoT Greengrass V2 の紹介
 
AWS Black Belt Online Seminar 2018 AWS上の位置情報
AWS Black Belt Online Seminar 2018 AWS上の位置情報AWS Black Belt Online Seminar 2018 AWS上の位置情報
AWS Black Belt Online Seminar 2018 AWS上の位置情報
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 

Similar to IOT308-One Message to a Million Things Done in 60 seconds with AWS IoT

An Introduction to AWS IoT - Web Summit Lisbon
An Introduction to AWS IoT - Web Summit LisbonAn Introduction to AWS IoT - Web Summit Lisbon
An Introduction to AWS IoT - Web Summit LisbonBoaz Ziniman
 
IOT311_Customer Stories of Things, Cloud, and Analytics on AWS
IOT311_Customer Stories of Things, Cloud, and Analytics on AWSIOT311_Customer Stories of Things, Cloud, and Analytics on AWS
IOT311_Customer Stories of Things, Cloud, and Analytics on AWSAmazon Web Services
 
Innovations fueled by IoT and the Cloud
Innovations fueled by IoT and the CloudInnovations fueled by IoT and the Cloud
Innovations fueled by IoT and the CloudAdrian Hornsby
 
NEW LAUNCH! AWS IoT Device Management - IOT330 - re:Invent 2017
NEW LAUNCH! AWS IoT Device Management - IOT330 - re:Invent 2017NEW LAUNCH! AWS IoT Device Management - IOT330 - re:Invent 2017
NEW LAUNCH! AWS IoT Device Management - IOT330 - re:Invent 2017Amazon Web Services
 
NEW LAUNCH! AWS IoT Analytics from Consumer IoT to Industrial IoT - IOT211 - ...
NEW LAUNCH! AWS IoT Analytics from Consumer IoT to Industrial IoT - IOT211 - ...NEW LAUNCH! AWS IoT Analytics from Consumer IoT to Industrial IoT - IOT211 - ...
NEW LAUNCH! AWS IoT Analytics from Consumer IoT to Industrial IoT - IOT211 - ...Amazon Web Services
 
Containers on AWS - State of the Union - CON201 - re:Invent 2017
Containers on AWS - State of the Union - CON201 - re:Invent 2017Containers on AWS - State of the Union - CON201 - re:Invent 2017
Containers on AWS - State of the Union - CON201 - re:Invent 2017Amazon Web Services
 
RET303_Drive Warehouse Efficiencies with the Same AWS IoT Technology that Pow...
RET303_Drive Warehouse Efficiencies with the Same AWS IoT Technology that Pow...RET303_Drive Warehouse Efficiencies with the Same AWS IoT Technology that Pow...
RET303_Drive Warehouse Efficiencies with the Same AWS IoT Technology that Pow...Amazon Web Services
 
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...Amazon Web Services
 
DVC303-Technological Accelerants for Organizational Transformation
DVC303-Technological Accelerants for Organizational TransformationDVC303-Technological Accelerants for Organizational Transformation
DVC303-Technological Accelerants for Organizational TransformationAmazon Web Services
 
Security, Risk and Compliance of Your Cloud Journey - Tel Aviv Summit 2018
Security, Risk and Compliance of Your Cloud Journey - Tel Aviv Summit 2018Security, Risk and Compliance of Your Cloud Journey - Tel Aviv Summit 2018
Security, Risk and Compliance of Your Cloud Journey - Tel Aviv Summit 2018Amazon Web Services
 
MCL306_Making IoT Smarter with AWS Rekognition.pdf
MCL306_Making IoT Smarter with AWS Rekognition.pdfMCL306_Making IoT Smarter with AWS Rekognition.pdf
MCL306_Making IoT Smarter with AWS Rekognition.pdfAmazon Web Services
 
MCL306_Making IoT Smarter with AWS Rekognition
MCL306_Making IoT Smarter with AWS RekognitionMCL306_Making IoT Smarter with AWS Rekognition
MCL306_Making IoT Smarter with AWS RekognitionAmazon Web Services
 
RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...
RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...
RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...Amazon Web Services
 
Use Amazon Rekognition to Build a Facial Recognition System
Use Amazon Rekognition to Build a Facial Recognition SystemUse Amazon Rekognition to Build a Facial Recognition System
Use Amazon Rekognition to Build a Facial Recognition SystemAmazon Web Services
 
Use Amazon Rekognition to Build a Facial Recognition System
Use Amazon Rekognition to Build a Facial Recognition SystemUse Amazon Rekognition to Build a Facial Recognition System
Use Amazon Rekognition to Build a Facial Recognition SystemAmazon Web Services
 
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...Amazon Web Services
 
AWS Edge Media Services
AWS Edge Media ServicesAWS Edge Media Services
AWS Edge Media ServicesM5sime
 
NEW LAUNCH! AWS Greengrass and Amazon FreeRTOS: Connectivity and Security at ...
NEW LAUNCH! AWS Greengrass and Amazon FreeRTOS: Connectivity and Security at ...NEW LAUNCH! AWS Greengrass and Amazon FreeRTOS: Connectivity and Security at ...
NEW LAUNCH! AWS Greengrass and Amazon FreeRTOS: Connectivity and Security at ...Amazon Web Services
 
AWS Webinar CZSK Uvod do cloud computingu
AWS Webinar CZSK Uvod do cloud computinguAWS Webinar CZSK Uvod do cloud computingu
AWS Webinar CZSK Uvod do cloud computinguVladimir Simek
 

Similar to IOT308-One Message to a Million Things Done in 60 seconds with AWS IoT (20)

An Introduction to AWS IoT - Web Summit Lisbon
An Introduction to AWS IoT - Web Summit LisbonAn Introduction to AWS IoT - Web Summit Lisbon
An Introduction to AWS IoT - Web Summit Lisbon
 
Getting Started with AWS IoT
Getting Started with AWS IoTGetting Started with AWS IoT
Getting Started with AWS IoT
 
IOT311_Customer Stories of Things, Cloud, and Analytics on AWS
IOT311_Customer Stories of Things, Cloud, and Analytics on AWSIOT311_Customer Stories of Things, Cloud, and Analytics on AWS
IOT311_Customer Stories of Things, Cloud, and Analytics on AWS
 
Innovations fueled by IoT and the Cloud
Innovations fueled by IoT and the CloudInnovations fueled by IoT and the Cloud
Innovations fueled by IoT and the Cloud
 
NEW LAUNCH! AWS IoT Device Management - IOT330 - re:Invent 2017
NEW LAUNCH! AWS IoT Device Management - IOT330 - re:Invent 2017NEW LAUNCH! AWS IoT Device Management - IOT330 - re:Invent 2017
NEW LAUNCH! AWS IoT Device Management - IOT330 - re:Invent 2017
 
NEW LAUNCH! AWS IoT Analytics from Consumer IoT to Industrial IoT - IOT211 - ...
NEW LAUNCH! AWS IoT Analytics from Consumer IoT to Industrial IoT - IOT211 - ...NEW LAUNCH! AWS IoT Analytics from Consumer IoT to Industrial IoT - IOT211 - ...
NEW LAUNCH! AWS IoT Analytics from Consumer IoT to Industrial IoT - IOT211 - ...
 
Containers on AWS - State of the Union - CON201 - re:Invent 2017
Containers on AWS - State of the Union - CON201 - re:Invent 2017Containers on AWS - State of the Union - CON201 - re:Invent 2017
Containers on AWS - State of the Union - CON201 - re:Invent 2017
 
RET303_Drive Warehouse Efficiencies with the Same AWS IoT Technology that Pow...
RET303_Drive Warehouse Efficiencies with the Same AWS IoT Technology that Pow...RET303_Drive Warehouse Efficiencies with the Same AWS IoT Technology that Pow...
RET303_Drive Warehouse Efficiencies with the Same AWS IoT Technology that Pow...
 
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...
 
DVC303-Technological Accelerants for Organizational Transformation
DVC303-Technological Accelerants for Organizational TransformationDVC303-Technological Accelerants for Organizational Transformation
DVC303-Technological Accelerants for Organizational Transformation
 
Security, Risk and Compliance of Your Cloud Journey - Tel Aviv Summit 2018
Security, Risk and Compliance of Your Cloud Journey - Tel Aviv Summit 2018Security, Risk and Compliance of Your Cloud Journey - Tel Aviv Summit 2018
Security, Risk and Compliance of Your Cloud Journey - Tel Aviv Summit 2018
 
MCL306_Making IoT Smarter with AWS Rekognition.pdf
MCL306_Making IoT Smarter with AWS Rekognition.pdfMCL306_Making IoT Smarter with AWS Rekognition.pdf
MCL306_Making IoT Smarter with AWS Rekognition.pdf
 
MCL306_Making IoT Smarter with AWS Rekognition
MCL306_Making IoT Smarter with AWS RekognitionMCL306_Making IoT Smarter with AWS Rekognition
MCL306_Making IoT Smarter with AWS Rekognition
 
RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...
RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...
RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...
 
Use Amazon Rekognition to Build a Facial Recognition System
Use Amazon Rekognition to Build a Facial Recognition SystemUse Amazon Rekognition to Build a Facial Recognition System
Use Amazon Rekognition to Build a Facial Recognition System
 
Use Amazon Rekognition to Build a Facial Recognition System
Use Amazon Rekognition to Build a Facial Recognition SystemUse Amazon Rekognition to Build a Facial Recognition System
Use Amazon Rekognition to Build a Facial Recognition System
 
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...
 
AWS Edge Media Services
AWS Edge Media ServicesAWS Edge Media Services
AWS Edge Media Services
 
NEW LAUNCH! AWS Greengrass and Amazon FreeRTOS: Connectivity and Security at ...
NEW LAUNCH! AWS Greengrass and Amazon FreeRTOS: Connectivity and Security at ...NEW LAUNCH! AWS Greengrass and Amazon FreeRTOS: Connectivity and Security at ...
NEW LAUNCH! AWS Greengrass and Amazon FreeRTOS: Connectivity and Security at ...
 
AWS Webinar CZSK Uvod do cloud computingu
AWS Webinar CZSK Uvod do cloud computinguAWS Webinar CZSK Uvod do cloud computingu
AWS Webinar CZSK Uvod do cloud computingu
 

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
 

IOT308-One Message to a Million Things Done in 60 seconds with AWS IoT

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS re:INVENT One Message to a Million Things: Done in 60 Seconds with AWS IoT D i n k a r P a t a b a l l a , A W S I o T V i n a y B a n s a l , A m a z o n M u s i c N o v e m b e r 2 7 , 2 0 1 7 I O T 3 0 8
  • 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. How many of you are building or have built applications on AWS IoT?
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Did you think of scale?
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scale
  • 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • Message Broker • Securely connect devices • Communicate over PubSub Messaging model • MQTT, HTTPS, Websockets protocol support • Rules Engine • Thing Shadows
  • 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Examples • Home automation • Telemetry • Device data delivery • Broadcast notifications
  • 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Home automation —C o n n e c t e d T V
  • 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Connected TV Alexa, turn on the TV
  • 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Connected TV PUBLISH command/switchOn command/switchOff command/volumeUp command/volumeDown … … SUBSCRIBE command/switchOn command/switchOff command/volumeUp command/volumeDown … …
  • 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Wildcard subscriptions SUBSCRIBE command/switchOn command/switchOff command/volumeUp command/volumeDown … … SUBSCRIBE command/+
  • 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Connected TV PUBLISH command/switchOn command/switchOff command/volumeUp command/volumeDown … … SUBSCRIBE command/+
  • 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Wait! What if we had 1,000,000 TVs? Sure, add a deviceId somewhere in your topic
  • 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Somewhere, where?? deviceId/command/+ or command/deviceId/+ or command/+/deviceId
  • 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT subscriptions Data store Write Operation Read Operation
  • 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT subscriptions P0 P1 P2 Customer Subscription key space P9 1,000,000 subscriptions Partitions are accessed based on prefix of the topics
  • 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT subscriptions P0 P1 P9 deviceId1- deviceId100k deviceId100k- deviceId200k deviceId900k- deviceId1M deviceId/command/+ {deviceId = 125764}
  • 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT subscriptions P0 P1 P9 command/deviceId1- command/deviceId100k- command/deviceId900k - command/deviceId/+ {deviceId = 125764}
  • 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT subscriptions P0 P1 P9 command/+/deviceId Creates non-uniform workload
  • 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. How to choose topic structure? scalable NOT scalable scalable deviceId/command/+ or command/deviceId/+ or command/+/deviceId
  • 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Takeaways Use wildcards to consolidate subscriptions Use deviceId to get high cardinality for your topics When using wildcards, have wildcards to the rightmost part of the topic structure (to the right of high cardinality part)
  • 21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Telemetry —C o n n e c t e d W i n d F a r m
  • 22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Connected Wind Farm
  • 23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Connected Wind Farm Amazon Kinesis AWS IoT rule action PUBLISH sensor/windspeed
  • 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT rule { "rule": { "sql": "SELECT * FROM ‘sensor/windspeed'", "ruleDisabled": false, "actions": [{ "kinesis": { "roleArn": "arn:aws:iam::123456789012:role/aws_iot_kinesis", "streamName": "my_kinesis_stream", "partitionKey": "${topic()}" } }], } }
  • 25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT rule “A partition key in Amazon Kinesis is used to group data into shards within a stream” – Amazon Kinesis
  • 26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Connected Wind Farm requirements Number of sensors = 1,000,000 Time interval for publishing data per sensor = 50 sec Rate of data published across all sensors = 1,000,000/50 per sec 20,000 publishes per second
  • 27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis “Each shard can support up to 1,000 records per second for writes” – Amazon Kinesis So, for 20,000 writes per second, we’d need? 20 Shards
  • 28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT rule Shard1 Shard2 Shard12 Shard20 Amazon Kinesis PUBLISH sensor/windspeed
  • 29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. How do we distribute our writes? High cardinality for partitionKeys! For example: clientId(), newuuid() ...
  • 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT rule { "rule": { "sql": "SELECT * FROM ‘sensor/windspeed'", "ruleDisabled": false, "actions": [{ "kinesis": { "roleArn": "arn:aws:iam::123456789012:role/aws_iot_kinesis", "streamName": "my_kinesis_stream", "partitionKey": "${topic()}" } }], } } "partitionKey": "${clientId()}"
  • 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT rule Shard1 Shard2 Shard12 Shard20 Amazon Kinesis PUBLISH sensor/windspeed partitionKey=<clientId>
  • 32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Takeaways Provision enough capacity for downstream services Use high cardinality keys to write into those services
  • 33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Device Data Delivery —C o n n e c t e d c a r s
  • 34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Connected cars Data bundle Common data like: Device settings, configuration files …
  • 35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Connected cars offline PUBLISH cars/CommonContent SUBSCRIBE cars/CommonContent
  • 36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Connected cars How will get the content delivered to it? We need to store this content somewhere Thing Shadows!
  • 37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thing Shadows offline AWS IoT Thing Shadow
  • 38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Do not use shared Shadows SUBSCRIBE $aws/thing/shadow/CommonContent/get/accepted Car1 Car2 Car3 Car4 Car5
  • 39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Do not use shared Shadows PUBLISH $aws/thing/shadow/CommonContent/get Car1 Car2 Car3 Car4 Car5 Car6
  • 40. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Do not use shared Shadows PUBLISH $aws/thing/shadow/CommonContent/get/accepted Car1 Car2 Car3 Car4 Car5 Car6
  • 41. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What’s the fix? High cardinality for Thing Shadows! Thing Shadow per device, no shared Shadows
  • 42. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thing Shadows $aws/thing/shadow/<thingName>/…
  • 43. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Takeaways Avoid shared Thing Shadows
  • 44. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Broadcast notifications —M o b i l e a d v e r t i s i n g
  • 45. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Mobile advertising Advertising platform Mobile users User group2
  • 46. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Mobile advertising Advertising platform Mobile users Geolocation = Las Vegas
  • 47. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Mobile advertising SUBSCRIBE Ads/City/LasVegas PUBLISH Ads/City/LasVegas
  • 48. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Mobile advertising requirements Number of devices to fan-out = 1,000,000 Total time to deliver ads to all devices = < 60 sec
  • 49. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT fanout “For each inbound message onto AWS IoT, AWS IoT will deliver that message to all subscribers at a rate of 10,000 per sec” – AWS IoT So, for 1,000,000 subscribers, it will take? 100 seconds But we need it delivered in 60 seconds, so …?
  • 50. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Mobile advertising SUBSCRIBE Ads/City/LasVegas PUBLISH Ads/City/LasVegas
  • 51. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Mobile advertising SUBSCRIBE Ads/City/LasVegas/group2 SUBSCRIBE Ads/City/LasVegas/group1 PUBLISH Ads/City/LasVegas/group1 Ads/City/LasVegas/group2
  • 52. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS IoT fanout Ads/City/LasVegas/group1 = 500,000 subscribers Time to deliver to all subscribers = 50 seconds “For each inbound message onto AWS IoT, AWS IoT will deliver that message to all subscribers at a rate of 10,000 per sec” – AWS IoT Total time to deliver to all 1,000,000 subscribers = 50 seconds Ads/City/LasVegas/group2 = 500,000 subscribers Time to deliver to all subscribers = 50 seconds
  • 53. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Takeaways Shard subscribers across topics to get desired SLAs
  • 54. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Music V i n a y B a n s a l
  • 55. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Live soccer on Amazon Music Amazon Music launched audio streaming of Bundesliga and other soccer leagues for its Prime and Amazon Music Unlimited subscribers earlier this year
  • 56. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Problem statement Provide near real-time updates to all browse views for all users listening to soccer games GOAL! Red Card
  • 57. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Games page Now Playing page 1 2
  • 58. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Design goals 1. Latency – < 60 secs 2. Scalability – ~ 1 MM users 3. Development Support – Client SDKs availability iOSAndroid JavaScript
  • 59. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pull vs Push
  • 60. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pull All connected devices poll for new updates periodically. Rest Service mobile Client Pull
  • 61. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Disadvantages of Pull 1. Cost – REST Service needs to be able to handle up to 1 MM TPS 2. Latency – Added latency because of polling delay
  • 62. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Push Updates are pushed by Push Service to all connected devices Push Service mobile Client Push Push updates
  • 63. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Architecture
  • 64. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Topic schemas We considered multiple topic schemas to meet our requirements. • One topic per game • One topic for multiple games • One topic for all games IoT topic
  • 65. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Single topic per game Publisher Topic Game 31 Topic Game 32 Topic Game 33
  • 66. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Single topic for pool of games Publisher Topic Pool 1 Topic Pool 2 Topic Pool 3
  • 67. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. One topic for all games Publisher Topic All Games
  • 68. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Future Topic Sharding Pool 1 Pool 2 Pool 3 Publisher Topic Pool 1 Topic Pool 2 Topic Pool 3 Each pool consists of several devices
  • 69. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Advantages of AWS IoT Criteria AWS IoT Latency < 60 secs Message Size < 128 KB Security (Auth) Amazon Cognito, IAM QoS/Reliability 2 QoS modes (At most once, At least once) Fully Managed/Hosted Yes Rapid Prototype Yes Operational Dashboards Through Amazon CloudWatch
  • 70. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Key takeaways
  • 71. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Key takeaways command/+ deviceId/command/+ or command/deviceId/+ 20k write records per second <=> 20 Shards "partitionKey": "${clientId()}“ $aws/thing/shadow/<thingName>/… SUBSCRIBE Ads/City/LasVegas/group1 & SUBSCRIBE Ads/City/LasVegas/group2 Amazon Music
  • 72. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thank you!