[Node.js] pm2

[Node.js] pm2

Node.js 애플리케이션 관리의 필수 도구: PM2 사용법


1. PM2란 무엇인가

PM2는 Node.js 애플리케이션을 관리하는 데 필요한 프로세스 매니저이다. 특히 프로덕션 환경에서의 안정적인 애플리케이션 운영을 위해 많은 개발자들이 사용한다. PM2를 사용하면 서버에서 Node.js 프로세스를 재시작하거나 관리하는 작업이 훨씬 쉬워지고, 애플리케이션의 다운타임을 최소화할 수 있다. 클러스터링을 통해 부하를 분산하는 기능도 제공하기 때문에, 고가용성이 필요한 애플리케이션에 적합하다.


2. PM2 설치하기

PM2를 설치하는 것은 매우 간단하다. 전역으로 설치하여 시스템 어디서나 PM2를 사용할 수 있도록 설정하는 것이 일반적이다. 다음 명령어를 통해 PM2를 설치할 수 있다.


npm install -g pm2

이렇게 전역으로 설치하면 시스템 어디서나 pm2 명령어를 사용할 수 있게 된다. 이는 애플리케이션을 관리할 때 큰 편리함을 제공한다.


3. 애플리케이션 실행하기 (app.js)

이제 app.js 파일을 PM2로 실행해보자. 애플리케이션의 별명은 web_server로 설정할 것이다. 이렇게 별명을 설정하면 이후 관리할 때 훨씬 더 직관적이고 편리하다.


pm2 start app.js --name "web_server"

이 명령어는 app.js를 실행하면서 애플리케이션의 별명을 web_server로 설정하는 것이다. 별명을 부여해두면 여러 프로세스를 관리할 때 특정 애플리케이션을 쉽게 구분할 수 있다.


4. PM2의 기본 명령어들

PM2를 통해 애플리케이션을 실행한 이후에는 다양한 명령어들을 통해 애플리케이션을 제어하고 관리할 수 있다. 다음은 주로 사용되는 몇 가지 명령어이다.

애플리케이션 삭제


pm2 delete web_server

더 이상 필요하지 않은 프로세스를 삭제하고 싶을 때 이 명령어를 사용하면 된다.


애플리케이션 중지


pm2 stop web_server

애플리케이션을 중지할 필요가 있을 때 이 명령어를 사용한다.

애플리케이션 재시작


pm2 restart web_server

이 명령어는 애플리케이션을 재시작하는 데 사용된다. 코드 변경이 있을 때 사용하면 효과적이다.

현재 실행 중인 프로세스 확인


pm2 list

이 명령어를 사용하면 현재 PM2로 관리되고 있는 모든 프로세스의 리스트를 확인할 수 있다. 각 프로세스의 상태와 CPU 및 메모리 사용량 등을 직관적으로 확인할 수 있다.

5. PM2를 이용한 로그 관리

로그 관리는 애플리케이션 운영에서 중요한 부분이다. PM2는 애플리케이션의 로그를 간편하게 확인할 수 있는 기능을 제공한다. 실시간 로그를 확인하고자 할 때는 다음 명령어를 사용한다.


pm2 logs web_server

이 명령어를 입력하면 web_server의 로그가 실시간으로 출력된다. 이를 통해 애플리케이션의 상태를 파악하거나 문제를 빠르게 해결할 수 있다.


6. 시스템 재부팅 시 자동 시작 설정

애플리케이션이 시스템 재부팅 시 자동으로 실행되도록 설정하는 것은 프로덕션 환경에서 매우 중요하다. PM2는 이를 손쉽게 설정할 수 있는 기능을 제공한다.


pm2 startup
pm2 save

먼저 pm2 startup 명령어를 사용하여 PM2가 시스템 시작 시 자동으로 실행되도록 설정한다. 이후 pm2 save 명령어를 사용하면 현재 실행 중인 프로세스 목록을 저장하여, 시스템 재부팅 후에도 동일한 프로세스들이 자동으로 재시작되게 된다.


7. 결론

PM2는 Node.js 애플리케이션을 안정적으로 관리하고 운영하는 데 필수적인 도구이다. 애플리케이션의 실행과 중지, 재시작과 같은 기본적인 관리부터, 시스템 재부팅 시 자동으로 프로세스를 시작하게 하는 기능까지, PM2는 운영 과정에서 발생하는 여러 복잡한 문제를 단순화시켜준다. 이를 통해 애플리케이션의 가용성을 높이고, 운영의 효율성을 극대화할 수 있는 것이다.

댓글