EC2 Node hosting [모노레포]

homewiz·2026년 3월 20일

AWS

목록 보기
3/4

1. 기본 패키지

sudo yum update -y || sudo apt update -y
sudo yum install -y git || sudo apt install -y git
sudo yum install -y curl || sudo apt install -y curl

2. nvm 설치

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

적용:

source ~/.nvm/nvm.sh

확인:

nvm -v

3. Node 설치

LTS 기준:

nvm install --lts
nvm use --lts
nvm alias default node

확인:

node -v
npm -v

4. pnpm 설치

npm install -g pnpm

pnpm setup 실행

pnpm setup

shell 재적용

source ~/.bashrc

또는

exec bash

환경 확인

echo $PNPM_HOME
echo $PATH

👉 PNPM_HOME이 포함되어 있어야 정상

예:

/home/ec2-user/.local/share/pnpm

5. pm2 설치

pnpm add -g pm2

확인:

pm2 -v

6. Git clone

git clone <REPO_URL>
cd 프로젝트폴더

Pirvate key 생성

vi ~/.ssh/id_ed25519

👉 로컬 private key 내용 그대로 붙여넣기

Public Key 생성

vi ~/.ssh/id_ed25519.pub

👉 로컬 public key 내용 그대로 붙여넣기

권한 설정 (필수)

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

테스트

ssh -T git@github.com

7. 모노레포 환경 변수 (.env)

위치

apps/api/.env

생성

cd apps/api
vi .env

필수 값 작성

DATABASE_URL=postgresql://user:password@localhost:5432/db
TRONGRID_API_KEY=...
TRON_FULL_HOST=https://api.trongrid.io
WALLET_MASTER_KEY_BASE64=...

8. 의존성 설치 (모노레포 핵심)

cd ~/프로젝트루트
pnpm install

이 스크립트 자동 실행됨:

"postinstall": "pnpm --filter @cws/api prisma:generate"

👉 Prisma client 자동 생성됨

9. DB 준비

migrate

pnpm --filter @cws/api prisma:migrate

(선택) seed 있으면

pnpm --filter @cws/api prisma:seed

10. 빌드 (API만)

pnpm build:api

👉 내부적으로:

pnpm --filter @cws/api build

11. 실행 방식 선택

pnpm start:api

→ start:dev라서 운영용 아님

production 실행

pnpm --filter @cws/api start:prod

12. start.sh (모노레포 맞춤)

start.sh

vi start.sh

copy

#!/bin/bash

set -e

echo "📌 Project 배포 시작"

source ~/.nvm/nvm.sh
nvm use default

# 1. 최신 코드 가져오기
echo "📥 Git pull..."
git pull origin main

# 2. 의존성 설치
echo "📦 Dependencies 설치 중..."
pnpm install --frozen-lockfile

# 3. Prisma generate
echo "🧬 Prisma generate..."
pnpm --filter @cws/api prisma:generate

# 4. Build
echo "🏗 Build 중..."
pnpm build:api

# 5. PM2 재시작
echo "🚀 API 재시작..."
pm2 restart wallet-api || pm2 start apps/api/dist/main.js --name wallet-api --max-memory-restart 500M

pm2 save

echo "🎉 배포 완료"

pm2 logs

권한

chmod +x start.sh

13. 실행

./start.sh

14. pm2 자동 실행

pm2 startup

👉 출력 명령어 실행

pm2 save

15. 확인

pm2 list
pm2 logs

0개의 댓글