brunch

You can make anything
by writing

C.S.Lewis

by 김재즈 Apr 21. 2018

node.js application 실행환경 관리

w/ pm2, config

process managing

node.js 앱을 배포하다 보면, 모니터링, 프로세스 관리, std 로그 관리 등이 필요할 때가 있다. 요런 니즈로 사용하는 것들은 크게 forever, nodemon, pm2 등이 있다.

http://www.npmtrends.com - 생각보다 nodemon을 많이쓴다!?



그중에서도 pm2는 모니터링 및 프로세스의 현재 상태를 시각적으로도 잘 보여주고, 여러 프로세스를 관리할 때 용이하게 되어있어서 애용하는 도구다. 무엇보다 세련되게 생겼다.

http://pm2.keymetrics.io/


기존 pm2 1.x.x 버전을 쓰고 있는 서버가 있어서, 이번에 배포 환경 정리하면서 pm2로 업그레이드하였고, pm2 2.x에서 나온 ecosystem을 활용했다.

ecosystem 외에도 clustering, deployment 등도 제공한다. 나중에 시간 내서 읽어보자. 

PM2 Documents


config

https://github.com/lorenwest/node-config

config 패키지를 사용하면 application 내에서 손쉽게 configuration에 접근할 수 있다. 물론 환경별로 configuration을 관리할 수 있고, default 값에 변경되는 값만 override 할 수도 있다.


pm2 + config

pm2의 ecosystem을 활용하면 실행 시에 NODE_ENV 를 명시해서 넘길 수 있다.

전달받은 NODE_ENV 이름에 맞는 config 파일은 config/ 디렉토리 안에 추가해주면, application 전체에서 config로 쉽게 접근이 가능하다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari