Node.js

PM2, node.js 상용 배포를 위한 프로세스 매니저

왈왈디 2024. 9. 29. 00:44
728x90

PM2란

PM2(Process Manager 2)는 node.js 애플리케이션의 상용 프로세스를 관리하는 도구이다.

빌트인 로드 밸런서를 가지고 있다.

애플리케이션이 종료되지 않도록 유지해주며, 

다운타임 없이 재시작 할 수 있게 해준다.

 

설치

npm install pm2 -g

 

npm으로 pm2를 설치할 수 있다.

 

사용 방법

1. 애플리케이션 시작

pm2 start app.js

 

터미널에서 pm2 start 명령어로 애플리케이션을 실행시키면 

앱이 데몬 모드로 실행되고, 모니터링되고, 종료되지 않는다.

 

2. 실행되는 애플리케이션 관리

pm2 list

 

pm2 list 명령어를 실행하면 실행되고 있는 애플리케이션의 상태를 볼 수 있다.

출처: npm pm2

3. 애플리케이션 중지, 재시작, 삭제(종료)

pm2 stop <app_name|namespace|id|'all'|json_conf>
pm2 restart <app_name|namespace|id|'all'|json_conf>
pm2 delete <app_name|namespace|id|'all'|json_conf>

 

4. 특정 애플리케이션에 대한 자세한 정보 확인

pm2 describe <id|app_name>

 

5. 로그 확인, 커스텀 metrics, 애플리케이션 정보 확인

pm2 monit

 

6. 클러스터 모드로 node.js 애플리케이션 실행하기

pm2 start api.js -i <processes>

 

클러스터 모드로 node.js 애플리케이션을 실행하면 

다수의 프로세스가 로드 밸런싱 된다.

<processes> 자리에 'max' 또는 -1 (전체 cpu 빼기 1) 또는 실행시킬 인스턴스 수를 입력하면 된다.

 

7. 다운타임 없이 재실행

pm2 reload all

 

reload 명령어는 다운타임 없이 업데이트된 코드로 애플리케이션이 재실행되게 할 수 있다.

 

8. 로그 확인

pm2 logs

 

pm2 logs 명령어로 로그를 확인할 수 있다.

여러 옵션도 가능하다.

pm2 logs APP-NAME       # 특정 애플리케이션의 로그
pm2 logs --json         # JSON 형식
pm2 logs --format       # Formated 형식

pm2 flush               # 전체 로그 삭제
pm2 reloadLogs          # 전체 로그 다시 불러오기

 

pm2-logrotate라는 기능도 있는데,

설치하면 로그 자동 삭제, 파일 리사이즈 등 다양한 로그 관리 기능들을 이용할 수 있다.

pm2 install pm2-logrotate

 

출처: npm pm2 (https://www.npmjs.com/package/pm2)

728x90

'Node.js' 카테고리의 다른 글

node.js 환경에서 java 코드를 사용하는 방법 (npm java)  (5) 2024.08.17