ON-PREMISE
IOT
AWS -
Experience

• ZOYI AdbyMe (2012 ~ 2014)

• AdbyMe: 

• AdbyMePlay: 

• Cooki: 

• CarryU: 

• ZOYI Corperation CTO of WI (2014 ~ current)

• (Walkinsight): 

• (Walkin): 

Technical Experience

• Ruby On Rails, Dropwizard, Spring, Play, React

• Kubernetes, Kops, Docker, Terraform

• Kafka, Storm, Hbase, Hadoop, Spark

• https://stackshare.io/kty1965/job-stack

• https://github.com/kty1965
WALK INSIGHTS
©ZOYI Corporation
https://zoyi.co
©Walkinsights
https://walkinsights.com
- 24 , 365
- 24 , 365
S
A
L
E
34%
55%
2
VMD
15%
72%
(FUNNEL)
12% 8%
©ZOYI Corporation
https://zoyi.co
©Walkinsights
https://walkinsights.com
ON-PREMISE
AS IS REQUIREMENTS
5000 

WIFI TPS 4 ~ 5000 , 2MB 

Batch Job

State
!
2014 MVP .
OPENWRT REST API
MVP …
command async 

WIFI signal Debugging

HTTP , overhead 

http, https port
!
?
RabbitMQ

• Queue 

Web socket RabbitMQ produce

Java Worker(by RabbitMQ client) consume
…
RABBITMQ
Consume rate produce rate 

Queue size 

Memory Produce rate
,
KAFKA
LinkedIn 

High-throughput

Distributed

Low Latency

Scalability

Fault-Tolerant

Durability

High Concurrency

Consumer Friendly

RabbitMQ
STORM
Twitter 

Scalability

Low latency

Reliable

Easy to operate

Data guarantee

Java consumer
ON-PREMISE IDC
,


• CPU

• Memory

• Board

, 

• Raid



• Network card

• throughput

• Ip
AWS .
©ZOYI Corporation
https://zoyi.co
©Walkinsights
https://walkinsights.com
AWS -
AWS IOT CORE
MQTT 

MQTT via WebSocket
AWS IOT CORE
MQTT (Message Queue Telemetry Transport)







Pub/Sub
AWS IOT CORE
Topic pub/sub 

room/A/sensors/:uuid_a/temperature

room/A/sensors/:uuid_b/moisture

room/B/sensors/:uuid_c/temperature

Wildcard 

• #: 

• +: 

topic 

• $aws/events/presence/connected/clientId

• $aws/events/presence/disconnected/clientId

• $aws/things/thingName/shadow/get

• $aws/rules/ruleName

• …
MQTT (1/2)
QoS(Quality of Service)

• 0: at most once

• 1: at least once

• 2: exactly once

AWS Qos 0,1
AWS IOT CORE
MQTT (2/2)
AWS IOT RULE
AWS IoT MQTT 

SQL 



• Sns

• Sqs

• S3

• DynamoDB

• Kinesis

• Lambda
AWS IOT RULE
{
"topicRulePayload": {
"sql": "SELECT * FROM room/+/sensors/+/temp where temp >= 30",
"ruleDisabled": false,
"awsIotSqlVersion": "2016-03-23",
"actions": [{
"lambda": {
"functionArn":
“arn:aws:lambda:us-east-2:123456789012:function:hotRoomAlert"
}
}]
}
}
AWS IOT RULE
Kafka Kinesis 

Kafka produce web socket == IOT Rule + Trigger 

IOT Rule Lambda
AWS EMR SPARK STREAM
UpdateStateByKey, Redis state
AWS ATHENA
S3 

• Csv

• Json

• Parquet

• Orc

Glue Table/Crawler
Q & A

On-premise를 이용하는 iot 서비스 aws 리-아키텍쳐 하기