AWS EC2로 배포하기(5) | 프로젝트 배포 | pm2를 활용한 무중단 배포

방충림·2023년 6월 16일
4

AWS

목록 보기
5/10
post-thumbnail

앞 포스팅들의 내용을 잘 따라왔다면 웬만한 설정은 다 끝났다고 보면된다.
이제 본격적으로 배포를 하기 나의 프로젝트를 불러와야한다.
인스턴스에는 Git이 기본적으로 깔려있다.

`git --version` // git이 잘 깔려있는지 확인

이제 github에 올려놓은 나의 프로젝트를 가져올 것인데, 가져올 디렉토리는 인스턴스의 /home/ubuntu 디렉터리가 되겠다.

github에서 프로젝트 클론

디렉토리 이동

해당 디렉토리로 이동을 한다.

cd /home/ubuntu

프로젝트 클론

배포할 프로젝트를 클론한다.

git clone <원격레포지토리 주소>

의존성 모듈 설치

클론이 완료되었으면 npm으로 의존성 모듈들을 설치해주어야한다.
yarn을 사용할 경우? => yarn 설치방법

npm install
or
yarn install

환경 변수 설정

마지막으로 깃허브에 올릴 때 git gnore 되었던 내용들을 추가해줘야한다. .env 파일 등 추가

리액트 빌드 및 빌드 폴더 복사

환경 변수 설정까지 마쳤다면, 리액트가 배포될 수 있도록 빌드작업을 해준다.
이때 빌드를 해서 생성된 build디렉토리를 NginX가 정정파일로서 사용자에게 제공할 수 있도록 특정 위치로 옮겨주어야한다. 아래의 경로로 디렉토리를 복사하면 된다.
나는 새로운 디렉토리를 만들고 빌드 디렉토리의 내용들만 옮겨주었다.

mkdir /var/www/폴더이름
cp -r build/* /var/www/폴더이름/


PM2설치 및 사용법

여기 까지 완료했다면, node 명령어룰 통해 프로젝트를 실행할 수 있는데, 문제점이 한가지 있다.

바로, SSH를 로그아웃하면 배포도 종료된다는 점.
이럴 때 배포를 유지시켜주는 툴로 pm2,forever가 유명한데 이중에서 PM2를 사용해보겠다.

pm2 설치

npm이나 yarn을 통해 global로 설치를 해주어야한다.

npm i -g pm2
or
yarn global add pm2

pm2 설치 확인

pm2 -v

pm2 주요 명령어

pm2 start app.js - 지정한 파일 (예: app.js)을 백그라운드에서 실행합니다.
pm2 kill 0 - 실행 중인 프로세스들을 완전히 종료한다.
pm2 stop app - 실행 중인 프로세스 (예: app)를 중지합니다.
pm2 restart app - 실행 중인 프로세스를 재시작합니다.
pm2 list - 현재 실행 중인 모든 프로세스 목록을 표시합니다.
pm2 logs - 로그 파일을 실시간으로 모니터링합니다.
pm2 monit - CPU, 메모리 등의 리소스 사용 상태를 실시간으로 모니터링합니다.
pm2 delete app - 실행 중인 프로세스 (예: app)를 제거합니다.
pm2 startup - 서버 부팅 시 pm2를 자동으로 시작하도록 설정합니다.
pm2 save - 현재 실



노드버전이 다른 경우?

노드 버전에 다른 경우 배포에 오류가 발생할 수 있다.
이때는 인스턴스의 노드버전을 내 프로젝트의 노드 버전에 맞게 변경해주어야한다.

관련한 내용은 이 곳을 참고하면 좋다.



참고
우리밋 EC2에 서버 배포3

profile
최선이 반복되면 최고가 된다.

0개의 댓글