semtax의 개발 일지

node.js 프로세스 매니저 => PM2 본문

개발/node.js

node.js 프로세스 매니저 => PM2

semtax 2020. 1. 21. 01:41
반응형

개요

이번 시간에는 node.js의 프로세스 관리 도구인 pm2에 대해 소개를 하도록 하겠다.

Process Manager

먼저 아래의 상황을 가정해보자.

만약 node app.js나 npm start 만을 이용해서 서비스를 띄운다고 가정을 해보자. 그런데, 예상하지 못한 상황(예를 들어 예상 못한 값이 들어와서 예외처리를 못한다거나, DB 커넥션 풀 개수가 꽉찼다거나, 모르고 에러 핸들러 1개를 깜박하고 처리를 못했다거나 등등)이 와서 서비스가 죽어버렸다. 그런데 당신은 자고 있어서 대처가 불가능 하였다.

이런 슬픈상황이 ㅠㅠ..

또 아래와 같은 상황을 가정해보자.

당신이 node.js를 기반으로한 동접자 100명의 서비스를 운영한다고 가정해보자. 그런데 운이 좋아서 사용자가 갑자기 500명으로 5배 늘었다. 하지만 당신의 서비스는 갑작스러운 유저수의 증가를 버티지 못하고 그만 사망해버리고 말았다. 하지만 당신은 공교롭게도 자고 있어서 대처가 불가능 하였다.

이런 슬픈상황이 ㅠㅠ..

(물론 2번째 상황 같은 경우, nginx나 load balancer 또는 circuit breaking 패턴등으로도 해결이 가능하긴 하다.)

이러한 2가지 상황에 대해 대처하기 위해, node.js를 위한 많은 프로세스 매니저(Process Manager)가 나왔다.

PM2, forever 등과 같은 많은 도구들이 있지만 이 중에서 우리는 PM2에 대해서 다루어 보도록 하겠다.

사용법

아래와 같이 설치를 해준다.

npm install pm2 -g

사용 방법은 아래와 같다.

pm2 start app.js

또한, 특정 이름을 지정해서 사용할 수 도 있다.

pm2 start app.js --name "service1"

PM2의 서비스를 전부 죽이려면 다음과 같이 치면 된다.

pm2 kill

그리고 모니터링을 하는 경우 아래와 같이 수행하면 된다.

pm2 monit

또한 돈이 있다면 아래 사이트를 이용해서 유용할 것이다. 웹 형태로 된 예쁜 모니터링 화면을 볼 수 있다.

https://id.keymetrics.io/api/oauth/register

반응형
Comments