들어가며

Next.js + Prisma + PostgreSQL로 만든 사내용 프로젝트(칸반/위키 등)를 AWS에 올리면서, “어디에 어떻게 띄울까?”를 정리해 봤다.처음엔 App Runner를 쓰려다가 한국 리전(ap-northeast-2) 미지원이라 다른 선택지를 비교했고, 그 과정을 공부용으로 정리한 글이다.


1. 이 프로젝트에서 고민한 것

  • 엇을 올리는가

Next.js 풀스택 앱(Docker 이미지), RDS(PostgreSQL), S3 업로드.→ “한 개의 웹앱 + DB + 스토리지” 구조.

  • 어디에 올릴 것인가 (컴퓨팅)

코드는 Docker로 빌드하고 ECR에 올리는 전제.그 이미지를 어떤 AWS 서비스에서 실행할지를 정해야 함.

  • 제약
  • 서비스 지역: 한국 리전(ap-northeast-2) 사용 필요.
  • App Runner는 ap-northeast-2를 지원하지 않음 → App Runner 제외.

그래 App Runner 대안으로 ECS, Lambda(+ Lambda Web Adapter), EKS를 비교했다.


2. 고민한 옵션과 이유

구분 App Runner ECS(Fargate) Lambda + WebAdapter EKS
뭔가 리형 컨테이너 서비스 컨테이너 오케스트레이션(관리형 Fargate) 서버리스 함수 + HTTP 서버 어댑터 쿠버네티스
한국 리전
Docker 그대로 변환/제약 있음
RDS 연결 편함 편함(풀 유지) RDS Proxy 권장 편함
운영 부담 낮음 중간 낮음(대신 제약 있음) 높음
적합한 경우 단한 웹앱, 지원 리전이면 최적 지금처럼 “한 개 앱” 상시 운영 트래픽 적고 비용 민감 다수 서비스, K8s 팀
  • App Runner

설정 간단하고 Docker 그대로 쓰기 좋지만, ap-northeast-2 미지원이라 이번에는 제외.

  • ECS (Fargate)

Docker 이미지 그대로, RDS 연결/풀 유지하기 좋고, 한국 리전 지원.“한 개 Next.js 앱을 안정적으로 상시 운영”하기에 가장 무난한 선택.

  • Lambda + Lambda Web Adapter

서버리스, 요청당 과금.대신 콜드 스타트, 실행 시간 제한, RDS 연결 수 관리(RDS Proxy 필요) 등 고려할 점이 있어서, 트래픽이 적고 비용을 최소화하고 싶을 때만 검토.

  • EKS

확장성·유연성은 크지만,  개 웹앱만 올리기엔 운영·비용 모두 과한 선택.나중에 서비스가 많이 늘어나고 K8s를 쓸 계획이 있으면 그때 고려.


3. 이 프로젝트에서의 결론(선택 기준)

  • : 한국 리전에서 Next.js + RDS를 안정적으로 돌리기.

선택: ECS (Fargate)  1순위로 두고,

트래픽이 매우 적고 비용을 더 줄이고 싶을 때만 Lambda + Lambda Web Adapter(+ RDS Proxy) 를 대안으로 검토.

  • 용어 정리:

“ECS로 배포한다” = 컨테이너 기반 웹앱 호스팅

“Lambda로 배포한다” = 버리스 HTTP 앱 호스팅

“이번에 고민한 건 AWS 컴퓨팅/호스팅 옵션 정리” 정도로 말하면 됨.

 

+ Recent posts