2. 아마존 웹 서비스 소개 Amazon Web Services
2006년 부터 클라우드 서비스 운영 경험
다양한 클라우드 업무를 지원하는 50여개 이상
고객의 피드백을 기반한 빠른 혁신 속도
11 리전, 30 가용영역 , 53 엣지 로케이션
50번의 자발적인 가격 인하
수천개 파트너사 및 마켓플레이스 제품
축적된 경험
폭넓은 전문 서비스
혁신의 속도
글로벌 인프라
가격 철학
파트너 생태계
3. 다양한 벤더의
SDK 및 개발도구
별도 프로토콜
구현 문제
기기 확장성 및
데이터 노이즈
보안 및 통신
암호화
클라우드, 데이터 분석
모바일 앱과 통합
실시간 빅데이터
처리
예측 모델 및
적용
개발자에게 IoT 서비스 도전
5. AWS IoT
안전한
IoT 통신 가능
누구나 IoT 기기
연결 가능
손 쉽게
서비스 기능 구현
“수십억개의 IoT 장치를 AWS에 안전하게 연결하고,
애플리케이션 및 각 장치간 상호 작용할 수 있게 하는 서비스”
8. AWS IoT
디바이스 SDK
클라이언트 인증 및 연결, 메
시지 교환을 위한 개발도구
디바이스 게이트웨이
MQTT 및 HTTP 기반
디바이스 통신
보안 및 인증
고급 인증 및 암호화를
통한 보안 제공
RULES ENGINE
장치메시지를 규칙에 따라
AWS 서비스와 연계 동작
AWS 서비스
- - - - -
서드파티 서비스
DEVICE SHADOW
네트웍 단절에도 응답하는
가상 장치
애플리케이션
AWS IoT API
디바이스 레지스트리
IoT 장치 등록 및 관리
9. AWS IoT 메시지 브로커
디바이스 게이트웨이
MQTT 및 HTTP 기반
디바이스 통신
10. AWS IoT Device Gateway
표준 프로토콜 제공
MQTT 및 HTTP 1.1를 기반으로 장치 및
애플리케이션 간 연결 가능
Pub/Sub을 통한 양방향 메시지
클라우드로 부터 클라이언트(장치 및 앱)
에 명령 실행 가능
암호화 기본 제공
X509 인증서 및 TLS 1.2 Client Mutual
Auth 기능 기본 제공
Topic Based
Architecture
(lights/thing-2/color)
확장성 높은
디바이스 게이트웨이
11. MQTT
OASIS 표준 프로토콜 (v3.1.1) – 기기 통신을 위해 고안
MQTT
Broker
CONNECT
SUBSCRIBE
to MQTT broker
to thing3/data
CONNECT
PUBLISH
to MQTT broker
to thing3/data
recv
recv
pub
thing #3
thing #1
thing #2
TCP/IP
WebSocket
MQTT 브로커의 개발/유지/확장 및 클라우드에 적용 필요
16. 하나의 서비스, 두개의 프로토콜
MQTT + Mutual Auth TLS AWS Auth + HTTPS
Server Auth TLS + Cert TLS + Cert
Client Auth TLS + Cert AWS API Keys
Confidentiality TLS TLS
Protocol MQTT HTTP
Identification AWS ARNs AWS ARNs
Authorization AWS Policy AWS Policy
NEW
17. AWS IoT 권한 관리
• 세분화된 권한 관리:
o 장치 관리
o Pub/Sub 데이터접근
o AWS 서비스 접근
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["iot:Publish"],
"Resource":
["arn:aws:iot:us-east-1::topic/foo"]
},
{
"Effect": "Allow",
"Action": ["iot:Subscribe"],
"Resource":
["arn:aws:iot:us-east-1::topicfilter/foo/bar/*"]
}]}
18. AWS IoT Rules Engine
RULES ENGINE
장치메시지를 규칙에 따라
AWS 서비스와 연계 동작
19. AWS IoT Rules Engine 기초
개발자 친화적인 문법
ü SQL로 정의 가능
ü WHERE 절 및 JSON 지원
시그널 탐지 가능
ü 문자열 탐색(regex지원)
ü 수학 연산자 제공
ü 암호화 지원
ü UUID, Timestamp, rand, etc.
SELECT * FROM ‘things/thing-2/color’
WHERE color = ‘red’
20. AWS IoT – SQL 문법
SELECT DATA FROM TOPIC WHERE FILTER
• 데이터베이스 테이블 탐색과 비슷
• 기본 데이터 소스는 MQTT
예제:
• FROM mqtt(‘my/topic’)
• FROM (‘my/topic’)
• WHERE temperature >=30
21. AWS IoT Rules Engine – JSON 포맷
{
"SELECT *, clientId() as MQTTClientId FROM 'room/ac/+'
WHERE temperature > 30",
"actions": [
{
”sns": {
"roleArn":
"arn:aws:iam::123456789012:role/SNSPutRole",
"topicArn": "arn:aws:sns:us-
east-1:123456789012:TempWarningNotification"
}
]
}
온도가 30도가 넘었을 때
방안에 에어콘의 아이디
선택
모바일 폰으로 푸시
알림 동작 수행
22. AWS IoT Rules Engine 서비스 동작
RULES ENGINE
Transform messages
based on rules and
route to AWS Services
AWS Services
- - - - -
3P Services
AWS 서비스
- - - - -
서드파티 서비스
23. 1. AWS 서비스
(직접 연동)
Rules Engine
동작
AWS IoT Rules Engine: AWS 연동
AWS
Lambda
Amazon
SNS
Amazon
SQS
Amazon
S3
Amazon
Kinesis
Amazon
DynamoDB Amazon RDS
Amazon
Redshift
Amazon Glacier
Amazon
EC2
3. 외부 연결 지점
(via Lambda and SNS)
Rules Engine은 AWS IoT를
외부 및 AWS 내부 서비스
동작 제어
2. AWS 서비스 제어
(via Amazon Kinesis, AWS
Lambda, Amazon S3…)
24. AWS IoT Rules Engine: AWS 연동
Rules Engine는 유입 메시지
를 평가하여 AWS IoT에 제
공함과 동시에 비지니스 규
칙에 따라 적절한 엔드포인
트로 전달하는 역할 수행
AWS Lambda 함수 실행
S3 버킷에 객체 저장
DynamoDB 테이블에 데이터
추가/변경
SNS 토픽으로 푸시 메시지
Amazon Kinesis 실시간 스트림
동작
Amazon Kinesis Firehose 전달
AWS IoT에 전달
25. AWS IoT 예제: 데이터 저장 및 시각화
Amazon DynamoDB
Table
Rules Engine
PolicyPrivate Key
& Certificate
Thing/Device
Rule
SDK
AWS IoT AWS Services
Policy
Dashboard
IAM
Role
Select * from ‘iotthings/+’
Action
DynamoDB S3 Website
26. The image cannot be displayed. Your computer may not have
enough memory to open the image, or the image may have been
corrupted. Restart your computer, and then open the file again.
If the red x still appears, you may have to delete the image and
then insert it again.
AWS IoT 예제: 스트리밍 데이터
N:1 센서 데이터 실시간 제어 가능 (잡음 제거 가능)
Rules Engine는 데이터 필터 후, Amazon Kinesis로 실시간 전달 가능
Amazon Kinesis Streams을 통한 2차 연동
동시적 스트림은 데이터베이스, 애플리케이션 및 기타 서비스에서 서비스 수행
Ordered Stream
Amazon
Kinesis
Amazon
RDS
27. AWS IoT 예제: 머신러닝 활용
이상값 탐지 nomaly Detection
Amazon Machine Learning은 Rules Engine에 예측 모델 평가 제공 가능
예측을 위한 지속적 업데이트 가능
데이터를 통한 지속적 모델 업데이트로 실시간 예측 활용
Send to S3
Amazon
Machine
Learning
Re-Train
Amazon S3
29. AWS IoT Device Shadow
Shadow
네트워크가 일시적으
로 단절될 경우 상태
정보 처리
상태 정보, 메타 데이터
(센서값) 등을 동기화하
여, 네트워크가 활성화
될때까지제공
실제 IoT 기기를 대표하는 클라우드에서 가상 장치
30. AWS IoT Shadow Flow
Shadow
Device SDK
1. 장치가 현재 상태 정보 알림
2. 상태 정보 저장
3. 앱에서 현재 상태 정보 요청
4. 앱에서 상태 변경 요청
5. Device Shadow에서 상태
동기화
6. 장치가 상태 정보 알림
7. Device Shadow 상태 변경 확인
AWS IoT
31. AWS IoT Device Shadow Topics (MQTT)
Thing SDK (C-SDK, JS-SDK)
를 통해 손쉽게 shadow 기능
을 만들 수 있으며, 장치와 자
동으로 동기화 가능
AWS IoT Thing Shadow
UPDATE: $aws/things/{thingName}/shadow/update
DELTA: $aws/things/{thingName}/shadow/update/delta
GET: $aws/things/{thingName}/shadow/get
DELETE: $aws/things/{thingName}/shadow/delete
Sensor
Reported
Desired
Delta
LED1
RED YELLOW
LED1 =
Yellow
TEMP =
28
ACCEL
X=1,Y=5,Z=4 X=1,Y=5,Z=4
TEMP
30도 28도
32. 활용 예제: 자동 청소기
desired: {
“status”: “RUNNING”
}
shadow/update update/accepted
Republish vacuum/shadow/update
vacuum/update/delta
reported: {
“AmbientLightValue”: 55
}
Rules Engine
Shadow
Shadow
One sensor automatically triggering the other device!
Select * from $/update/accepted where
AmbientLightValue <100
39. Embedded C SDK
임베디드 개발용
플랫폼별 포팅 가능
소스 코드로 전달 가능
w/ POSIX port
https://aws.amazon.com/ko/iot/sdk/
40. Embedded C SDK
프로토콜, 클라이언트, 샘
플 코드 등 모두 제공
TLS
MQTT Client
Shadow SDK
Examples
https://aws.amazon.com/ko/iot/sdk/
41. AWS IoT 공식 스타터킷 제공 업체
https://aws.amazon.com/ko/iot/getting-started/#kits
42. AWS IoT 공식 스타터킷 제공 업체
Broadcom WICED
BCM4343W
On Threadx/Netx
Marvell
EZConnect
MW302
On FreeRTOS
Renasas RX63N
On Micrium OS
TI CC3200
On TI-RTOS
Microchip WCM
PIC32 Platform
Intel Edison
on Yocto Linux
Mediatek
LinkOne
on Linkit OS
Dragonboard
410c on
Ubuntu
Seeeduino
Arduino on
openWRT
Beaglebone
Green on
Debian
https://aws.amazon.com/ko/iot/getting-started/#kits
44. 사용한 만큼만 과금 (초기 비용 없음)
백만 메시지 당 $5 per million
ü US East (N. Virginia), US West (Oregon),
EU (Ireland) $8 in Asia Pacific (Tokyo)
AWS IoT 무료 제공(Free-tier)
매월 250,000 메시지당 무료 (12개월 제공)
AWS IoT 과금 모델
45. 100 sensors * 30 days *
24 hours * 60 minutes =
4.38 million messages
1 meter * 100 readings * 30
days * 24 hours * 60 minutes
=
4.38 million messages
100 개의 센서:
분당 1개의 메시지 전송
DynamoDB 테이블: 전체 센서 데이터 받는 경우
데이터 확인: 모든 센서 데이터를 다 받는 경우
1 table * 100 readings * 30
days * 24 hours * 60 minutes
=
4.38 million messages
4.38 million publishes from sensors: 4.38 * $5 = $21.90
4.38 million deliveries to a metering unit: 4.38 * $5 = $21.90
4.38 million deliveries to DynamoDB: $0
4.38 million storing to DynamoDB: 별도 과금
AWS IoT
AWS IoT 과금 예제