미소를뿌리는감자의 코딩

[FightClub] Openvidu 2.30을 통한 중계 서버 생성 본문

프로젝트

[FightClub] Openvidu 2.30을 통한 중계 서버 생성

미뿌감 2025. 1. 5. 16:47
728x90

1. 개요

이번에, 스파링 매칭 프로젝트를 하면서, 스파링 중계를 구현해야 했다.

괜찮은 Software Development Kit (SDK)인 Openvidu를 이용해서 구현을 시도하였다.

 

2. Openvidu deployment

2-1 ) 서버 구매

https://docs.openvidu.io/en/stable/

 

Openvidu 공식문서를 한번 읽어보고 시작하였다.

 

Deployment 같은 경우엔, Deployment > OpenVidu > On premises 를 참고해서 구현하였다.

https://docs.openvidu.io/en/stable/deployment/ce/on-premises/

 

ec2 생성하기를 눌러 시작하였다.

ubuntu 24.04 를 선택하여 주었고, t3.xlarge 로 인스턴스 유형을 선택하여 주었다.

 

이후 인바운드 규칙 편집을 통해 위의 TCP와 UDP 포트를 열어주었다.

 

2-2) route 53을 통한 도메인 구매 및 ec2 서버 연결

원하는 도메인 이름을 적어주고, 해당 도메인을 구매하였다.

이후, 해당 도메인을 클릭해서 들어가고, 레코드 생성을 통해 A 유형 레코드를 추가해 주었다.

이 설정을 통해 구매한 도메인으로 들어온 요청은 ec2 서버로 연결되게 될 것이다.

 

 

2-3) ec2 : openvidu 다운로드

다음으론 ssh를 통해 ec2에 접근하였고, docker와 docker-compose를 설치해 주었다.

 

// docker 설치
sudo apt update
sudo apt install -y docker.io

 

//docker-compose 설치
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

 

이후, sudo su를 통해서 권한을 주고, openvidu를 설치할 폴더로 이동해 주었다.

sudo su 
cd /opt

 

3 버전이 새로 나오기는 했지만, 비교적 자료가 많고 버그가 없을 2.30 버전을 선택하였다.

** 버전을 맞춰주는 것이 굉장히!!! 중요하기 때문에 유의해야 한다. **

curl https://s3-eu-west-1.amazonaws.com/aws.openvidu.io/install_openvidu_2.30.0.sh | bash

 

 

2-4) .env 파일 설정

/opt/openvidu 폴더로 들어간 후,

vim .env

를 통해 configuration을 작성해 주었다.

DOMAIN_OR_PUBLIC_IP=https://구매한도메인.com/
OPENVIDU_SECRET=mysecret
CERTIFICATE_TYPE=letsencrypt
LETSENCRYPT_EMAIL=내 이메일@naver.com

 

letsencrypt 사용을 통해 자동으로 .pem 파일을 생성해주도록 하였다.

포트 번호는 넣지 않았다.

 

최종적으로 아래 코드를 통해 openvidu deployment 서버를 실행시켜 주었다.

./openvidu start

 

 

dashboard의 username의 경우엔 OPENVIDUAPP으로 고정이 되어 있으며, Password의 경우엔 .env 파일에 설정했던 비번을 넣어주면 된다. 나의 경우엔, mysecret 으로 설정해두었다.

 

 

다음으론, signaling 서버라고 할 수 있는 application server와, application client를 설정해 주어야 한다.

우선적으로 localhost에서 테스트 해보고, application server를 ec2에 올릴 계획이다.

 

3. Application Server & Application Client

3-1) Application Server 설정

https://docs.openvidu.io/en/stable/ready-to-use-component/

 

이 문서에 2. Run your preferred server application sample에 있는 Java 코드를 선택해 주었다.

** 2.30 버전 ! **

git clone https://github.com/OpenVidu/openvidu-tutorials.git -b v2.30.0

 

다음으로, 여기로 이동해서, application-server url 들을 수정해 줄 것이다.

cd openvidu-tutorials/openvidu-basic-java/src/main/resources

 

다음으로 vim application.properties 를 통해서, 아래와 같이 설정해 주었다.

mvn spring-boot:run

이후 위 코드를 통해 서버를 실행시켜 주었다. 만약 mvn이 설치되어 있지 않다면 따로 설치 해주면 된다.

 

3-2) Application client 설정

~/openvidu-tutorials/openvidu-js/web

으로 이동해서 이제 client 코드를 설정해 줄 것이다.

vim app.js

를 통해서

 

APPLICATION_SERVER_URL을 수정해 주었다.

지금은 application-server가 local에 올라가 있으므로 localhost:5000이다. 추후에, application-server를 ec2에 올리게 된다면, ec2의 public ipv4를 여기에 수정해 주면 된다.

 

이후, openvidu-js 폴더로 cd ..를 한 후, http-server web을 통해서 client 서버를 실행시키면 된다.

 

http://127.0.0.1:8081

 

 

위 url로 들어가서 join을 하게 되면 들어간 것을 확인할 수 있다.

 

3. 결론

근데.. 이제 ioS 에서도 작동하는 openvidu를 사용해야 하기에 버전 3.0을 적용해 보려고 한다.

 

 

728x90