Smilegate

    [스마게 인턴] 시그널링 서버 다중 인스턴스 환경 구축하기

    WebRTC를 연결하기 위한 사용자의 미디어 정보와 ICE 프레임워크를 통해 나온 네트워크 정보들을 중계해주는 역할을 하는 시그널링 서버를 구축했다. 이때 다수의 사용자들이 서버에 접속하기 위한 트래픽을 견디기 위해서는 Scale out이 필요했는데,이를 위해서는 다중 인스턴스를 고려해야했었다. TCP를 연결하는 소켓 서버이기 때문에 다중 인스턴스로 설계할때 어떤 방식으로 설계해야하는지가 정말 중요했다. 만약 제대로 설계하지 않는다면 세션 컨트롤에 많은 문제점이 생겼을 것이다. 우선 우리 팀이 생각한 방식은 아래 그림과 같다. 그림을 설명하자면,각 시그널링 서버의 인스턴스에서 사용자와 연결된 세션 수를 Redis에 캐싱을 하고, Channel 서버에서는 캐시를 확인해서 사용자가 새로운 음성 채팅 룸을 생..