[Node.js] pm2를 사용하여 무중단 서버를 구축해보자

호이·2023년 2월 8일
0

Node.js

목록 보기
2/4

1. 왜 필요한가?

클라우드기반 서버라면 Node.js로 서버를 만들고 실행할 경우 세션이 종료되었을 때 Node.js로 만들어진 서버도 같이 종료되는 현상이 발생했다.

2. 과정

처음에는 forever를 사용하여 백그라운드에서 실행하였지만 나중에 서버가 중단되고 말았다. 그래서 pm2를 활용하여 백그라운드에서 동작하고 서버가 중단되더라도 자동으로 시작하도록 하였다. pm2라는 라이브러리를 설치하고 Node.js로 만들어진 서버를 pm2로 시작하면 된다.

3. 결과

다음의 명령어를 터미널에 입력하여 pm2를 설치한다.

npm install -g pm2

다음 명령어를 터미널에 입력하여 pm2Node.js로 만들어진 서버를 시작할 수 있다.

pm2 start index.js

자바스크립트는 싱글 스레드 언어이기 때문에 Node.js로 만들어진 서버도 똑같이 싱글 스레드로 동작하여 컴퓨터의 물리적 자원을 제대로 활용하지 못한다. pm2는 이러한 단점을 보완하도록 pm2라이브러리는 클러스터라는 모드를 제공한다. 클러스터모드로 서버를 시작하고 싶으면 다음의 명령어를 터미널에 입력한다.

pm2 start index.js -i max

여기서 max란 컴퓨터의 cpu를 모두 사용함을 의미하며 -1을 입력할 경우 하나의 코어를 제외하고 모두 동작하도록 할 수 있다. 현재 pm2로 동작 중인 서버가 궁금하다면 다음의 명령어를 터미널에 입력하여 pm2로 실행하고 있는 서버를 확인할 수 있다.

pm2 list

pm2를 중지 및 재시작을 하고 싶을 경우 다음의 명령어를 터미널에 입력하여 pm2를 제어할 수 있다.

pm2 stop     <app_name|namespace|id|'all'|json_conf>
pm2 restart  <app_name|namespace|id|'all'|json_conf>

여기서 app_name,namespace,idpm2로 실행 중인 서버를 확인할 때 같이 확인이 가능하다.

4. 참고

자세한 설명은 npm의 pm2 라이브러리 페이지에서 알아볼 수 있다.

profile
기억하기 싫어서 기록하는 작은 공간

0개의 댓글