pm2 라이브러리 사용법 무중단 Node.js 서버를 위한 프로세스 매니저

pm2 라이브러리란?
Node.js 애플리케이션을 관리해주는 프로세스 매니저입니다. pm2를 사용하면 Node.js 애플리케이션을 컴퓨터가 종료되지 않는 한 영구적으로 실행하고 다운타임 없이 재시작하고 로그 처리와 시스템 관리 작업을 할 수 있으며 Node.js 서버를 실행하는데 거의 필수적으로 사용됩니다. 아직 pm2에 대해 잘 모르시는 분들을 위해 pm2에 대해 설명해드리겠습니다.

pm2 라이브러리 설치 방법
pm2는 npm을 통해 간단하게 설치할 수 있습니다. 터미널에서 다음 명령어로 pm2를 전역적으로 설치할 수 있습니다.
1 |
npm install -g pm2 |
pm2 라이브러리 사용법
pm2를 사용하면 Node.js 애플리케이션을 쉽게 관리하고 모니터링할 수 있습니다.
1. 애플리케이션 시작
Node.js 애플리케이션뿐만 아니라 Python, Ruby, 바이너리 파일 등 다양한 애플리케이션을 시작할 수 있습니다.
1 |
pm2 start app.js |
위 명령어는 app.js 파일을 pm2로 실행하는 명령어입니다. 이렇게 하면 app.js 파일이 백그라운드에서 데몬화됩니다.
2. 애플리케이션 관리
실행중인 애플리케이션의 상태를 쉽게 관리할 수 있습니다.
1 2 3 4 5 |
pm2 list # 실행중인 애플리케이션 목록 출력 pm2 stop app.js # app.js 정지 pm2 restart app.js # app.js 재시작 pm2 delete app.js # app.js 삭제 pm2 describe app.js # app.js 상세 정보 출력 |
3. 애플리케이션 모니터링
실행중인 애플리케이션의 로그, 메트릭, 정보 등을 모니터링할 수 있습니다.
1 2 |
pm2 logs # 실행중인 애플리케이션의 로그 출력 pm2 monit # 실행중인 애플리케이션의 메트릭과 정보 출력 |
pm2 라이브러리 장점
pm2는 Node.js 애플리케이션을 관리하는데 많은 장점을 가지고 있습니다.
1. 클러스터 모드
클러스터 모드는 pm2에서 제공하는 모드입니다. 클러스터 모드를 사용하면 Node.js 애플리케이션을 여러 프로세스로 실행하고, HTTP/TCP/UDP 요청을 그 사이에 로드밸런싱할 수 있습니다. 이렇게 하면 Node.js 애플리케이션의 성능을 최대한 높이고 신뢰성을 향상시킬 수 있습니다. 아래 명령어로 클러스터 모드로 애플리케이션을 시작할 수 있습니다.
1 |
pm2 start app.js -i max |
위 명령어에서 여기서 max는 컴퓨터의 CPU 코어 수만큼 프로세스를 생성함을 의미합니다. -1을 입력하면 하나의 코어를 제외하고 모두 사용하고, 숫자를 입력하면 해당 숫자만큼 프로세스를 생성합니다.
2. 무중단 서비스
pm2를 사용하면 Node.js 애플리케이션을 무중단으로 서비스할 수 있습니다. pm2는 애플리케이션에 오류가 발생하거나 서버가 다운되거나 코드가 변경되어도 애플리케이션을 자동으로 다시 로드합니다. 아래 명령어로 중단 없이 애플리케이션을 다시 시작할 수 있습니다.
1 |
pm2 reload app.js # app.js 애플리케이션을 다운타임 없이 다시 로드합니다. |
이상으로 npm pm2 라이브러리에 대해 알려드렸습니다. pm2 라이브러리는 Node.js 애플리케이션을 관리하는데 매우 유용하니 Node.js를 공부중이시라면 pm2 라이브러리를 활용해서 서버를 운영해보세요. 오늘도 방문해주셔서 감사합니다. 다른 글도 확인하고 싶으시면 블로그 메인도 방문해주세요. 감사합니다.