본문 바로가기

Coding/내일배움캠프

[내일배움캠프] Node.js 4기 TIL | Day 50 | 24.02.21.(수)

PM2는 Node.js 애플리케이션을 관리하고 배포하는 데 널리 사용되는 강력한 도구입니다. 이 가이드에서는 PM2를 사용하여 Node.js 프로젝트를 배포하는 과정을 단계별로 자세하게 설명합니다.

 

1. 사전 준비

1.1. Node.js 및 PM2 설치

  • Node.js가 설치되어 있는지 확인합니다. 설치되어 있지 않다면 공식 사이트에서 최신 버전을 설치합니다.
  • PM2를 설치합니다.
npm install -g pm2

1.2. 프로젝트 폴더 구성

  • 프로젝트 폴더 구조를 정리합니다. 일반적으로 다음과 같은 구조를 사용합니다.
project/
├── app.js (실행 파일)
├── package.json (프로젝트 정보)
└── node_modules (모듈 폴더)

1.3. 환경 설정

  • 프로젝트 환경 변수를 설정합니다. 환경 변수는 .env 파일이나 package.json 파일의 env 속성에 정의할 수 있습니다.

1.4. 배포 스크립트 작성

  • 프로젝트를 배포하는 데 필요한 작업을 자동화하는 배포 스크립트를 작성합니다. 예를 들어, 다음과 같은 스크립트를 작성할 수 있습니다.
#!/bin/bash

# 프로젝트 빌드
npm run build

# PM2를 사용하여 프로젝트 시작
pm2 start app.js --name my-app

# 로그 확인
pm2 logs my-app

2. 서버 준비

2.1. 서버 환경 구축

  • 배포할 서버에 Node.js 및 PM2를 설치합니다.
  • 서버에 필요한 라이브러리 및 모듈을 설치합니다.

2.2. 서버 보안 설정

  • 서버에 방화벽을 설정하여 공격으로부터 보호합니다.
  • SSH 키를 사용하여 서버에 안전하게 연결합니다.

3. 배포

3.1. 프로젝트 빌드

  • 배포 스크립트를 실행하여 프로젝트를 빌드합니다.

3.2. 프로젝트 업로드

  • 빌드된 프로젝트 파일을 서버에 업로드합니다.
  • 서버에 업로드된 파일의 권한을 설정합니다.

3.3. PM2 설정

  • PM2 설정 파일을 생성하고 프로젝트 정보를 설정합니다.
  • PM2 설정 파일에서 다음과 같은 옵션을 설정할 수 있습니다.
    • name: 프로세스 이름
    • script: 실행 파일 경로
    • instances: 실행할 프로세스 개수
    • max_memory_restart: 메모리 사용량 초과 시 재시작
    • env: 환경 변수

3.4. 프로젝트 실행

  • PM2를 사용하여 프로젝트를 실행합니다.
pm2 start app.js --name my-app

4. 배포 후 작업

4.1. 로그 확인

  • PM2 로그를 확인하여 프로젝트가 정상적으로 실행되었는지 확인합니다.

4.2. 자동 재시작 설정

  • 프로세스가 오류로 종료되면 자동으로 재시작하도록 설정합니다.

4.3. 모니터링

  • PM2를 사용하여 프로젝트의 CPU 사용량, 메모리 사용량 등을 모니터링합니다.

5. 추가 정보

6. 미친 디테일 팁

  • 배포 스크립트에 다양한 옵션을 추가하여 배포 과정을 자동화합니다.
  • PM2 ecosystem 파일을 사용하여 여러 프로젝트를 관리합니다.
  • Nginx와 같은 웹 서버를 사용하여 프로젝트를 프록시합니다.
  • Let's Encrypt와 같은 SSL 인증서를 사용하여 서버를 보안합니다.

 

* 해당 게시글은 gemini를 참고하여 작성된 게시글임을 알립니다.