본문 바로가기
Archive

NestJS 서버 EC2 배포 및 CICD 정리

by livemehere 2022. 8. 4.

체크리스트

  • 포트를 8080 으로 하였는가?
  • pm2 를 설치하였는가?
  • script를 추가하였는가?

 

PM2 사용하기

설치

npm i pm2 --force

script 추가

"deploy": "npm i --force && npm run build && npx pm2 start dist/main.js",
"redeploy": "npm i --force && npm run build && npx pm2 reload all"

 

시작

  • EC2 대여 (최소 t2.small , micro 는 안돌아간다)
  • 탄력적 IP 생성 및 할당 
  • ssh 접속
  • nvm 설치
sudo apt install curl 
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash 

source ~/.bashrc 

nvm install node
  • sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
  • git clone <프로젝트 주소>
  • git config --global credential.helper store (매번 로그인안하도록 설정)
  • npm run deploy

이제 매번 코드를 업데이트 한다면 거쳐야 할 과정이 아래와 같다.

ssh 접속 -> git pull origin master -> npm run redeploy

 

CICD gitghub Actions

다음액션을 사용한다.

 

AWS SSM Send-Command - GitHub Marketplace

Remote EC2 bash command execution

github.com

(다음에 계속 ..)

반응형