NodeJS 라이브러리
PM2: Node.js 애플리케이션의 프로세스 매니저 가이드
ReactRoster
2024. 12. 3. 22:14
SMALL
PM2: Node.js 애플리케이션의 프로세스 매니저 가이드
Node.js 애플리케이션은 기본적으로 싱글 쓰레드에서 실행되기 때문에, 운영 환경에서는 안정성과 성능을 높이기 위해 추가적인 관리 도구가 필요합니다. PM2는 Node.js 애플리케이션을 위한 프로세스 관리 도구로, 애플리케이션의 로드 밸런싱, 자동 재시작, 클러스터링 등 다양한 기능을 제공합니다. 이번 포스팅에서는 PM2의 주요 기능과 사용법을 빠르게 알아보겠습니다.
1. PM2란?
PM2는 Node.js 애플리케이션의 다음 기능을 지원하는 프로덕션 레벨의 프로세스 매니저입니다.
주요 특징
- 애플리케이션 모니터링: 애플리케이션 상태 및 리소스 사용량을 실시간으로 확인.
- 자동 재시작: 애플리케이션이 비정상 종료되면 자동으로 재시작.
- 로드 밸런싱: 클러스터 모드를 통해 CPU 코어를 활용.
- 로그 관리: 출력 로그를 통합적으로 관리.
- 영구 실행: 서버 재부팅 후에도 애플리케이션이 자동으로 시작.
2. PM2 설치
PM2는 Node.js와 함께 npm을 통해 설치할 수 있습니다.
글로벌 설치
npm install pm2 -g
설치 후, PM2가 제대로 설치되었는지 확인합니다.
pm2 --version
3. 기본 사용법
애플리케이션 시작
pm2 start app.js
실행 상태 확인
pm2 list
애플리케이션 중지
pm2 stop app
애플리케이션 재시작
pm2 restart app
애플리케이션 종료
pm2 delete app
4. 고급 기능
클러스터 모드
pm2 start app.js -i max
-i max
: 사용 가능한 모든 CPU 코어를 활용.-i <숫자>
: 실행할 인스턴스 수 지정.
자동 재시작
pm2 start app.js --watch
PM2는 코드 변경을 감지하고 애플리케이션을 자동 재시작합니다..pm2ignore
파일을 추가하여 특정 디렉토리를 감시에서 제외할 수 있습니다.
환경 변수 설정
pm2 start app.js --env production
JSON 설정 파일로 환경 변수 관리
// ecosystem.config.js
module.exports = {
apps : [
{
name : "app",
script : "./app.js",
env: {
NODE_ENV: "development",
},
env_production : {
NODE_ENV: "production",
}
}
],
};
pm2 start ecosystem.config.js --env production
로그 관리
- 로그 출력 보기:
pm2 logs
- 로그 파일 경로 확인:
pm2 show app
- 로그 지우기:
pm2 flush
PM2를 서버 재부팅 후 자동 실행
pm2 startup
pm2 save
PM2 모니터링
pm2 monit
7. 결론
PM2는 Node.js 애플리케이션의 안정성, 성능, 관리 효율성을 극대화하는 강력한 도구입니다. 특히 클러스터 모드와 자동 재시작 기능은 고가용성을 요구하는 서비스에 적합하며, 배포 및 모니터링 통합 기능으로 운영 환경을 손쉽게 관리할 수 있습니다.
PM2 공식 문서: PM2 Quick Start
여러분의 PM2 활용 사례를 댓글로 공유해주세요! 🚀
LIST