44

IoT at the Edge: AWS IoT & Greengrass 활용 방법

Embed Size (px)

Citation preview

Page 1: IoT at the Edge: AWS IoT & Greengrass 활용 방법
Page 2: IoT at the Edge: AWS IoT & Greengrass 활용 방법

The “Internet of Things” (plural)

Page 3: IoT at the Edge: AWS IoT & Greengrass 활용 방법
Page 4: IoT at the Edge: AWS IoT & Greengrass 활용 방법

Products That Get Better With Time

Page 5: IoT at the Edge: AWS IoT & Greengrass 활용 방법
Page 6: IoT at the Edge: AWS IoT & Greengrass 활용 방법
Page 7: IoT at the Edge: AWS IoT & Greengrass 활용 방법

Devices Network Security Data Collection Smarts

1

IoT 서비스를할때고려할점

Page 8: IoT at the Edge: AWS IoT & Greengrass 활용 방법

Thing 과연결시어려운점

• 디바이스가항상꼭연결되어있어야만할까요?

• 디바이스가항상안정적인네트워크에연결되어있을까요?

• 특정이벤트에만처리가일어나야효과적일텐데요?

• 스트리밍데이터가생성되면빅데이터분석이쉽게가능해야할텐데요?

• 보안은당연한과제

Page 9: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 구성

DEVICE SDKSet of client libraries to

connect, authenticate and exchange messages

MESSAGE BROKERCommunicate with devices via

MQTT and HTTP

AUTHENTICATIONSecure with mutual

authentication and encryption

RULES ENGINETransform messages based on rules and

route to AWS Services

AWS Services- - - - -

3P Services

DEVICE SHADOWPersistent thing state

during intermittent connections

APPLICATIONS

AWS IoT API

REGISTRYIdentity and Management of

your things

Page 10: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 보안인증기능

AWS IoT API

AUTHENTICATIONSecure with mutual

authentication and encryption

Page 11: IoT at the Edge: AWS IoT & Greengrass 활용 방법

MQTT, HTTPS 를지원하는안전한통신지원

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

Page 12: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT에서안전하게장치와연결

1. 인증서(certificate) 생성

2. 장치에정책(Policy) 등록

3. MQTT 로 접속

Page 13: IoT at the Edge: AWS IoT & Greengrass 활용 방법

상호인증방식지원및암호화 (TLS)

Page 14: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT의강력한보안

손쉽게안전한통신을위한키구성

- 단일 API 요청하나로보안키생성CreateKeysAndCertificate()

- 고객의인증키등록사용가능Certificate signing request (CSR)

상세권한설정

디바이스관리

Pub/Sub 메시지사용권한

다른 AWS 서비스사용권한

Page 15: IoT at the Edge: AWS IoT & Greengrass 활용 방법

Pub/Sub 메시지사용권한설정예

{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Action": ["iot:Publish"],"Resource":

["arn:aws:iot:us-east-1:123456972007:topic/foo"]},{"Effect": "Allow","Action": ["iot:Subscribe"],"Resource":

["arn:aws:iot:us-east-1:123456972007:topicfilter/foo/bar/*"]}]}

Page 16: IoT at the Edge: AWS IoT & Greengrass 활용 방법

Demo #0 JAWS IoT 보안 인증 둘러보기

Page 17: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 디바이스게이트웨이

MESSAGE BROKERCommunicate with devices via

MQTT and HTTP

AWS IoT APINDA

Page 18: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 디바이스게이트웨이

표준 프로토콜 지원

수 천 만개 이상의 장치 또는 앱이 MQTT와HTTP 를 이용하여 접속 가능

양방향 통신

클라이언트(장치 또는 앱) 송신 및 수신을지속적인 연결을 유지하면서 사용 가능

높은 보안

X509 인증 또는 TLS 1.2 지원의 양방향인증

Topic Based Architecture

(lights/thing-2/color)

Page 19: IoT at the Edge: AWS IoT & Greengrass 활용 방법

Demo #1 JAWS IoT Pub/Sub 기능

Page 20: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 규칙엔진

RULES ENGINETransform messages based on rules and

route to AWS Services

AWS IoT API

Page 21: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 규칙엔진의기본기능

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

간단하고 쉬운 문법 지원

- SQL 문형 지원, filter 기능 지원

- WHERE 지원

- JSON 지원

데이터 변환을 위한 함수 지원

- 스트링 변환 (regex 지원)- 수치 연산 지원

- 암호화 지원

- UUID, Timestamp, rand 지원

SELECT *, clientId() as MQTTClientIdFROM 'one/rule' WHERE startsWith(topic(2), 'IME33') AND (state = 'INIT' OR hydro_temp > surface_temp)","actions": [{"republish": {"topic": "controllers/${substring(topic(3), 3, 5)}","roleArn": "arn:aws:iam::123456789012:role/OneRoleToRuleThemAll"}]

Page 22: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 규칙엔진병렬수행

동시에 여러 규칙 수행

단일 디바이스의 메시지만을 평가하는 것이 아닌 동시에 여러 규칙 적용 가능

규치에 따라 여러 다양한 서비스 액션 설계

단일 메시지를 여러 AWS에 동시에 적용하여 수행 가능

Page 23: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 규칙엔진과연동

RULES ENGINETransform messages based on rules and

route to AWS Services

AWS IoT API

AWS Services- - - - -

3P Services

Page 24: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 규칙엔진과연동 AWS 서비스

규칙 엔진은 AWS IoT로 들어오는메시지들을 규칙에 따라 평가하여다른 서비스에 메시지를 전달하여다양항 비지니스 로직을 바로 구성가능

Lambda나 SNS(Simple notificaiton service)를 통해 외부서비스와도 연동 가능

Actions

Page 25: IoT at the Edge: AWS IoT & Greengrass 활용 방법

규칙엔진과연동가능한서비스

Lambda 함수 호출

S3 에 파일로 저장

DynamoDB에 데이터입력

SNS로 메시지 전달

Amazon Kinesis로 메시지전달

Firehose로 메시지 전달

AWS IoT에 재전달

ElasticSearch로 바로 메시지 저장

CloudWatch 지표로 전달또는 Alarm 발생

SQS 큐로 메시지 저장

Page 26: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 규칙엔진에서머신러닝서비스연동

모델 생성 및 예측값 반환

Amazon Machine Learning 은 S3에 저장된 디바이스에서 입력된 값을 이용해 Machine Learning 모델 생성

지속적인 모델 개선 가능

새로 업데이트된 데이터를 데이터셋으로 지정하여 보다 나은 Machine Learning 모델생성하여 서비스 적용 가능

Send to S3

Amazon Machine Learning

Re-Train

Page 27: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 규칙엔진과데이터스트리밍연동

여러 다른 센서들의 데이터를 모아서 데이터 스트림으로 Kinesis stream에 전달

전달된 데이터는 데이터베이스, 어플케이션, 분석 서비스 등에서 처리되거나 사용

데이터 스트림

Page 28: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 규칙엔진 & Amazon SNS

푸쉬 서비스 연동

Apple APNS, Google GCM, Amazon ADM 엔트포인트로 메시지 전달하여 푸쉬 문자 전송

Amazon SNS -> WebhookSlack, Twillio 등의 Webhook을 지원하는 3rd 파티 서비스에 메시지 전달 연동

SNS

2

Page 29: IoT at the Edge: AWS IoT & Greengrass 활용 방법

Demo #2 JDynamoDB 로 데이터 보내기

Page 30: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 디바이스섀도우

AWS IoT API

DEVICE SHADOWPersistent thing state

during intermittent connections

Page 31: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 디바이스섀도우

Page 32: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 디바이스섀도우처리순서

Shadow

Device SDK

1. 디바이스에서 현재 상태 전송

2. 저장소에 상태 저장

3. 앱에서 현재 디바이스 상태 요청

4. 앱에서 디바이스 상태 변경 요청5. 디바이스에서 디바이스섀도우의 변경값 확인

6. 변경된 새로운 상태 전송 7. 디바이스 섀도우에서 변경된 상태 확인

Page 33: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 디바이스섀도우구조

{"state" : {

“desired" : {"lights": { "color": "RED" },"engine" : "ON"

},"reported" : {

"lights" : { "color": "GREEN" },"engine" : "ON"},"delta" : {

"lights" : { "color": "RED" }} },

"version" : 10

}

Thing

디바이스는 현재 상태를 디바이스 섀도우에 보고섀도우로부터 변경을 원하는 값을 읽음

Mobile App

앱은 디바이스에 변경 (desired) 값을 설정가장 최근 값(reported)을 읽음필요에 따라 섀도우 삭제

Shadow

섀도우 delta, desired, reported의 값을 버젼 정보와같이 전달.차이값(delta)만 전송도 가능

Page 34: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 디바이스섀도우예시

AWS IoT SDK는 디바이스 섀도우를쉽게 읽고/쓰고/변경할 수 있는 기능을제공하여, 디바이스의 상태를 자동으로쉽게 동기 가능

AWS IoT DEVICE SHADOW

UPDATE: $aws/things/{thingName}/shadow/updateDELTA: $aws/things/{thingName}/shadow/update/delta GET: $aws/things/{thingName}/shadow/getDELETE: $aws/things/{thingName}/shadow/delete

Sensor Reported Desired Delta

LED1 RED YELLOWLED1 = YellowTEMP = 60F

ACCEL X=1,Y=5,Z=4 X=1,Y=5,Z=4

TEMP 83F 60F

Page 35: IoT at the Edge: AWS IoT & Greengrass 활용 방법

Demo #3 JShadow를 이용하여 선풍기 동작

Page 36: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 레지스트리

AWS IoT API

REGISTRYIdentity and Management of

your things

Page 37: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT 레지스트리

• key: value 형식으로저장• 펌웨어버젼

• 디바이스시리얼넘버

• 기술지원, 유지보수• 참조정보및 URL 입력

• 제품파트넘버등

• 왜부기술지원시스템과연계참조가능

Page 38: IoT at the Edge: AWS IoT & Greengrass 활용 방법

AWS IoT – 디바이스관리

S3에 versioning 기능을 통해 펌웨어 관리 및 저장

메시지를 디바이스 게이트웨이를 통해 디바이스 전체 또는 부분에 전달하고, S3 URL을전달하여 디바이스가 펌웨어를 직접 다운로드 가능

펌웨어 업데이트

S3에 펌웨어 저장

Publish (디바이스에 알림)

• 원하는 디바이스업데이트 가능

• 규칙 엔진에서 펌웨어업데이트 상태를DynamoDB 등에 저장관린

• 레지시트리에 버젼 정보저장 관리

Page 39: IoT at the Edge: AWS IoT & Greengrass 활용 방법

임베디드 디바이스를 쉽게 프로그래밍 할 수 있는 능력이 필요

디바이스를 새로 프로그래밍 하지 못하면 디바이스는 기능의 제약이 생김

IoT 서비스환경이가진어려운문제

양방향 지연 속도

연결 중단

비싼 네트워크 비용

Page 40: IoT at the Edge: AWS IoT & Greengrass 활용 방법

ThingsSense & Act

CloudStorage& Compute

IntelligenceInsights &Logic → Action

AWS IoT 플랫폼구성AWS IoT를 통해 IoT 백엔트 환경 활용

Action

DeviceState

AWS Services

Applications

Authentication& Authorization

DeviceGateway

Registry

AWS IoT API

Messages Messages

Page 41: IoT at the Edge: AWS IoT & Greengrass 활용 방법

Messages Messages

Authentication& Authorization

DeviceGateway

Action

DeviceState

AWS Services

Applications

Registry

AWS IoT API

AWS IoT 플랫폼 + 디바이스로확장디바이스가 있는 로컬 환경으로 기능 확장

DeviceState

Action

DeviceGateway

Messages

Authentication& Authorization

Security

Page 42: IoT at the Edge: AWS IoT & Greengrass 활용 방법

스마트 홈 농업 현장 공장 지역

IoT 커넥티드 디바이스를 위한 로컬 컴퓨팅, 메시징 및 데이터 캐싱 허브

AWS 서버리스 프로그래밍 모델을 그대로 활용하여 원격지 컴퓨팅에서 활용임베디드 기기 및 원격 대용량 데이터 처리에 용이

IoT 기기제조

Greengrass 런타임 설치

= +

AWS Greengrass

Page 43: IoT at the Edge: AWS IoT & Greengrass 활용 방법

로컬컴퓨팅

로컬데이터캐싱

안전한통신

로컬메시징

클라우드 연결이 간헐적인 경우

AWS Greengrass 특징적인기능

Page 44: IoT at the Edge: AWS IoT & Greengrass 활용 방법

다양한 AWS IoT SDK 지원

C-SDK(Ideal for embedded

OS)

JS-SDK (Ideal for Embedded

Linux Platforms)

Arduino Library(Arduino Yun)

Mobile SDK(Android and iOS)