MQTT 아키텍처

출처: memory/mqtt-architecture.md (2026-04-08) 마지막 갱신: 2026-04-22


핵심 구조

엣지 디바이스
  └─→ paidevteam.com:1883
        └─→ EC2 nginx (TCP 프록시)
              └─→ 10.235.62.211:1883 (ZeroTier VPN)
                    └─→ 192.168.33.33:1883 (local mosquitto)
                          └─→ 백엔드 MQTT Consumer

paidevteam.com:1883은 별도 MQTT 브로커가 아님.
EC2 nginx가 TCP 프록시로 내부 mosquitto를 포워딩하는 구조.


⚠️ 브리지 절대 금지

mosquitto.conf에 paidevteam.com 브리지를 추가하면 루프 발생.
→ PTZ 명령이 초당 252개로 폭발 (실제 사고 경험).

엣지가 paidevteam.com:1883에 구독 = 실제로는 local mosquitto에 직접 연결과 동일.


MQTT 토픽 구조

logs/{device_id}/app          QoS 1  앱 로그
logs/{device_id}/error        QoS 2  에러 로그
logs/{device_id}/system       QoS 0  시스템 로그
logs/{device_id}/status       QoS 0  연결 상태

webrtc/{device_id}/offer      QoS 1  WebRTC 시그널링
webrtc/{device_id}/answer     QoS 1
webrtc/{device_id}/hangup     QoS 1

commands/{device_id}/ptz      QoS 1  PTZ 제어
commands/{device_id}/settings QoS 1  설정 변경
commands/{device_id}/ai       QoS 1  AI 토글

settings/{device_id}/current  QoS 1  현재 설정 보고
settings/{device_id}/ack      QoS 1  설정 적용 확인

MQTT 브로커 정보

  • 위치: 192.168.33.33:1883 (Docker: platform-mosquitto)
  • WebSocket: 9883
  • 설정 파일: mosquitto/config/mosquitto.conf