피드로 돌아가기
Deploying a Next.js App to AWS with CI/CD Pipelines (Step-by-Step)
Dev.toDev.to
Infrastructure

EC2와 CloudFront 기반의 Next.js 인프라 구축으로 월 $5의 비용 효율과 제어권 확보

Deploying a Next.js App to AWS with CI/CD Pipelines (Step-by-Step)

Harshdeep Singh2026년 6월 2일10intermediate

Context

Vercel의 편의성 대비 인프라 제어권 부족과 트래픽 증가 시 발생하는 예측 불가능한 비용 문제 분석. 기업 수준의 Compliance 준수 및 AWS 생태계 내 서비스 통합을 위한 자체 인프라 구축 필요성 대두.

Technical Solution

  • EC2(t3.micro) 기반의 Ubuntu 환경에 Node.js 20 및 PM2를 도입하여 프로세스 생명주기 관리 및 Zero-downtime 배포 구현
  • Nginx를 Reverse Proxy로 설정하여 외부 80/443 포트 요청을 내부 3000 포트로 포워딩하는 트래픽 진입점 설계
  • CloudFront CDN을 전면에 배치하여 정적 자산(_next/static/*)의 Edge 캐싱을 통한 응답 속도 최적화 및 ACM 기반 SSL 인증서 적용
  • GitHub Actions를 활용해 Build-Test-Deploy로 이어지는 CI/CD 파이프라인을 구축하고 SSH Action을 통해 EC2 환경에 자동 반영
  • PM2의 max-restarts 및 min-uptime 설정을 통해 배포 실패 시 무한 재시작 루프를 방지하는 안정성 확보

1. PM2 도입 시 서버 재부팅 후 자동 실행을 위한 pm2 startup 설정 확인

2. SSH Key 보안을 위해 chmod 400 권한 설정 및 GitHub Secrets를 통한 민감 정보 관리

3. CloudFront 적용 시 HTML은 TTL 0, 정적 자산은 장기 캐싱(1년)으로 설정하여 효율성 극대화

4. EC2 Security Group 설정 시 SSH(22) 포트는 특정 IP로만 제한하여 보안 강화

원문 읽기