[django] webRTC, websocket, django-channel (2)

EMMA·2022년 5월 10일
0

TURN 서버

1편에서 설명했듯이, webRTC를 사용하기 위해선 사용 가능한 경로 후보들을 모아줘야 한다.

원래는 STURN 서버를 통해 P2P 직접 연결이 이상적이지만, 라우터/방화벽에 따라 상황이 다를 수 있기 때문에 TURN 서버를 구축해줘야 한다. TURN 서버를 통해 무료 소스인 coturn을 사용했다.


EC2 인스턴스 위에 구축하기

coturn을 설치하기 위해 먼저 aws EC2를 통해 인스턴스를 생성했다.
인스턴스를 생성하면 공인 IP와 내부 IP가 제공되는데 이는 이후에 환경설정 때 사용된다.

보안 설정에서, TCP/UDP 사용을 위해 포트 넘버 3478를 설정해줘야 한다.


그 때는 몰랐지, 헬게이트가 오픈할 줄...

ssh -i 파일명.pem ubuntu@[EC2 공개 IP] 로 접속하면, coturn을 설치할 수 있는 환경이 만들어진다.

sudo apt-get update
sudo apt-get install coturn 
./configure 

그런데 곧죽어도 coturn이 설치가 안되고 에러가 자꾸 뜨는 것이었다...

1)
package has no installation candidate라는 오류가 계속 떴고, stackoverflow로 계속 찾아보니 /etc/apt/sources.list에 무언가 추가 설정이 되어야 하는 문제였다.
stackoverflow에서 힌트를 얻어 수정했고, 그래도 안되길래 추가로 찾아서 sources.list에 넣었다.

2)
이번엔 또 public key is not available 이라며 오류.
굴하지 않고 또 stackoverflow를 뒤졌더니 비슷한 질문 발견.
key를 추가해서 다시 update부터 실행하면 된단다 !

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

3)
겨우 install을하고, configure를 실행했더니 이번엔 compiler를 찾을 수 없다며 오류 발생.
나 같은 경우 설치 전에 update 해줬기 때문에 다른 원인을 찾아야 했고,
비슷한 질문을 stackoverflow에서 발견해 바로 적용.

sudo apt-get install build-essential

4)
또 다른 오류가 떴다 - pkg-config: command not found 라고.
침착하게 다시 검색을 했다 ^^
이 문제pkg-config를 설치하면 된다고 한다.

sudo apt-get install pkg-config

5)
또 오류 발생.
OpenSSL Crypto development libraries are not installed 라고 한다.
바로 검색해서 비슷한 질문 발견.

sudo apt-get install libssl-dev

항상 먼저 점검해야 할 것은, update가 제대로 되어 있냐는 것.
버전 업데이트가 잘 안되어 있으면 설치나 실행에 있어서 애먹을 수 있기 때문에, update를 꼭 먼저 해줘야 한다. 그래야 install/configure 작업을 할 때 시간절약 할 수 있다.

사실 글로 정리하니까 이 정도인데,
실제로는 온갖 삽질의 연속이었고 docker로 coturn image 설치도 해봤다가...다시 github 소스 뒤져봤다가... 난리도 아니었다.


coturn 설정과 실행

이제 IP 주소 설정 등의 작업을 해줘야 한다.

sudo vi /etc/turnserver.conf

처음엔 coturn github에 가서 install을 보면서 했는데,
이해가 잘 안되는 부분들이 있어 해당 블로그를 참고해서 작성했다.
내가 한 방법과 가장 유사했고, EC2 보안 설정도 여기에서 참고했다.

그리고 나서 아래와 같이 실행해보면, active라고 되어 있음을 확인할 수 있다.

#재시작 
sudo service coturn restart

#status 확인 
sudo service coturn status

결과는 아래와 같다 - active (running)

이제 Trickle ICE에 가서 테스트를 해보자.
테스트 결과는 아래와 같다.


참고 자료
https://gabrieltanner.org/blog/turn-server
https://my-first-programming.tistory.com/entry/AWS-EC2-COTURN-%EC%84%9C%EB%B2%84

profile
예비 개발자의 기술 블로그 | explore, explore and explore

0개의 댓글