아키텍처 설계도: 베뉴(Venue)를 위한 저지연 분석 시스템
라이브 이벤트에서 2만 명의 데이터를 관리하는 것은 웹 앱을 구축하는 것과는 다릅니다.
웹 앱의 경우 사용자가 여러 시간대에 걸쳐 분산되어 있습니다. 하지만 대규모 베뉴에서는 수천 명의 사람들이 동시에 엄청난 양의 데이터 버스트(data burst)를 발생시킵니다. 오전 시간대의 혼잡 시간(rush hour)은 일반적인 시스템을 마비시킬 수 있습니다.
배치 처리(batch processing)나 롱 폴링(long-polling)을 사용하면 데이터가 늦게 도착합니다. 인파 관리에서 15분의 지연은 곧 실패를 의미합니다. 병목 현상이 발생한 후에야 비로소 상황을 파악하게 될 것입니다.
1초 미만의 실시간 업데이트가 필요합니다. 에지(edge)에서 대시보드까지 이어지는 스트리밍 파이프라인을 구축해야 합니다.
필요한 아키텍처는 다음과 같습니다:
- 에지 계층 (수집) 모든 입구에 산업용 에지 노드를 배치하십시오. 이를 시리얼 버스를 통해 RFID 리더기에 연결합니다.
즉각적인 결정을 위해 클라우드에 의존하지 마십시오. 에지 노드에 Redis와 같은 로컬 인메모리 데이터베이스를 사용하십시오. 이를 통해 시스템은 5ms 이내에 권한을 확인할 수 있습니다. 베뉴의 인터넷이 끊기더라도 게이트는 정상 작동합니다.
- 전송 계층 (MQTT) 에지 하드웨어에 HTTP REST 엔드포인트를 사용하는 것을 중단하십시오. 수천 건의 소규모 스캔을 처리하기에 HTTP는 오버헤드가 너무 큽니다.
대신 MQTT를 사용하십시오. MQTT는 패킷 크기가 최소화되어 있으며 지속적인 연결을 유지합니다. 이는 불안정한 베뉴 네트워크 환경에서도 잘 작동합니다. 에지 노드는 압축된 데이터를 클라우드 브로커로 푸시하며, 브로커는 이러한 이벤트를 워커(worker)로 즉시 라우팅합니다.
- 시각화 계층 (WebSockets) 운영 팀은 변화가 일어나는 즉시 이를 확인해야 합니다. 브라우저가 API를 통해 업데이트를 요청하도록 만들지 마십시오.
전이중(full-duplex) 연결을 위해 WebSockets를 사용하십시오. 이는 대시보드로 데이터를 즉시 푸시합니다. 홀이 너무 붐비게 되면 팀은 1초 이내에 이를 확인할 수 있습니다. 그러면 인력을 배치하거나 디지털 표지판을 업데이트하여 흐름을 개선할 수 있습니다.
스택 요약:
- Edge: Local Redis + Industrial PC
- Transport: MQTT (EMQX 또는 HiveMQ)
- Frontend: WebSockets를 이용한 실시간 UI
IoT 설정에서 밀집된 인파 데이터를 어떻게 처리하시나요? 아래에서 인프라에 대해 논의해 봅시다.
