On a couch

AWS IoT 서비스 이해하기 본문

프론트엔드 공부/AWS 서비스

AWS IoT 서비스 이해하기

couch 2023. 1. 31. 11:24

회사에서 AWS 서비스를 잔뜩 연동해 사용하는데, 개념을 몰라 과정 파악이 어려웠다.

개념을 문서로 정리한 글을 못 찾아, 목마른 자가 우물을 파는 심정으로 정리해 보았다.

내용 추가 / 수정 환영합니다 :)

 

기본 개념

IoT

디바이스 - 클라우드 or 디바이스 - 디바이스의 통신을 용이하게 하는 기술이다. 이제는 칫솔, 진공 청소기, 자동차 및 기계와 같은 일상적인 디바이스가 센서를 사용하여 데이터를 수집하고 사용자에게 지능적으로 응답할 수 있다. 이러한 스마트 객체는 자동으로 인터넷과 데이터를 주고받을 수 있다. 이러한 모든 "보이지 않는 컴퓨팅 디바이스" 및 이와 관련된 기술을 사물 인터넷이라고 총칭한다.

AWS IoT 개요

  • 디바이스 연결과 관리 : 요건에 가장 잘 맞는 프로토콜(HTTP, MQTT, WebSocket)을 사용해 디바이스를 클라우드에 연결한다. 각 디바이스가 다른 프로토콜을 사용하는 경우라도 서로 통신할 수 있다.
  • 디바이스 데이터 처리 및 데이터 기반 운영 : 비즈니스 규칙을 바탕으로 디바이스로부터 받는 데이터를 바로 필터링, 변환, 작업할 수 있다. 다른 AWS 서비스와 쉽게 통합할 수 있다.
  • 언제든 디바이스 상태 확인 가능 : 디바이스가 꺼져 있을 때도 상태를 읽거나 확인할 수 있도록 최신 상태를 저장한다.

Thing / 사물 (디바이스)

‘사물’이란 물리적 디바이스를 클라우드에서 표현한 것이다. 물리적 디바이스와 IoT의 호환을 위해서는 ‘사물 레코드’가 필요하다.

Registry

사물이 등록되고 id가 관리되는 공간이다. 사물의 attribute와 capability 등 메타데이터를 관리한다.

Device SDK

클라이언트 라이브러리이다. 플랫폼/언어를 선택하면 해당 구성으로 다운받아 사용할 수 있다.

gateway에 연결하거나, 디바이스를 인증하거나, 메시지를 교환하는 등의 작업을 편하게 해 준다.

Device Gateway (브로커)

http나 mqtt 프로토콜을 사용해서 디바이스와 소통 기능을 제공한다. 오래 연결된 상태에서 메시지를 주고받을 수 있는 topic 기반 pub/sub 브로커 역할을 한다.

확장성이 높은 관리형 서비스이다.

인증서

사물을 인증서에 연결해야 사용할 수 있다. 인증서 기반으로 device-gateway 간의 통신 안전성을 보장한다.

Rule Engine

브로커가 메시지를 어떻게 처리할지 정의하는 규칙이다. 패턴에 일치하는 메시지(필터링된 데이터)를 AWS 및 기타 서비스로 전송하거나 AWS IoT로 re-publish한다.

친숙한 SQL 문법으로 토픽 필터를 정의할 수 있으며, 하나의 필터를 복수의 디바이스에 적용하거나 복잡한 패턴 구성이 가능하다. 하나의 메시지에 복수의 필터가 적용되어 여러 action으로 분기할 수도 있다.

JSON, 노이즈 비율을 개선하기 위한 함수들(string 정규식, 수학 연산, 암호, uuid, timestamp 등)을 지원한다.

Rule Engine Action

rule engine이 ‘어떤 때’를 정의한다면 rule engine action은 ‘무엇을 하라’를 정의한다. AWS IoT를 외부와 연결하는 역할을 한다.

Thing Shadow

디바이스가 꺼져 있거나 통신이 불안정할 때도 상태를 읽거나 확인할 수 있도록 최신 상태를 저장한다. 앱이나 디바이스가 shadow에 접근하여 상태를 읽거나 변경할 수 있다.

 

추가 정보

MQTT

MQTT는 M2M, IOT를 위한 프로토콜로서, 최소한의 전력과 패킷량으로 통신하는 프로토콜이다. 따라서 IOT와 모바일 어플리케이션 등의 통신에 매우 적합하다.

TCP/IP 프로토콜 위에서 동작하지만 동시에 굉장히 가벼우며, 많은 통신 제약들을 해결해준다.

MQTT는 HTTP, TCP등의 통신과 같이 클라이언트-서버 구조로 이루어지는 것이 아닌, Broker, Publisher, Subscriber 구조로 이루어진다.

Publisher는 Topic을 발행(publish) 하고, Subscriber는 Topic을 구독(subscribe)한다. Broker는 이들을 중계하는 역할을 하며, 단일 Topic을 여러 Subscriber가 구독할 수 있기 때문에, 1:N 통신 구축에도 유리하다.

 

MQTT 브로커와 연결을 요청하는 클라이언트는 TCP/IP 소켓 연결을 한 후 명시적으로 연결을 끊거나 네트워크 사정에 의해 연결이 끊어질 때까지 상태를 유지한다.

Live라는 하트비트와 Topic에 발행되는 메시지를 통해 연결을 유지하고 메시지 송수신을 하며, 연결이 끊어지면 재접속이 가능하다.

 

MQTT에서 Topic은 / 로 구분되는 계층 구조를 갖기 때문에,

위와 같이 계층을 구성한다면, IOT 센서와 같은 데이터를 관리하기에 용이하다.

 

로컬 IoT, Greengrass

모든 머신 데이터가 항상 클라우드에 연결되어 있을 수는 없고, 비용도 많이 든다. 하지만 로컬에서 어떤 디바이스들이 IoT화 될 필요성이 있을 수 있다.

로컬에 디바이스게이트웨이, 람다함수, 디바이스 상태를 저장할 수 있는 스토리지(shadow 대신)가 있고 추후 클라우드에 연결할 수 있는 서비스가 Greengrass이다.

레퍼런스

IoT 가이드

IoT란 무엇인가요? - 사물 인터넷(IoT) 초보자를 위한 가이드 - AWS

 

IoT란 무엇인가요? - 사물 인터넷(IoT) 초보자를 위한 가이드 - AWS

산업용 IoT(IIoT)는 제조, 소매, 건강 및 기타 기업에서 비즈니스 효율성을 창출하는 데 사용되는 스마트 디바이스를 의미합니다. 센서에서 장비에 이르기까지 산업용 디바이스는 비즈니스 소유자

aws.amazon.com

AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - 김무현 솔루션즈 아키텍트(AWS 코리아)

 

디바이스 - IoT 연결 실습

209. AWS IoT 시작 하기

 

209. AWS IoT 시작 하기

<1> AWS IoT기초 개념을 알아보자. <2> 라즈베리 파이4 와 AWS IoT연결해보자. <1> AWS IoT기초 개념을 알아보자. 1 구성 Device(thing) , 인증 ,Device Gateway ,Rules Engine  ,AWS Sevice ,Registry ,Shadow ,앱(스마트폰) Device

brunch.co.kr

AWS IoT Core 활용하기

 

AWS IoT Core 활용하기

이 포스팅에 실린 실습은 AWS CLI가 설치되어 있고, AWS credentials이 설정되어 있는 상태에서 진행했습니다. 서버와 하드웨어 사이의 TCP 연결을 구현하지 않고 AWS IoT를 이용해 MQTT 프로토콜로 데이터

labs.brandi.co.kr

 

MQTT 프로토콜의 개념

MQTT란?

 

MQTT란?

MQTT는 M2M, IOT를 위한 프로토콜로서, 최소한의 전력과 패킷량으로 통신하는 프로토콜입니다. 따라서 IOT와 모바일 어플리케이션 등의 통신에 매우 적합한 프로토콜입니다.

medium.com

[통신 이론] MQTT, MQTT Protocol (MQTT 프로토콜) 이란? - 1 (이론편)

 

[통신 이론] MQTT, MQTT Protocol (MQTT 프로토콜) 이란? - 1 (이론편)

이 론 MQTT(Message Queueing Telemetry Transport)는 2016년 국제 표준화 된 (ISO 표준 ISO/IEC PRF 20922) 발행-구독(Publish-Subscribe) 기반의 메시지 송수신 프로토콜이다. 작은 코드 공간이 필요하거나 네트워크 대역

underflow101.tistory.com

 

더 볼만한 자료