본문 바로가기
IoT

MQTT(Message Queuing Telemetry Transport) 정의

by 너드나무 2024. 4. 20.
728x90

서론

회사에 진행하고 있는 프로젝트에 IoT를 활용하여 하드웨어를 원격으로 제어 및 배포하는 신규 제품을 출시하려고 한다.
기존에 라즈베리파이, 아두이노 등 사물인터넷을 활용한 경험은 있지만,
MQTT 등 IoT에 특화된 메세징 프로토콜을 연동하여 원격 제어하는 방식이 아닌 중계 서버를 구축하여 운영하는 방식으로 진행하였다.
신규 프로젝트의 요구사항에 맞는 기능 중 MQTT을 활용한 메세징 방식으로 경량화된 패킷으로 IoT 제어를 수행하는 것을 목표로 한다.

이론적 배경

MQTT는 머신 대 머신 통신에 사용되는 표준 기반 메시징 프로토콜 또는 규칙 세트입니다.
스마트 센서, 웨어러블 및 기타 사물 인터넷(IoT) 디바이스는 일반적으로 리소스 제약이 있는 네트워크를 통해 제한된 대역폭으로 데이터를 전송하고 수신해야 합니다.
이러한 IoT 디바이스는 MQTT를 데이터 전송에 사용하는데, 구현이 쉽고 IoT 데이터를 효율적으로 전달할 수 있기 때문입니다. MQTT는 디바이스에서 클라우드로, 클라우드에서 디바이스로의 메시징을 지원합니다.
- AWS

MQTT Contol Packet


가설

  1. AWS에서는 2019년 OASIS에서 오픈소스로 개방한 MQTT v5를 활용하고 있다.
  2. AWS IoT Core 서비스를 사용하여 Certificate 및 Network에 대한 책임을 AWS에 일부 위임한다.
  3. (구현 시) 메세징 통신 보장을 위한 방법은 QoS Level 2 기준(미지원)으로, 최소 1번 이상 Subscriber에게 전달되어 원격 제어가 필요한 IoT가 인터넷 연결이 되어 있는 상태라면 동작하게끔 구성해야 한다.
  4. (구현 시) 만약 QoS Level 2가 무한 Loop에 걸리지 않도록 Session Timeout 설정 등을 강구하여 장기간 미연결에 대한 이슈를 해결해야 한다.

검증

AWS IoT Core 서비스 특장점

MQTT v5.0 기준 QoS Level 2 명세

MQTT QoS Level 2 Example
AWS IoT Core QoS Level 미지원 사항


결론

  1. 위에서 언급한 MQTT 정의 관련 내용은 실제 개발을 통해 검증하지 않은 내용으로 환경별 이슈를 고려하면서 구축해야 한다.
  2. 1단계 : AWS IoT Core 서비스 가입
  3. 2단계 : AWS IoT Core 서비스 IoT 관리 방법 습득
  4. 3단계 : 연계 정보 시스템화 (Certificate, Deivce - Database Sync 등)
  5. 4단계 : IoT 원격 제어 테스트 (Backend -> AWS IoT Core -> IoT Nodes)
  6. 위 내용은 가설 및 검증 단계를 반복적으로 수행하면서 실제 Product 환경에 맞게끔 수정될 수 있다. 

참고 및 인용 출처

- AWS. Internet of Things (IoT). (2024). https://aws.amazon.com/ko/what-is/mqtt/
- MDS인텔리전스. MQTT 프로토콜 분석 (1) – 개요 및 패킷 구조 분석. (2020). https://blog.naver.com/mds_datasecurity/221989800838
- OASIS. MQTT Version 5.0. (2019). https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html
728x90
반응형