Node.js에서 PM2를 이용한 효율적인 프로세스 관리하는 방법

Node.js에서 PM2를 이용한 효율적인 프로세스 관리하는 방법

Node.js 애플리케이션을 운영할 때, 애플리케이션이 지속적으로 실행되도록 관리하는 것은 매우 중요합니다. PM2는 Node.js 애플리케이션을 위한 고급 프로세스 관리자로, 애플리케이션의 로드 밸런싱, 자동 재시작, 로그 관리 등을 포함한 다양한 기능을 제공합니다.

PM2를 사용하는 주요 이점

  • 자동 재시작: 애플리케이션 충돌이나 서버 재부팅 후에도 애플리케이션을 자동으로 재시작합니다.
  • 로드 밸런싱: 여러 CPU 코어에서 애플리케이션의 인스턴스를 쉽게 분산시켜 로드 밸런싱을 할 수 있습니다.
  • 프로세스 관리: 실행 중인 애플리케이션의 상태를 쉽게 모니터링하고 관리할 수 있습니다.
  • 로그 관리: 애플리케이션 로그를 파일에 저장하고 관리하는 기능을 제공합니다.

PM2 설치하기

PM2는 npm을 통해 쉽게 설치할 수 있습니다. 글로벌로 설치하기 위해 다음 명령어를 사용합니다.

npm install pm2 -g

애플리케이션 시작하기

PM2를 사용하여 Node.js 애플리케이션을 시작하는 방법은 매우 간단합니다. 애플리케이션 파일 이름을 명령어에 추가하기만 하면 됩니다. 코드 변경사항을 자동으로 감지하고 애플리케이션을 재시작하려면 --watch 옵션을 사용합니다.

pm2 start app.js --watch

--watch 옵션을 사용하면 PM2가 파일 시스템의 변경사항을 모니터링하고, 애플리케이션 파일에 변경이 있을 때마다 애플리케이션을 자동으로 재시작합니다. 이를 통해 개발 과정에서 애플리케이션의 실시간 업데이트가 가능해집니다.

PM2로 애플리케이션 시작 실행 결과 화면

PM2 명령어

  • pm2 list: 실행 중인 모든 프로세스 목록을 보여줍니다.
  • pm2 stop [app_name|id]: 애플리케이션을 정지합니다.
  • pm2 restart [app_name|id]: 애플리케이션을 재시작합니다.
  • pm2 delete [app_name|id]: 애플리케이션을 삭제하고 PM2 목록에서 제거합니다.
  • pm2 logs: 애플리케이션의 로그를 실시간으로 보여줍니다.
PM2 logs 명령어 실행 결과 화면

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

PM2는 기본적으로 클러스터 모드를 지원하여 애플리케이션의 여러 인스턴스를 실행시키고, 로드 밸런싱을 통해 트래픽을 균등하게 분산시킬 수 있습니다. 다음 명령어를 사용하여 애플리케이션의 인스턴스를 여러 개 실행할 수 있습니다.

pm2 start app.js -i max

위 명령어에서 -i max 옵션은 시스템의 CPU 코어 수만큼 애플리케이션 인스턴스를 실행하라는 의미입니다.

자세한 정보는 PM2 공식 문서에서 확인하세요.

관련 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤