프론트엔드 개발

aws ec2배포, pm2 활용 본문

Front-End/기타

aws ec2배포, pm2 활용

태나미 2021. 5. 7. 12:40
local에서 작업하였던 것을 AWS에 연결하여, 배포 서버에서 build하는 방식을 지양하려고 하고 있다
서버의 메모리 부족으로 인해, client가 몰릴때 서버에서 build를 한다면, 터져서 다른 시스템이 다운되는 현상이 발생

pm2란?

  • Node.js용 Process manager

pm2 사용이유

  • Node.js를 활용한 실제 서비스를 무중단으로 운영하기 위해
  • Node.js의 클러스터 모듈을 사용해서 원하는 수 만큼 프로세스를 쉽게 늘리고 줄일 수 있게 하기 위해

pm2 설치 방법

npm install pm2 -g

이외에 pm2를 자세하게 보고 싶다면 공식문서나 이곳을 참고하세요

로컬에서 build 하는 방식

Tools: ftp(fileZila)

Solution

1. sftp 이용, 공인키 인증하는 곳에 pem 파일 등록

2. 접속

호스트명 입력, 사용자명, 포트는 22로 빠른연결

3. local에서 build한 후(master branch에서 yarn build를 실행) build 파일을 해당 디렉토리에 넣는다.

 

ssh -i redate_renew.pem ec2-user@[도메인]

*pm2 reload [번호]

 

서버에서 build 하는 방식

Tools: Git Bash(관리자 권한으로 실행), pm2

1. pem 파일을 원하는 directory 에 위치시킨다

2. 해당 directory에 위치한 곳에 ssh 프로토콜을 이용하여 연결한다

  1. ssh -i [이름].pem ec2-user@[도메인]

3. 해당 directory로 이동

4. local에서 작업한 branch git pull로 받는다.

5. package manager로 build한다. 해당 프로젝트는 yarn build로 진행하였음.

6. build 이후, pm2 reload를 한다

- pm2 reload를 할경우 아래 id값 0을 지정해줘야함 pm2 reload 0

- pm2 list 를 이용하여 status가 online인지 확인할 것.

** Node.js의 프로세스 매니저인 PM2를 서비스에 적용해 Node.js 애플리케이션을 무중단으로 운영하고자 할 때 사용

** 클러스터(Cluster) 모듈을 통해 단일 프로세스를 멀티 프로세스(Worker)로 늘릴 수 있는 방법을 제공

Comments