반응형
✅ 1. EC2 인스턴스 생성 (Ubuntu)
- AWS 콘솔 > EC2 > 인스턴스 시작
- OS 선택: Ubuntu 22.04 LTS
- 인스턴스 유형: t2.micro (프리티어면 이걸로 충분)
- 키페어 생성: .pem 파일 다운로드 (SSH 접속할 때 필요)
- 네트워크 설정:
- HTTP(80), HTTPS(443), SSH(22) 허용
- 인스턴스 시작
시작 후 "공용 IPv4 주소"를 메모해둬
✅ 2. RDS 인스턴스 생성 (MySQL 기준)
- AWS 콘솔 > RDS > 데이터베이스 생성
- 데이터베이스 엔진: MySQL
- 프리티어 체크 (무료 요금제)
- DB 인스턴스 ID / 사용자 이름 / 비밀번호 설정
- 퍼블릭 액세스 허용 (예)
- 보안 그룹 설정:
- EC2에서 접근할 수 있도록 인바운드 규칙에 EC2의 보안그룹 추가
완료되면 엔드포인트 주소를 메모해둬. 이게 DB 연결 주소야.
✅ 3. EC2에 SSH 접속
chmod 400 your-key.pem
ssh -i your-key.pem ubuntu@<EC2 퍼블릭 IP>
✅ 4. 기본 세팅 (Node.js, Git, Nginx 등)
# 패키지 업데이트
sudo apt update && sudo apt upgrade -y
# Node 설치 (v18 권장)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
# Git, PM2, Nginx 설치
sudo apt install -y git nginx
sudo npm i -g pm2
✅ 5. 프로젝트 배포
1) Git clone
git clone <레포주소>
cd <프로젝트>
npm install
2) .env 설정
DB_HOST=<RDS 엔드포인트>
DB_USER=<유저>
DB_PASS=<비번>
3) 빌드 & 실행
npm run build
pm2 start dist/main.js --name "your-app" # NestJS 예시
# or Next.js라면
npm run start
✅ 6. Nginx로 Reverse Proxy 설정
sudo nano /etc/nginx/sites-available/default
server {
listen 80;
server_name <EC2 퍼블릭 IP>;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
반응형