웹 브라우저 화면이나 앱에서 간단하게 실시간 연동을 표현해야할 있습니다.

저는 그럴때 많이 쓰이는 WebSocket이나 SSE 대신 MQTT 를 선호합니다.

HiveMQ를 이용하면 간단하게 MQTT 브로커 환경을 구성, 디버깅, 모니터링할 수 있습니다.

그러나 최근 HiveMQ를 사용하면서 원인을 알 수 없는 서버 오류를 경험했습니다. 대안이 필요해 MQTT 브로커를 찾아보니 EMQX라는 오픈소스 MQTT 브로커가 눈에 들어왔습니다.

EMQX 는 오픈소스 버전과 함께 관리형 서비스인 EMQX Cloud 도 제공합니다만, 오픈소스 버전을 배포하여 운영하더라도 모니터링, 디버깅을 위한 대시보드를 제공 받을 수 있었습니다.

공식 문서를 읽어보니 직접 설치 및 설정하는 방법도 어렵지 않아 바로 적용하고 테스트한 뒤 배포했다.

EMQX 로 mqtt 브로커 셋업하기

이후 약 두 달 동안 사용하고 있는데 만족스럽습니다.

지금은 더 이상 HiveMQ를 사용하지 않고 새로운 환경에서도 EMQX 를 활용합니다.

EMQX 후기

EMQX 는 편리합니다.

나는 EMQX를 Docker Compose로 관리하여 EC2에 배포해두었습니다.

웹 브라우저에서 MQTT를 사용하려면 MQTT over WebSocket을 이용하면 됩니다.

HTTPS로 서비스하는 웹 페이지에서는 당연히 보안 연결인 WSS를 사용해야 하므로 TLS 인증서도 필요합니다.

AWS ELB를 사용한다면 ACM(AWS Certificate Manager)을 통해 인증서를 간단하게 관리할 수 있습니다.

그러나 작은 규모의 서비스에서 ELB 비용이 부담스럽다면 Let's Encrypt를 이용해 직접 TLS 인증서를 구성하는 방법도 있습니다.

Lets Encrypt 로 간단히 SSL/TLS 인증서를 세팅해주면 됩니다.

EMQX는 대시보드를 기본으로 제공합니다.

현재 연결된 클라이언트를 확인하거나 연결을 끊을 수 있고, MQTT 메시지를 직접 발행하거나 구독하면서 테스트할 수도 있습니다.

운영하면서 MQTT 상태를 확인하고 문제를 찾는 데 필요한 기능들이 한곳에 모여 있습니다.

두 달 정도 사용해본 범위에서는 연결 권한 관리, 디버깅, 모니터링 모두 편리하고 UI도 깔끔하네요.

HiveMQ 클라우드 서비스가 전혀 생각나지 않습니다.

경험은 부족하지만 현재 규모에서는 충분

제가 사용하던 HiveMQ Cloud 무료 플랜은 최대 100개의 동시 연결을 제공합니다.

현재 서비스에서는 약 130개의 MQTT Connection을 사용하고 있기 때문에 무료 플랜의 범위를 넘어섭니다.

반면 EC2에 직접 설치한 EMQX에서는 현재 130개 정도의 Connection을 유지하고 있지만 EC2 리소스를 크게 점유하지 않고 있습니다.

아직 작은 규모에서 두 달 정도 운영한 것이 전부이기 때문에 EMQX의 성능이나 안정성을 평가하기에는 경험이 부족합니다. 어느 정도의 Connection까지 현재 서버 한 대로 감당할 수 있을지도 직접 확인하지 않았습니다.

지금 규모에서는 별다른 문제 없이 동작하고 있습니다.

더 큰 규모가 필요해지면 EMQX가 공식적으로 지원하는 클러스터 구성을 사용할 수도 있습니다.

여러 노드로 EMQX 클러스터를 구성하는 방법도 공식 문서에 비교적 자세히 설명되어 있습니다.

당장 필요하지 않은 규모를 미리 준비할 생각은 없습니다.

지금은 EC2 한 대로 운영하고, 실제로 한계에 부딪히면 그때 클러스터링을 검토하면 될것 같습니다.

팀수준에서 AI 는 SaaS 서비스의 대안

AI Agent 를 활용하기 전에는 팀수준의 인하우스 서비스 관리는 최소화하고자 했습니다.

인하우스 서비스는 러닝커브가 존재하고 관리가 번거롭습니다.

때문에 개인 프로젝트를 넘어선 팀수준에서는 인하우스 서비스를 활용하지 않았습니다.

SaaS 서비스를 이용하면 저희가 직접 관리를 할 필요가 없고, 명확한 Docs 가 있어서 필요한 경우 각 담당자가 Docs 를 참고하면 충분했습니다.

대신 저희는 SaaS 비용을 지불했죠.

그러나 시대가 바뀌었습니다.

요즘은 README.md 에 적당히 관리법을 정리해두면 AI Agents 를 이용해서 관리합니다.

담당자는 AI Agents 가 만들어준 맞춤 임시 매뉴얼만 봐도 충분합니다.

더이상 SaaS 비용을 지불하지 않아도 되는 시대가 왔습니다.