PM2

정은경·3일 전
0

👸 Front-End Queen

목록 보기
280/281

PM2란?

PM2는 Node.js 애플리케이션을 관리하고 모니터링하기 위한 프로세스 매니저입니다. 서버 환경에서 Node.js 애플리케이션을 효율적으로 실행하고 유지하기 위해 널리 사용됩니다.


주요 기능

  1. 애플리케이션 관리

    • 애플리케이션의 시작, 정지, 재시작, 삭제 등을 명령어로 간단하게 관리.
  2. 클러스터 모드

    • 단일 서버에서 CPU 코어를 최대한 활용할 수 있도록 Node.js 애플리케이션을 여러 인스턴스로 실행.
  3. 자동 재시작

    • 애플리케이션이 예기치 않게 종료되거나 충돌해도 자동으로 재시작.
  4. 로그 관리

    • 애플리케이션의 stdout, stderr 로그를 파일로 저장하고 관리.
  5. 로드 밸런싱

    • 클러스터 모드에서 애플리케이션에 대한 요청을 균등하게 분배.
  6. 환경 변수 설정

    • .env 파일이나 명령어를 통해 애플리케이션에 필요한 환경 변수를 손쉽게 설정.
  7. 모니터링

    • 대시보드나 CLI에서 애플리케이션 상태(메모리 사용량, CPU 사용량 등)를 실시간으로 모니터링.
  8. Watch 모드

    • 파일 변경을 감지하여 애플리케이션을 자동으로 재시작.

PM2를 사용하는 이유

  • Node.js 애플리케이션의 가용성(Availability)을 높이고, 다운타임을 최소화.
  • 멀티 코어 서버에서 성능을 극대화.
  • 복잡한 프로세스 관리를 단순화.
  • 로그와 상태를 손쉽게 관리 및 모니터링.

기본 명령어

  1. 애플리케이션 실행

    pm2 start app.js
  2. 애플리케이션 상태 확인

    pm2 list
  3. 애플리케이션 재시작

    pm2 restart app.js
  4. 애플리케이션 종료

    pm2 stop app.js
  5. 로그 확인

    pm2 logs
  6. 환경 변수와 함께 실행

    pm2 start app.js --env production

PM2의 클러스터 모드 예시

CPU 코어 개수만큼 애플리케이션을 실행:

pm2 start app.js -i max

대안

  • Forever: 단순히 애플리케이션을 실행하고 재시작하는 기능 제공.
  • Docker: 컨테이너화된 환경에서 프로세스를 관리.

PM2는 Node.js 애플리케이션을 안정적으로 운영하고 싶을 때 가장 많이 선택되는 도구입니다.

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글