1. PM2 (Process Manager 2)
1-1. PM2란?
PM2 GitHub README.md의 일부를 발췌
PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks.
= PM2는 애플리케이션 무중단 운영 및 다양한 시스템 관리 업무를 가능하게 해주는 Node.js 프로세스 매니저
1-2. PM2 설치
$ npm install -g pm2
# Ubuntu
$ sudo npm install -g pm2
2. PM2로 프로세스 백그라운드로 실행
2-1. 프로세스를 왜 백그라운드로 실행해야 할까?
'서버 배포' = 24시간 동안 쉬지 않고 서버 가동
서버가 켜져 있는 터미널이 종료된다면
서버 프로세스가 같이 종료되는 문제
AWS EC2 인스턴스 배포
--> EC2 인스턴스에 SSH 접속, 서버를 켜고, SSH 세션에서 exit 하지 않고 계속 접속을 유지
만약 exit 하게 되면
배포한 서버도 종료
SSH 접속
지속해서 사용하지 않으면 접속이 종료 (보안상의 이유)
이러한 문제를 해결하기 위해
애플리케이션 서버를 백그라운드로 실행
PM2는 위와 같은 상황(AWS EC2에 배포하여 SSH 접속)에서
SSH 세션에서 exit 하더라도 프로세스가 종료되지 않고 계속해서 동작할 수 있도록 프로세스를 백그라운드로 실행시킬 수
2-2. PM2를 활용한 백그라운드 실행
// app.js
const express = require("express")
const app = express()
app.get('/ping', (req, res) => {
res.send('pong')
})
app.listen(3000, () => {
console.log('running')
})
다음과 같이 간단한 ping 테스트가 가능한 애플리케이션을 백그라운드로 실행
1. pm2 start app.js 명령어 -> 애플리케이션 실행
2. localhost(127.0.0.1) 3000포트로 -> request를 보내 올바르게 동작하는지 확인
3. pm2 list 명령어 => SSH 세션에서 exit 하고 다시 접속해도 해당 프로세스가 계속해서 동작하는 것을 확인
'Cloud Service > AWS 공부' 카테고리의 다른 글
[AWS] RDS - 2) DB 인스턴스 생성 + 실습 ** (0) | 2023.10.28 |
---|---|
[AWS] RDS란?(Relational Database Service) -1) (0) | 2023.10.28 |
[AWS] EC2 _ 4) SSH를 이용한 EC2 Instance 접속 + 실습 (0) | 2023.10.28 |
[AWS] - EC2 _ 2) Security Groups & Ports (0) | 2023.10.28 |
[AWS] - EC2 (Elastic Compute Cloud)_ 1) (0) | 2023.10.28 |