개발/영상통화

초보도 가능한 30분만에 webrtc turn 서버 구축하기

키드 뮤지션 2021. 12. 16. 15:42

 webrtc 개발을 하면서 webrtc turn 서버 구축을 어렵게 생각하는 경향이 있다. 실제로 인터넷에 검색해봐도 머 제대로 된 결과가 나오지 않는다.  하지만 생각보다 webrtc turn 서버 구축은 정말 쉽다. 왜? 이미 만들어져 있으니깐(google에서 만들었다.)

 

https://github.com/coturn/coturn

 

GitHub - coturn/coturn: coturn TURN server project

coturn TURN server project. Contribute to coturn/coturn development by creating an account on GitHub.

github.com

 

coturn!! 이거 가져다 쓰면 된다. git에 셋팅 어떻게 하는지 설명 다 나와 있으니깐 한번 따라해보면 감이 올거다. 실은 필자도 직접 셋팅 한적이 오래됬다. 그래서 어떻게 셋팅했는지 기억이 가물가물하다. 조만간 필자가 직접 세팅해보고 게시물 하나 올릴 생각도 있다. 

 

그럼 turn server 구축이 끝난걸까? 

아니다. turn server를 구축하기 위해서 해야할일이 한가지 더 있다. 

 

turn server에 트래픽이 몰리면 어떻게 할것인가?

 

결국 부하가 몰리면 로드밸런싱 해야만 한다. 이때부터 머리가 지끈지끈 거린다. 왜? http 프로토콜이 아니니깐.... turn server의 기본 프로토콜은 tcp와 udp이다.(필자를 그렇게 알고 있다. 아니라면 댓글 남겨주면 감사하겠다.) L4 로드밸런서를 사용해야만 한다. L4 로드밸런서도 모든 트래픽을 온전히 받기 때문에 비용이 많이 든다. 물론 직접 만들수 있다. 하지만 우리는 시간이 없지 않은가? 그래서 아주 쉬운 방법이 있다.  

 

dns 라운드 로빈 로드밸런싱을 사용하면 된다.

 

 

 

1. dns에 도메인을 요청한다.

2. dns가 설정된 turn serverA와 turn server B의 IP중 하나를 라운드 로빈 알고리즘을 통해 알려준다.

3. 받은 ip로 접속한다.

 

이렇게 dns 로드 밸런서를 사용하면, 로드 밸런싱 기능을 하게 만들 수 있다. 물론 당연히 도메인이 있어야만 한다. 그래야만 사용 및 테스트가 가능하다. 로드밸런싱 셋팅도 정말 쉽다. 몇시간? 아니 몇분이면 끝난다. 너무 쉽기 때문에 'dns 로드밸런싱' 이라고 치면 쉽게 셋팅 방법을 찾을수 있을 것이다. 

 

 필자가 전에 한번 말하지 않았었나? turn 서버 구축은 생각보다 아주 쉽다고!! 물론 직접 만들고자 마음을 먹었다면 정말 힘든 작업이 될것이다. 하지만 구지 왜?? 그 노력으로 미디어 서버를 만드는게 어떤가??