[SSAFY 공통] OpenVidu 3을 ec2 서버에 올려보자!

Noh_level0·2025년 1월 27일
1

OpenVidu... 튜토리얼 코드도 분석하기 쉽지 않았는데, ec2에 올리는게 더 쉽지 않았다ㅜㅜㅜ
심지어 OpenVidu v3가 2024년 6월에 출시된거라 참고 자료 찾기도 어렵더라ㅠㅠ.. 심지어 이미 v3를 기반으로 어느정도 코드는 짜 놓은 상태라 더더욱 포기하기 싫었다..!!
내가 봤던 ec2 서버에 올리는 자료들은 전부 다 OpenVidu v2 관련한 것이여서 v3랑은 달라진 점이 많아 많이 애를 먹었다. 그래서 v3를 ec2에 어떻게 올릴 수 있었는지 3일간의 과정을 공유해보고자 한다..

공식 문서

OpenVidu Single Node Installation: On-premises

포트를 열자!

일단 OpenVidu를 사용하기 위해서는 지켜야 할 포트 규칙들이 많다. 이 설정을 통해 지정된 포트를 통해 들어오는 요청을 허용할 수 있도록 만들어 주어야 한다.
아래는 포트를 설정할 수 있는 명령어다.

$ sudo ufw allow 80/tcp
$ sudo ufw allow 50000:60000/udp

443, 1935, 7881, 7885, 9000 등의 포트들도 공식문서에서 요구하는 대로 위 명령어를 활용해 설정해주자!

OpenVidu 설치!

$ sh <(curl -fsSL http://get.openvidu.io/community/singlenode/latest/install.sh)

공식문서에서 알려주는 설치 명령어다!
여러 자료들을 찾아보니 보통 opt 라는 경로에 설치해주는 것이 일반적이라고 하길래 opt 경로에서 위의 명령어를 실행해주었다.

설치가 완료되면 이런 화면을 볼 수 있다!

설치 다 했는데 왜 OpenVidu가 자꾸 Docker에서 실행이 안 되는건가요..?

설치를 다 했으면 아래의 명령어를 실행하라고 해서 했는데...

$ systemctl start openvidu

이걸 실행해도 dashboard 같은 기본 화면조차 안 들어가졌다ㅜㅜ
확인해보니 아예 docker 실행에서부터 오류가 나서 계속 안되는거였더라..
뭘 찾아봐야할지도 모르겠고 그냥 GPT랑 씨름함..ㅎ

1. openvidu.service 내용 수정

$ nano /etc/systemd/system/openvidu.service

ExecStartPre같은 항목에서 docker-compose를 실행하는 경로가 올바르지 않았다.
따라서 해당 내용을 수정!

$ systemctl start openvidu

이 파일을 수정한 후에 바로 위의 명령어를 수행하면 오류가 난다.

$ systemctl daemon-reload

이 명령어를 먼저 수행해주자!

2. 계속해서 MONGO 관련 환경변수들을 못 가져오는데..?

1번까지 했는데도 자꾸 Docker Compose에서 docker-compose.yaml에서 작성된 MONGO 관련 환경변수들을 못 가져오는 오류들이 발생했다.
아무리 오류를 살펴보고 관련 파일 내용들을 읽어봐도 도대체 왜 MONGO에서만 그런 문제가 발생하는건지 찾을 수가 없더라..
docker-compose.yaml에 그냥 MONGO_ADMIN_USERNAME, MONGO_ADMIN_PASSWORD 등 문제가 발생한 곳에 바로 값을 넣어줄까 하다가 그건 좀..;; 싶어서 다른 방법을 찾.았.다!
이때부터 GPT랑 씨름 시작

3. Docker Compose 버전 문제

Docker의 버전 문제라고는 생각도 못하고 OpenVidu 관련 설정 파일들만 계속 수정을 하면서 3일 동안 테스트를 했는데, 계속해서 해결이 안 되었다. 그러던 중 확인해보게 된 Docker 버전.

Docker 관련 버전들을 확인하니 docker --version은 비교적 최신이라 괜찮은데, docker-compose의 버전이 너무 낮았다.
OpenVidu의 docker-compose.yaml은 v2.x 이상에서 사용하는 기능들을 포함하고 있는데, v1.x에서는 이를 해석하지 못해서 그렇다고 한다.(GPT 왈)
그래서 docker-compose의 버전을 한번 업그레이드 해보았다.

4. Docker Compose 버전 업그레이드

4-1. 기존의 docker-compose 삭제

$ sudo apt-get remove docker-compose -y

4-2. jq 설치

$ sudo apt install jq

Docker Compose의 최신 버전을 가져오기 위해 설치한다.
이를 활용해 GitHub API로부터 JSON 데이터를 처리할 때 사용한다.

4-3. 최신 Docker Compose 설치

$ VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)
// curl 명령어로 Docker Compose의 GitHub 릴리스 API에서 최신 릴리스 정보를 가져옴.

$ DESTINATION=/usr/bin/docker-compose
//Docker Compose를 설치할 경로를 지정

$ sudo curl -L https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m) -o $DESTINATION
//curl 명령으로 Docker Compose의 최신 버전을 다운로드

$ sudo chmod 755 $DESTINATION
//다운로드한 Docker Compose 바이너리에 실행 권한을 부여

설치를 하다보면 중간에 이런 화면이 뜰 수도 있는데, 난 그냥 기본 설정을 따라서 <Ok>만 선택해주었다.

최종적으로 이렇게 버전을 업그레이드 해주었다!

드디어 성공!

성공적으로 OpenVidu가 ec2에 올라갔다면, https://<DOMAIN_NAME>/ 으로 접속했을 때 이 같은 화면이 나온다!

마지막으로 OpenVidu관련 컨테이너들을 중지시켜보자!

혹시 몰라서 ec2 서버의 과금이 걱정되어 OpenVidu 컨테이너들을 중지시키려고 했었다.
그런데 단순히 docker-compose down으로는 중지가 되지 않네..?

docker-compose.yaml 파일을 뒤적거려보니 도커에서 실행이 중지가 되면 자동으로 재시작이 되도록 작성이 되어있는 것을 발견했다.

따라서 어떻게 중지시켜야 할까.. 고민하다가 공식문서에서 OpenVidu를 실행할 때 사용한다고 알려준 명령어를 반대로 작성하면 되는거 아닐까? 하다가 방법을 찾았다!

결론적으로

$ systemctl stop openvidu

이 명령어로 중지시킬 수 있다!

다시 실행하고 싶다면 아래와 같은 명령어로 실행하면 된다!

$ systemctl start openvidu

ec2에 OpenVidu를 배포해보며...

정말 OpenVidu 3버전 관련해서 배포 관련 문서를 찾아보기가 어려웠다.
그러다가 어쩔 수 없이 GPT에도 의존해보기도 하고 나도 OpenVidu 관련 문서나 설정 파일들을 여러번 읽어보게 되었다.

하지만 GPT 조차도 관련 문서들을 찾아보기 어렵다보니 해결책을 준다고 주는 게 다 v2 관련한거더라😂
그래서 계속해서 내 상황을 다시 설명하고 문제점을 찾아보고... 나도 OpenVidu 관련한 설정파일들을 꼼꼼히 살펴보고.. 이런 상황의 연속이였는데 결국 해결할 수 있게 되서 너무나 뿌듯하다!!

계속해서 반복적인 대화를 진행하면서 GPT의 성능을 의심하기도 하였지만..ㅋㅋㅋㅋ
결정적으로 docker compose의 버전 문제를 찾아준 게 GPT였다.
정~~~ 문서를 찾아보기 힘들다면 GPT를 한번 끝까지 쪼아보자!! 돌고돌아가는 과정인 것 같기는 하지만.. GPT가 주는 여러 방안들 중에서 하나를 건질 수 있다면 좋은 게 아닐까..?(해답 찾기까지 너무 오래 걸리긴 함;;)





이 페이지의 이미지 일부에는 네이버에서 제공한 나눔글꼴이 포함되어 있습니다.

3개의 댓글

comment-user-thumbnail
2025년 1월 31일

openvidu v3 EC2 국내 배포 1등 축하드려요~^^

2개의 답글