PM2 또는 Process Manager 2는 개발자와 Devops가 프로덕션 환경에서 Node.js 애플리케이션을 관리하는 데 도움 이 되는 오픈 소스 프로덕션 Node.js 프로세스 관리자입니다. Supervisord, Forever, Systemd 와 같은 다른 프로세스 관리자와 비교하여 PM2의 일부 주요 기능은 자동 애플리케이션 로드 밸런싱, 선언적 애플리케이션 구성, 배포 시스템 및 모니터링 입니다.
기존에 클러스터 모드 및 오류로 인한 프로세스 종료 현상 등 개발자가 인지하지 못한 상황에서 간단한 설정으로 이러한 문제들을 해결할 수 있는 Node 의 인기 라이브러리 중 하나입니다.
그러면 실무에서 필요로 하는 최소한의 정보들을 알아보고 적용해보도록 합시다.
# Contents
- PM2 설치
- PM2 사용법
# PM2 설치
npm이 설치되어 있는 상황에서 아래 명령어를 터미널에 입력하여 PM2를 설치 해보도록 합시다.
$ npm install pm2@latest -g
# or
$ yarn global add pm2
# PM2 사용법
PM2 의 주요 사용 명령어에 대해 알아보도록 하겠습니다.
- pm2 start
- pm2 restart
- pm2 stop
- pm2 delete
- pm2 monit
- pm2 logs
- pm2 list
1. pm2 start
애플리케이션을 시작, 데몬화 및 모니터링 하는 가장 간단한 방안은 다음 명령어를 사용하는 것 입니다.
pm2 start app.js
다음은 CLI에 전달할 수 있는 옵션입니다. 보시다시피 PM2로 애플리케이션을 관리하는 데 사용할 수 있는 많은 옵션이 있습니다. 사용 사례에 따라 찾을 수 있습니다.
# Specify an app name
--name <app_name>
# Watch and Restart app when files change
--watch
# Set memory threshold for app reload
--max-memory-restart <200MB>
# Specify log file
--log <log_path>
# Pass extra arguments to the script
-- arg1 arg2 arg3
# Delay between automatic restarts
--restart-delay <delay in ms>
# Prefix logs with time
--time
# Do not auto restart app
--no-autorestart
# Specify cron for forced restart
--cron <cron_pattern>
# Attach to application log
--no-daemon
Node.js 애플리케이션의 경우 PM2에는 생성된 각 프로세스 간에 모든 HTTP[s]/Websocket/TCP/UDP 연결을 공유하는 자동 로드 밸런서가 포함됩니다. 클러스터 모드에서 애플리케이션을 시작 하려면 아래와 같은 명령어를 사용합니다.
pm2 start app.js -i max
클러스터 모드에 대한 자세한 내용은 여기를 참조하십시오.
2. pm2 restart
애플리케이션을 재시작 을 위한 명령어 입니다.
pm2 restart app.js
3. pm2 stop
start와는 반대로 실행되어져 있는 애플리케이션을 멈추는 명령어 입니다. pm2에 등록이 된 상태에서 제거되지는 않습니다.
pm2 stop app.js
4. pm2 delete
등록된 애플리케이션을 제거하는 명령어입니다.
pm2 delete app.js
5. pm2 monit
터미널 기반의 실시간으로 애플리케이션을 감시 할 수 있는 모니터링 명령어입니다.
pm2 monit
6. pm2 logs
실시간으로 로그를 표시 하는 명령어 입니다.
pm2 logs
7. pm2 list
관리되는 애플리케이션의 목록 을 나열하는 명령어입니다.
pm2 list
# 마무리
PM2를 사용하여 애플리케이션을 관리하는 실무에서 적용할 수 있는 아주 기본적인 명령어를 다뤄보았습니다. 여러 애플리케이션들을 한번에 관리할 때 사용하는 방법인 PM2 구성 파일 설정 은 아래 사이트를 참고해주시기 바랍니다.
https://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/
아주 기본적이고 간단하면서도 강력한 PM2의 라이브러리를 사용하여 프로젝트를 안전하게 구동시키세요!!
'오픈소스 > 노드' 카테고리의 다른 글
[Node] Webpack 쓸만한 Plugins (0) | 2021.10.12 |
---|---|
[Node] Webpack 설치 및 사용법 (0) | 2021.10.12 |
[Node] Audio Raw PCM data 에서 amplitude 추출 (0) | 2021.10.06 |
[Node] Express 서버에서 Form을 이용하여 여러 개 데이터 전송 (0) | 2021.10.06 |
[Node] Express 404 Not Found 처리 (0) | 2021.10.06 |