aws iot 서비스 활용하기- 윤석찬, aws 테크에반젤리스트 :: iot convergence...

49
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 윤석찬 AWS코리아, 테크에반젤리스트 스타트업과 개발자를 위한 AWS IoT 서비스 활용하기 @channyun

Upload: amazon-web-services-korea

Post on 07-Jan-2017

5.052 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

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

윤석찬 AWS코리아, 테크에반젤리스트

스타트업과 개발자를 위한 AWS IoT 서비스 활용하기

@channyun

Page 2: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

아마존 웹 서비스 소개 Amazon Web Services

2006년 부터 클라우드 서비스 운영 경험

다양한 클라우드 업무를 지원하는 50여개 이상

고객의 피드백을 기반한 빠른 혁신 속도

11 리전, 30 가용영역 , 53 엣지 로케이션

50번의 자발적인 가격 인하

수천개 파트너사 및 마켓플레이스 제품

축적된 경험

폭넓은 전문 서비스

혁신의 속도

글로벌 인프라

가격 철학

파트너 생태계

Page 3: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

다양한 벤더의 SDK 및 개발도구

별도 프로토콜 구현 문제

기기 확장성 및 데이터 노이즈

보안 및 통신 암호화

클라우드, 데이터 분석 모바일 앱과 통합

실시간 빅데이터 처리

예측 모델 및 적용

개발자에게 IoT 서비스 도전

Page 4: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015
Page 5: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT

안전한 IoT 통신 가능

누구나 IoT 기기 연결 가능

손 쉽게 서비스 기능 구현

“수십억개의 IoT 장치를 AWS에 안전하게 연결하고, 애플리케이션 및 각 장치간 상호 작용할 수 있게 하는 서비스”

Page 6: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015
Page 7: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

Demo- AWS IoT 맛보기

Page 8: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT

디바이스 SDK 클라이언트 인증 및 연결, 메시지 교환을 위한 개발도구

디바이스 게이트웨이 MQTT 및 HTTP 기반

디바이스 통신

보안 및 인증 고급 인증 및 암호화를

통한 보안 제공

RULES ENGINE 장치메시지를 규칙에 따라 AWS 서비스와 연계 동작

AWS 서비스 - - - - -

서드파티 서비스

DEVICE SHADOW 네트웍 단절에도 응답하는

가상 장치

애플리케이션

AWS IoT API

디바이스 레지스트리 IoT 장치 등록 및 관리

Page 9: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT 메시지 브로커

디바이스 게이트웨이 MQTT 및 HTTP 기반

디바이스 통신

Page 10: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT Device Gateway 표준 프로토콜 제공 MQTT 및 HTTP 1.1를 기반으로 장치 및 애플리케이션 간 연결 가능 Pub/Sub을 통한 양방향 메시지 클라우드로 부터 클라이언트(장치 및 앱)에 명령 실행 가능 암호화 기본 제공 X509 인증서 및 TLS 1.2 Client Mutual Auth 기능 기본 제공

Topic Based Architecture

(lights/thing-2/color)

확장성 높은 디바이스 게이트웨이

Page 11: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

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 브로커의 개발/유지/확장 및 클라우드에 적용 필요

Page 12: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

MQTT simple to implement

Connect

Publish

Subscribe

Unsubscribe Disconnect

client=newMessaging.Client(hostname,port,clientId)client.onMessageArrived=messageArrived;client.onConnectionLost=connectionLost;client.connect({onSuccess:connectionSuccess});

functionconnectionSuccess(){ client.subscribe(“planets/earth");

varmsg=newMessaging.Message("Helloworld!");msg.destinationName="planets/earth";client.publish(msg);

}

functionmessageArrived(msg){ console.log(msg.payloadString);

client.unsubscribe("planets/earth");client.disconnect();

}

Eclipse Paho JavaScript MQTT client

Page 13: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT 메시지 브로커: 매니지드 서비스

확장성 높은 디바이스 게이트웨이

수백만개 장치에서 수십억 메시지 양방향

전달 가능

Subscribers Publishers

Page 14: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT 인증 보안 AUTHENTICATION

Secure with mutual authentication and encryption

보안 및 인증 고급 인증 및 암호화를

통한 보안 제공

Page 15: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT 보안 강력한 인증 기술 – X509 인증기반

강력한 암호 통신 – TLS 기반

Page 16: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

하나의 서비스, 두개의 프로토콜 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

Page 17: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

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/*"] }]}

Page 18: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT Rules Engine

RULES ENGINE 장치메시지를 규칙에 따라 AWS 서비스와 연계 동작

Page 19: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT Rules Engine 기초

개발자 친화적인 문법 ü  SQL로 정의 가능 ü  WHERE 절 및 JSON 지원

시그널 탐지 가능 ü  문자열 탐색(regex지원) ü  수학 연산자 제공 ü  암호화 지원 ü  UUID, Timestamp, rand, etc.

SELECT * FROM ‘things/thing-2/color’ WHERE color = ‘red’

Page 20: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT – SQL 문법

SELECT DATA FROM TOPIC WHERE FILTER

•  데이터베이스 테이블 탐색과 비슷 •  기본 데이터 소스는 MQTT

예제: •  FROM mqtt(‘my/topic’)

•  FROM (‘my/topic’)

•  WHERE temperature >=30

Page 21: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT Rules Engine – JSON 포맷 {

"SELECT*,clientId()asMQTTClientIdFROM'room/ac/+'WHEREtemperature>30","actions":[{”sns":{"roleArn":"arn:aws:iam::123456789012:role/SNSPutRole","topicArn":"arn:aws:sns:us-east-1:123456789012:TempWarningNotification"}]}

온도가 30도가 넘었을 때 방안에 에어콘의 아이디

선택

모바일 폰으로 푸시 알림 동작 수행

Page 22: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT Rules Engine 서비스 동작

RULES ENGINE Transform messages based on rules and

route to AWS Services

AWS Services - - - - -

3P Services

AWS 서비스 - - - - -

서드파티 서비스

Page 23: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

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…)

Page 24: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT Rules Engine: AWS 연동

Rules Engine는 유입 메시지를 평가하여 AWS IoT에 제공함과 동시에 비지니스 규칙에 따라 적절한 엔드포인트로 전달하는 역할 수행

AWS Lambda 함수 실행

S3 버킷에 객체 저장

DynamoDB 테이블에 데이터 추가/변경

SNS 토픽으로 푸시 메시지

Amazon Kinesis 실시간 스트림

동작

Amazon Kinesis Firehose 전달

AWS IoT에 전달

Page 25: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT 예제: 데이터 저장 및 시각화

Amazon DynamoDB Table

Rules Engine

Policy Private Key & Certificate

Thing/Device

Rule SDK

AWS IoT AWS Services

Policy

Dashboard

IAM Role

Select * from ‘iotthings/+’

Action DynamoDB S3 Website

Page 26: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

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

Page 27: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT 예제: 머신러닝 활용

이상값 탐지 nomaly Detection Amazon Machine Learning은 Rules Engine에 예측 모델 평가 제공 가능 예측을 위한 지속적 업데이트 가능 데이터를 통한 지속적 모델 업데이트로 실시간 예측 활용

Send to S3

Amazon Machine Learning

Re-Train

Amazon S3

Page 28: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT DeviceShadow

DEVICE SHADOW 네트웍 단절에도 응답하는

가상 장치

Page 29: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT Device Shadow

Shadow

네트워크가 일시적으로 단절될 경우 상태 정보 처리 상태 정보, 메타 데이터(센서값) 등을 동기화하여, 네트워크가 활성화 될때까지제공

실제 IoT 기기를 대표하는 클라우드에서 가상 장치

Page 30: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT Shadow Flow

Shadow

Device SDK

1. 장치가 현재 상태 정보 알림

2. 상태 정보 저장

3. 앱에서 현재 상태 정보 요청

4. 앱에서 상태 변경 요청 5. Device Shadow에서 상태 동기화

6. 장치가 상태 정보 알림 7. Device Shadow 상태 변경 확인 AWS IoT

Page 31: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

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도

Page 32: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

활용 예제: 자동 청소기

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

Page 33: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

활용 예제: 자동 청소기 (모바일 앱)

Android App

UpdateThingShadow

Desired: { “status”: “RUNNING” }

$aws/things/light/update

$a/vacuum/update/delta Shadow

Shadow

Page 34: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT – 지금 시작하기

AWS IoT SDKs

IoT Starter Kits

Page 35: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT Device SDK 시작하기

C-SDK (Ideal for embedded

OS)

JS-SDK (Ideal for Embedded

Linux Platforms)

Arduino Library

(Arduino Yun)

Mobile SDK (Android and iOS)

Page 36: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

Arduino Yún SDK

Arduino IDE 라이브러리 다양한 하드웨어 생태계

https://aws.amazon.com/ko/iot/sdk/

Page 37: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

Node.js SDK

NPM 기반 설치 임베디드 리눅스 보드 지원 손쉬운 개발 및 하드웨어 접근

https://aws.amazon.com/ko/iot/sdk/

Page 38: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

Node.js SDK

Page 39: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

Embedded C SDK

임베디드 개발용 플랫폼별 포팅 가능 소스 코드로 전달 가능 w/ POSIX port

https://aws.amazon.com/ko/iot/sdk/

Page 40: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

Embedded C SDK

프로토콜, 클라이언트, 샘플 코드 등 모두 제공 TLS MQTT Client Shadow SDK Examples

https://aws.amazon.com/ko/iot/sdk/

Page 41: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT 공식 스타터킷 제공 업체

https://aws.amazon.com/ko/iot/getting-started/#kits

Page 42: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

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

Page 43: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

https://www.youtube.com/watch?v=txWTxAyhC78

Demo- IoT 그린하우스

Page 44: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

사용한 만큼만 과금 (초기 비용 없음) 백만 메시지 당 $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 과금 모델

Page 45: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

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 과금 예제

Page 46: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

https://www.hackster.io/challenges/AWSIoTMegaContest

Page 47: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

http://bit.ly/aws-iot-hack AWS IoT 시작하기

Page 48: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

AWS IoT HackDay Seoul

Page 49: AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015

여러분의 피드백을 기다립니다!

•  AWSKRUG: http://awskr.org •  AWS 공식 블로그: http://aws.amazon.com/ko/blogs/korea •  AWS 공식 소셜 미디어

@AWSKorea

AmazonWebServices

AWSKorea

AWSKorea