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 서버 구축은 생각보다 아주 쉽다고!! 물론 직접 만들고자 마음을 먹었다면 정말 힘든 작업이 될것이다. 하지만 구지 왜?? 그 노력으로 미디어 서버를 만드는게 어떤가??
'개발 > 영상통화' 카테고리의 다른 글
[언택트 기술 시리즈]webrtc 서버 구축 4편 - 시그널시 서버 분산처리(feat zookeeper) (7) | 2021.12.10 |
---|---|
webrtc 서버 구축 3편 -시그널링 서버 분산처리(세션정보 관리) (9) | 2021.10.22 |
[언택트 기술 시리즈]webrtc 서버 구축 2편 -시그널링 서버를 구축 하자. (2) | 2021.09.30 |
[언택트 기술 시리즈]webrtc 서버 구축 1편 -기초 (6) | 2021.09.03 |