소개 엠넷플러스(Mnet Plus)는 CJ ENM이 운영하는 글로벌 K-POP 콘텐츠 플랫폼으로, 론칭 3년 만에 글로벌 누적 가입자 수 4,500만 명, 최대 월간 활성 이용자 수(MAU) 2,000만 명을 돌파하며 빠르게 성장하고 있습니다. MAMA AWARDS, KCON, 보이즈 2 플래닛 등 다양한 Mnet 콘텐츠는 물론, 숨바꼭질, 온더맵 등 엠넷플러스 오리지널 콘텐츠까지 아우르며 글로벌 팬들에게 라이브 스트리밍과 VOD 서비스를 제공하고 […] || 소개
엠넷플러스(Mnet Plus)는 CJ ENM이 운영하는 글로벌 K-POP 콘텐츠 플랫폼으로, 론칭 3년 만에 글로벌 누적 가입자 수 4,500만 명, 최대 월간 활성 이용자 수(MAU) 2,000만 명을 돌파하며 빠르게 성장하고 있습니다.
MAMA AWARDS, KCON, 보이즈 2 플래닛 등 다양한 Mnet 콘텐츠는 물론, 숨바꼭질, 온더맵 등 엠넷플러스 오리지널 콘텐츠까지 아우르며 글로벌 팬들에게 라이브 스트리밍과 VOD 서비스를 제공하고 있습니다. 엠넷플러스는 단순한 시청을 넘어, 팬들이 참여와 경험을 통해 결과를 함께 만들어가는 구조를 지향합니다. 실시간 투표와 다양한 참여 기능을 통해 팬들은 콘텐츠의 흐름과 결과에 영향을 미치며, 아티스트의 성장 과정에 함께 합니다.
특히 엠넷플러스의 투표 기능은 MAMA AWARDS 시상식 투표, 보이즈 2 플래닛과 같은 서바이벌 프로그램의 데뷔조 선발 등 프로그램의 결과에 직결되는 핵심 기능입니다. 투표 결과는 방송 및 콘텐츠 전개에 반영되므로, 신뢰성과 안정성이 무엇보다 중요합니다.
투표 서비스는 짧은 시간 동안 글로벌 다수 사용자가 동시에 참여하는 특성을 가지며, 데이터 유실이나 서비스 중단이 허용되지 않는 핵심 서비스(Critical Service)에 해당합니다. 일부 부가 기능이 제한되더라도 투표 자체는 반드시 안정적으로 동작해야 합니다. 기존 엠넷플러스 투표 시스템은 외부 협력사의 상용 솔루션을 기반으로 구축되어 빠른 출시에는 유리했으나, 서비스 규모 확대에 따라 확장성, 안정성, 비용 측면에서 구조적인 한계가 발생하였습니다.
이에 엠넷플러스는 투표 시스템을 AWS 관리형 서비스를 기반으로 재설계하고 내재화하여, 대규모 글로벌 트래픽 환경에서도 안정적으로 동작하는 실시간 투표 아키텍처를 구축하였습니다. 본 글에서는 기존 구조의 문제점과 새로운 아키텍처 설계 과정, 그리고 실제 운영 환경에서 적용한 안정성 및 성능 최적화 전략을 공유하고자 합니다.
배경과 요구사항
서비스 개발·운영 내재화의 필요성
초기 엠넷플러스 투표 시스템은 외부 협력사와 함께 개발되었습니다. 이는 빠른 서비스 출시에는 효과적이었으나, 서비스 성장과 함께 다음과 같은 문제가 누적되었습니다.
확장성 한계: 특정 구간에서 처리량이 제한되어 대규모 동시 투표 이벤트 대응이 어려웠습니다.
고정 비용 구조: 이벤트 규모와 무관하게 매월 고정 계약 비용이 발생하였습니다.
운영 유연성 부족: 투표 정책 변경이나 집계 방식 개선 시 외부 협력사 의존으로 인해 대응 속도가 제한되었습니다.
특히 글로벌 팬덤 플랫폼이라는 서비스 특성 상, 트래픽 패턴은 예측이 어렵고 이벤트 규모 또한 매번 달라지기 때문에 기존 구조는 장기적인 서비스 확장에 적합하지 않았습니다.
기존(AS-IS) 아키텍처와 문제점
AS-IS 아키텍처 개요
기존 투표 시스템은 사용자의 투표 요청을 시작으로, 검증 -> 이력 저장 -> 실시간 집계 반영까지 하나의 처리 흐름 안에서 순차적으로 수행되는 단일 파이프라인 구조로 설계되어 있었습니다. 이 파이프라인 내에서 각 데이터 스토어가 역할을 나누어 담당하고 있었습니다.
[그림1]
PostgreSQL : 투표의 메타데이터를 관리하는 관계형 저장소로 사용되었습니다.
Amazon DynamoDB : 사용자의 투표 이력을 저장하는 쓰기 전용 저장소로, 투표가 확정되는 기준점(Point of No Return) 역할을 했습니다. DynamoDB Streams를 통해 후속 처리를 트리거하는 이벤트 소