개요

데모와 자체 피드백을 거친 결과, 기존의 음성채팅 기능의 경우 크게 2가지 문제가 있었다.

  1. 지나치게 긴 도커 컨테이너의 실행/중단 시간 문제
  2. 사용자가 체감이 될 만큼 긴 음성 연결 지연시간

해당 문제를 해결하고 트래픽이 증가하더라도 서비스를 제공할 수 있도록 음성채팅 기능을 전반적으로 개선하였다

목적

  1. 음성 채팅 초기화 속도 개선
  2. 도커 컨테이너 실행/중단 시간 단축
  3. 트래픽 증가 대응

주요 변경 사항

백엔드 서버 네크워크 변경

기존 음성 트래픽 흐름은 다음과 같았다.

graph LR
    subgraph Internet [Public Network]
        C[Client]
    end

    subgraph Docker_Host [Docker Host]
        direction LR
        Port[Port Forwarding<br/>0000-2000]
        
        subgraph Container [Container: MediaSoup]
            App[Server / Worker]
        end
    end

    C -- "RTP Traffic" --> Port
    Port -- "NAT / Routing" --> App

음성 데이터 송, 수신을 위한 포트를 도커 네트워크에서 별도로 열어주고 있었기 때문에, 도커 컨테이너를 올리거나 내릴 때마다 설정 해둔 약 2000개의 포트를 바인딩하는 작업을 진행해야 했다