카테고리 없음

AWS PM2

tp134679 2025. 4. 14. 14:57

<목차>

1. 포그라운드 백그라운드

1-2 프로그램 프로세스

2. PM2

 

 

1. 포그라운드 백그라운드

포그라운드

포그라운드는 사용자가 직접 실행하고, 사용자와 상호작용하는 프로세스를 말해. 터미널에서 실행하면 바로 실행되고, 그 터미널을 닫으면 프로세스도 같이 종료됩니다.

 

백그라운드

눈에 보이지 않으며 사용자와 직접적으로 상호작용 하지 않고, 보이지 않는 곳에서 동작하는 프로세스

터미널을 닫아도 실행이 지속되며, 서버 유지와 같은 목적으로 주로 사용됩니다.

 

EX) 윈도우 자동 소프트웨어 업데이트 

프로세스 안에서 실행되는 작업의 최소 단위

 

1-2 프로그램 프로세스

프로그램은 실제로 컴퓨터에서 실행되는 코드나 소프트웨어를 말하고, 프로세스는 그 코드가 실행되어 동작하는 상태를 말합니다.

프로그램이 실행될 때마다 프로세스가 생기고, 그 프로세스는 시스템 자원을 사용하면서 작동하는데.

node server.js를 실행하면, server.js는 프로그램이고, 그 실행 결과로 node가 동작하는 프로세스가 생기는 원리입니다.

 

2. PM2

pm2란 process Manager2 로 Node.js 에서 에플리케이션을 효율적으로 실행하고 관리하는 프로세스 메니저입니다.

기존의 EC2 환경은 직접 실행을 시키고 끄니까 포그라운드에서 실행을 합니다. 우리가 콘솔 브라우저 자체를 끄면 서버 프로세스도 끊기기 때문에 24시간 을 돌릴 수없고 지속성이 없기에 이를 백그라운드로 서버를 흐르게 해서 관리하는게 

pm2 입니다.

 

PM2는 Node.js 애플리케이션을 백그라운드에서 안정적으로 실행하고 관리할 수 있는 강력한 도구로서. 기본적인 실행부터 충돌 감지, 자동 재시작, 로드 밸런싱, 서버 재부팅 후 자동 실행 등 다양한 기능을 제공합니다.

PM2를 활용하면 서버가 터미널을 닫아도 유지됨 프로세스가 자동으로 재시작됨 여러 개의 애플리케이션을 한 번에 관리 가능하고 AWS EC2와 같은 환경에서 Node.js 서버를 운영할 때 필수적인 도구라고 할 수 있습니다.

 

 

 

pm2 작동원리

 

PM2는 메인 프로세스와 여러 워커 프로세스(앱 인스턴스)로 구성되어있습니다 

PM2는 하나의 중앙관리자(마스터 프로세스)가 여러개의 애플리케이션 프로세스를 관리하는 방식으로 동작합니다.

즉 PM2가 관리자 역할을 하며 여러개의 애플리케이션 프로세스를 실행 및 감시하는 구조입니다.

 

 

1. 애플리케이션 프로세스 실행

pm2 start server.js

 

위의 명령어를 실행하면 마스터 프로세스가 애플리케이션 프로세스를  
생성하고 실행하게 됩니다.


실행하면 마스터 프로세스가 Node.js 애플리케이션을 실행하고 이를 관리합니다.
이때, 백그라운드에서 실행되므로 터미널을 닫아도 계속 동작합니다.

 

2. 애플리케이션 모니터링 및 자동 재시작 

PM2는 실행된 애플리케이션을 주기적으로 체크합니다.  
만약 애플리케이션이 크래시(충돌)되거나 종료되면?마스터 프로세스가 이를 감지하고 즉시 재시작합니다.

PM2 실행 흐름

1. 사용자가 `pm2 start server.js` 실행
2. PM2 마스터 프로세가 실행
3. Node.js 런타임을 이용해 server.js 실행
4. 실행된 프로세스를 백그라운드에서 관리
5. package.json의 start 스크립트는 pm2 start npm -- start를 실행될떄만 사용됨

 

PM2가 작동하는 방식


pm2 start server.js => 직접 server.js 실행 (package.json과 무관)
pm2 start npm -- start => package.json의 scripts.start 실행
pm2 start ecosystehttp://m.config.js => PM2 설정 파일을 통해 여러 개의 앱 실행