본문 바로가기
Programming Tech/Web-RTC

AWS EC2 / COTURN 서버

by eclipse7727 2021. 10. 10.

WEB_RTC 프로젝트 중 프로젝트를 같이 진행하던 분과 테스트를 해보니 STUN 서버만으로는 불가능 하더라구요.

그래서!! TURN 서버를 사용하기로 했습니다.

 

그래서 AWS EC2에 node express 서버와 함께 코툰(COTURN) 서버를 올렸습니다.

 

COTURN 서버는 말 그대로 TURN 서버 역할을 하고 있는 친굽니다.

AWS에 COTURN 서버를 설치해 볼까요?~

1. AWS에 코툰 서버 설치

(AWS에 프리티어 생성 및 EC2 생성은 나중에 다루겠습니다.) - 프리티어 만으로도 충분합니다.

 

1-1 아래와 같이 보안그룹에 EDIT을 눌러 수정페이지로 들어갑니다.

AWS 보안 그룹 페이지

1-2  UDP TCP 3478을 열어주세요 

만약에 TLS를 사용한다면  UDP/TCP 5349포트도 를 열어주어야 합니다. 아래 사진처럼 해주시면 되겠습니다.

사진과 같이 방화벽을 수정해주기

1-3 EC2에서 Coturn 서버 설치

sudo apt-get -y update
sudo apt-get -y install coturn

 

1-4 시스템 시작시 코툰 서버 자동 실행

sudo vi /etc/default/coturn

# 을 지워주세요

TURNSERVER_ENABLED=1

 

1-5  코툰 설정 파일 변경

sudo vi /etc/turnserver.conf

해당 파일을 vi로 열어주세요~

listening-ip=<X.X.X.X>
external-ip=<Y.Y.Y.Y>/<X.X.X.X>

# Lower and upper bounds of the UDP relay endpoints:
# (default values are 49152 and 65535)
min-port=49152
max-port=65535

# Uncomment to run TURN server in 'normal' 'moderate' verbose mode.
# By default the verbose mode is off.
verbose

# Uncomment to use fingerprints in the TURN messages.
# By default the fingerprints are off.
fingerprint

# Uncomment to use long-term credential mechanism.
# By default no credentials mechanism is used (any user allowed).
lt-cred-mech

# Server name used for
# the oAuth authentication purposes
realm=<domain>

# define user and password (usr:pass)
user=<ID>:<PASSWORD>

turnserver.conf 설정에 제가 쓴건 이 정도에요~

listening-ip 는 EC2의 내부 IP를 쓰면 되겠고 EX) <X.X.X.X>

external-ip 는 EC2의 외부 IP EX) <Y.Y.Y.Y> 와 내부IP <X.X.X.X> 를 같이 써주면 됩니다. 

 

EC2 에서 인스턴스를 들어가보면 내부 및 외부 IP를 알수있어요~

 

아래는 tureserver.conf 세부 옵션을 더 볼 수 있어요~

 

GitHub - coturn/coturn: coturn TURN server project

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

github.com

 

1-6 마지막으로 서버를 재시작 해주면 끝~

sudo service coturn restart

 

 

1.7 그러면 잘 동작하는지 확인을 해봐야겠죠?

sudo service coturn status

상태를 확인해 봅시다~

1.8 그러면 잘 동작하는지 실제 테스트를 해볼까요?

 

Trickle ICE

 

webrtc.github.io

위 사이트를 들어가서 아래처럼 주소를 입력하고 Gather candidates를 눌러보세요~

위 사진처럼 done이 뜬다면 성공입니다~

 

한줄 요약 : 코툰을 설치했지만 파일 설정이 귀찮다 하시는분은 커맨드 창에 한줄만 입력하면 OK~

turnserver -L <내부IP> -a -f -r <realm domain> -V -X <외부IP>/<내부IP>

 

반응형

'Programming Tech > Web-RTC' 카테고리의 다른 글

Web-RTC 정리  (0) 2021.06.20

댓글