Server/AWS,서버관리

Node.js 애플리케이션 관리 프로세스 매니저, pm2란?

건담아빠 2024. 12. 6. 09:46

pm2에 대해서 정리해두자.

pm2란?

Node.js 애플리케이션을 관리하기 위한 프로세스 매니저로, 특히 서버 애플리케이션의 안정성과 성능을 유지하기 위해 널리 사용된다. PM2는 애플리케이션의 실행, 관리, 모니터링 등을 쉽게 수행할 수 있도록 다양한 기능을 제공한다.

 

주요기능

프로세스 관리

  • Node.js 애플리케이션을 백그라운드에서 실행하고, 중단 없는 실행을 보장
  • 애플리케이션이 중단되거나 크래시 날 경우 자동으로 재시작
  • 애플리케이션의 실행, 중지, 재시작 등을 명령어로 간단히 제어

로드 밸런싱, 클러스터 모드

  • 여러 CPU 코어를 활용할 수 있도록 클러스터 모드를 지원하여 Node.js 애플리케이션 성능 극대화
  • 클러스터 모드로 트래픽을 균등하게 분배.

로그 관리

  • 실행 중인 애플리케이션의 로그를 관리하고 로그를 실시간으로 확인할 수 있다.

모니터링

  • 메모리 사용량, CPU 부하, 요청 처리량 등의 애플리케이션 상태를 실시간으로 모니터링할 수 있다.

간편한 배포

  • pm2 deploy 명령어를 통해 애플리케이션의 배포 및 업데이트를 자동화할 수 있다.

JSON 설정 파일

  • ecosystehttp://m.config.js 파일을 사용해 여러 애플리케이션의 설정(환경 변수, 실행 옵션 등)을 관리할 수 있다.

 

설치방법

PM2 설치

Node.js가 설치된 환경에서 실행 가능하다.

$ npm install pm2 -g

 

애플리케이션 실행

$ pm2 start app.js

 

 

주요 명령어

1. 시작

$ pm2 start app.js

 

2. 재시작

$ pm2 restart app.js
$ pm2 restart {id}

 

3. 갱신

$ pm2 reload app.js
$ pm2 reload {id}

 

4. 중지

$ pm2 stop app.js
$ pm2 stop {id}

 

5. 삭제

$ pm2 delete app.js
$ pm2 delete {id}

 

애플리케이션 상태 확인

1. 요약정보 확인

$ pm2 list
$ pm2 ls
$ pm2 status

 

2. 로그 확인

$ pm2 logs
$ pm2 logs --line 1000
$ pm2 logs --err
$ pm2 logs --out
  • pm2 logs --line 1000
  • pm2 logs --err ( --err , --out )

 

3. 모니터링 대시보드 실행

$ pm2 monit

 

 

 

Node.js 프로세스 매니저는 pm2, forever, npm, yarn등이 있고, 과거에는 forever가 대세였으나 추가가 pm2로 넘어오고 넘어 왔다고도 볼 수 있다.

 

bash 환경에서 npm start를 통해서 웹서버를 실행할 수는 있지만 bash창을 끄면 그와 동시에 서버가 다운되지만 forever 및 pm2를 사용하여 서버를 실행하게 되면 백그라운드로 프로세스를 실행된다.