미소를뿌리는감자의 코딩
[FightClub] Openvidu 2.30을 통한 중계 서버 생성 본문
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을 적용해 보려고 한다.
'프로젝트' 카테고리의 다른 글
[FightClub] S3 Bucket 적용 - 이미지 업로드 (1) | 2024.12.29 |
---|---|
[FightClub] getMatchHistory API 작성 (0) | 2024.12.29 |
[Fight Club] Global Handler 설정 - ExceptionHandler (1) | 2024.12.21 |
[Aper] Mono Repo library 적용 (0) | 2024.11.22 |
[Aper] 채팅 목록 반환 w. read status feat (0) | 2024.11.08 |