DevOps

[AWS]나만의 무기 프로젝트 EC2 서버로 배포하기

Woonys 2022. 2. 21. 01:15
반응형

현재 진행 중인 프로젝트에서 이제까지 로컬에서 돌렸던 서버를 EC2로 배포하는데 드디어 성공했다! 아래 링크는 현재 진행 중인 On Air Super Live의 서버 리포지토리.

 

https://github.com/TeamGreyOrg/super_live_server

 

GitHub - TeamGreyOrg/super_live_server

Contribute to TeamGreyOrg/super_live_server development by creating an account on GitHub.

github.com

 

나중에 Readme.md에 추가하기 위해 미리 여기다가 오늘 작업한 내역을 글로 쓴다. 여기 글은 EC2를 발급받은 이후부터 진행한다.

 

1.node.js(NVM) 다운로드

 

먼저 ec2 터미널에서 nvm을 install한다. 글에서 설명하는 개발환경은 위 프로젝트의 개발환경임을 알려둔다.

 

nvm install 14.15.0

 

2. EC2 shell에서 git clone

git clone https://github.com/TeamGreyOrg/super_live_server.git

 

3. AWS에서 포트 설정

 

EC2 서버에서 포트를 따로 설정하는 것 외에도, AWS EC2에서도 자체적으로 포트를 열고/닫을 수 있게 관리를 하고 있다. 그래서 AWS EC2 Security Group에서 인바운드 요청 포트를 열어줘야 한다.

 

먼저 EC2 관리 콘솔로 들어간다. 인스턴스보안 탭 으로 이동 → 보안 그룹 ‘sg-...’ 클릭 → 인바운드 규칙 편집 클릭해 해당 페이지로 이동한다. 현 프로젝트에서는 RTMP(1935), HTTP(80->8000), mongoDB(27017), websocket(3333) 서버를 사용하므로 각 서버에 해당하는 포트 넘버를 열어준다.

 

 

우리는 여기서 HTTP 포트를 8000으로 열 것이기에 포트포워딩(80으로 들어오는 포트를 8000으로 넘겨주기) 역시 작업해준다.

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8000

 

4. mongoDB Setup

먼저 EC2에 mongoDB를 설치(자세한 설명은 홈페이지 링크 참조)한다. 아래 코드만 한 줄씩 입력하면 된다.

 

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

sudo apt-get update

sudo apt-get install -y mongodb-org

 

mongodb를 실행해본다. 아래 명령어를 입력했을 때 별 이상 없으면 잘 작동한다는 뜻.

sudo vi /etc/mongod.conf
# 실행. 아무 반응이 없으면, 잘 실행된 것!
sudo service mongod start

 

잘 되면 shell에 mongo를 입력해 mongo shell로 넘어간다.

mongo

admin 계정으로 변경한 다음, db.createUser()를 입력해 root 권한을 갖는 계정을 생성한다.

# admin으로 계정 바꾸기
use admin;

# 계정 생성하기
db.createUser({
  user: 'username',
  pwd: 'password',
  roles: ['root']
})

 

config를 수정하기 위해 mongod.conf 파일을 vim으로 오픈한다.

 

sudo vi /etc/mongod.conf

 

들어가면 아래와 같이 보일텐데, mongoDB는 디폴트로 내부(아래 보이는 127.0.0.1)에서만 접속을 허용하고 있다. 따라서 외부에서 접근이 가능하도록 잠금을 풀어준다. 이를 위해 bindIp를 0.0.0.0으로 변경한다.

 

sudo vi /etc/mongod.conf

# 입력 모드 전환
i

bindIp: 0.0.0.0

#내용 저장: esc 누른 뒤 아래 명령어 입력
:wq

#mongoDB 재시작
sudo service mongod restart

 

이어서 Robo 3T를 켜 {EC2 ip 주소}:27017과 연결해준다.

 

그러면 EC2 서버 배포 끝!(일단은..)

반응형