Louie NRT Story

[AWS] IOT Core Basic 본문

서버시스템

[AWS] IOT Core Basic

hyeok0724.kim@gmail.com 2020. 1. 10. 10:00
반응형

Writed: 10 Jan 20

1. AWS IoT Core System Architectrue

출처 - https://www.youtube.com/watch?v=M8yhED_2GQo

2. AWS IOT 구성요소

 1) 디바이스 게이트웨이

  - 디바이스가 AWS IOT와 통신 할 수 있도록 해줌

 2) 메시지 브로커

  - MQTT 프로토콜 또는 MQTT over WebSocket 게시 및 구독

 3) 규칙 엔진

  - SQL 기반 S3, DynamoDB, Lambda 서비스 데이터 전송 가능

 4) 보안 및 자격 증명 서비스

  - 데이터 주고 받을 때 암호화

 5) 레지스트리

  - 디바이스의 인증서 및 MQTT Client ID 관리

 6) 그룹 레지스트리

  - 여러 디바이스 한번에 관리

 7) 디바이스 섀도우

  - 디바이스 현재 상태 정보 저장 및 검색

 8) 디바이스 섀도우 서비스

  - 디바이스 섀도우 정보 게시 및 상태 통기화

 9) 디바이스 프로비저닝 서비스

  - 사물(레지스트리의 디바이스 속성 정보), 인증서, 정책

 10) 사용자 지정 인증 서비스

  - 사용자 지정 인증 서비스와 Lambda 사용하여 인증 및 권한 부여 관리

 11) 작업 서비스

  - 어플리케이션 및 펌웨어 업데이트 다운로드 설치 및 재부팅 등 원격 작업

 12) AWS IOT 용 Alexa Voice Service(AVS) 통합

 

3. AWS IOT 엑세스

 1) AWS Command Line Interface(AWS CLI)

  - AWS IOT 명령을 실행함

 2) AWS IOT API

  - HTTP 또는 HTTPS 요청하여 사물, 인증서, 규칙 및 정책 생성 및 관리 할 수 있음

 3) AWS SDK

  - HTTP/HTTPS API를 래핑하고 지원 언어로 프로그래밍 작성 할 수 있도록 해줌

 4) AWS IOT Deivce SDK

  - 디바이스에서 AWS IOT 메시지 송수신 하는 애플리케이션 구축

4. 관련 서비스

 1) Amazon Simple Storage Service(S3)

  - 확장 가능한 스토리지 제공

 2) Amazon DynamoDB

  - NoSQL 데이터베이스 제공

 3) Amazon Kinesis

  - 실시간 대규모 데이터 스트리밍 처리

 4) AWS Lambda

  - 이벤트에 대한 응답

 5) Amazon Simple Notification Service(SNS)

  - 알림 송수신

 6) Amazon Simple Queue Service

  - 애플리케이션이 검색할 데이터를 대기열 저장함

5. 간단한 예제

1) 정책 만들기

2) 사물 만들기

이번 포스트에서는 인증서를 다운로드 한다는 것만 알아두면 됨

3) 동작되는 것을 테스트 함

- 무슨 OS를 선택하든 내부의 start 파일만 실행 시키면 필요한 Package는 자동으로 다운로드 되고 실행됨

- 실행 될 start.sh의 bash 코드임

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# stop script on error
set -e
 
# Check to see if root CA file exists, download if not
if [ ! -f ./root-CA.crt ]; then
  printf "\nDownloading AWS IoT Root CA certificate from AWS...\n"
  curl https://www.amazontrust.com/repository/AmazonRootCA1.pem > root-CA.crt
fi
 
# install AWS Device SDK for Python if not already installed
if [ ! -d ./aws-iot-device-sdk-python ]; then
  printf "\nInstalling AWS SDK...\n"
  git clone https://github.com/aws/aws-iot-device-sdk-python.git
  pushd aws-iot-device-sdk-python
  python setup.py install
  popd
fi
 
# run pub/sub sample app using certificates downloaded in package
printf "\nRunning pub/sub sample application...\n"
python aws-iot-device-sdk-python/samples/basicPubSub/basicPubSub.py -e a250bpbwc8ncp5-ats.iot.ap-northeast-2.amazonaws.com 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

- 예제 프로그램 basicPubSub.py가 실행되면서 IOT Core에 데이터가 올라오는 것을 확인 할 수 있음

- 테스트 기능을 통하여 sdk/test/Python을 구독하거나 sdk/test/Python을 게시하면 데이터를 주고 받을 수 있음

- 위에서 실행시킨 basicPubSub.py 코드를 보면 sdk/test/Python이 구독과 게시가 topic으로 Default 설정 되어 있음

 

6. 추가 설명

1) 상호작용의 HTTPS 주소가 사물의 End Point 주소임

2) 다운로드 한 인증서가 주고 받은 데이터를 암호화 하는 것임

 

Reference:

- https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/what-is-aws-iot.html

 

https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/what-is-aws-iot.html

AWS IoT란 무엇입니까?

docs.aws.amazon.com

반응형
Comments