🚀 Locally 프로덕션 확장 계획 (MVP to Enterprise)
해커톤 15시간의 제약 속에서 빠른 속도를 위해 Vercel + Supabase 조합으로 MVP를 구현했지만, 실제 글로벌 서비스로 도약하기 위한 AWS 기반의 엔터프라이즈 아키텍처(IaC) 및 CI/CD 파이프라인 설계를 완벽하게 준비해 두었습니다.
1. 단계별 아키텍처 진화 전략 (Architecture Evolution)
⏱️ Phase 1: MVP (현재) - “속도 최우선”
- 프론트엔드/API: Vercel (Next.js Serverless)
- 데이터베이스: Supabase (PostgreSQL SaaS)
- 캐시: Upstash (Redis SaaS)
- 특징: 제로(0) 인프라 관리, 극단적인 개발 속도 확보. 단, 트래픽 증가 시 종량제 요금 폭탄 및 데이터 제어권 상실 리스크 존재.
🏗️ Phase 2: Production Ready - “독립과 확장성” (준비 완료)
- 프론트엔드/API: AWS EC2 (Next.js Docker Container)
- 데이터베이스/캐시: AWS 내부망에 PostgreSQL, Redis 컨테이너 통합 (All-in-One)
- 보안/네트워크: Cloudflare Tunnel (Inbound 포트 전면 차단, DDoS 방어, 무료 SSL)
- 특징: SaaS 의존성을 100% 끊어내고 데이터 주권을 확보. 트래픽 스파이크에 대비한 OOM(메모리 부족) 방어 및 Redis 인메모리 캐싱 아키텍처 적용 완료.
🚀 Phase 3: Global Enterprise - “고가용성과 스케일아웃” (Next Step)
- 오케스트레이션: AWS ECS (Fargate) 기반의 서버리스 컨테이너 클러스터링
- 데이터베이스: Amazon RDS (Multi-AZ) 및 ElastiCache (Redis 클러스터)
- 트래픽 분산: AWS ALB (Application Load Balancer) + CloudFront (글로벌 CDN)
- 특징: 무중단 배포, 무한대에 가까운 오토스케일링(Auto Scaling), 데이터센터 재해 복구(DR) 완비.
2. Infrastructure as Code (IaC) - Terraform 구현 완료
인프라의 재현성과 버저닝(Versioning)을 위해 클릭이 아닌 **코드(Terraform)**로 클라우드 환경을 설계했습니다. (infra/ 디렉토리 참조)
- 컴퓨팅 리소스:
t3.mediumEC2 인스턴스 (비용 효율성과 성능 밸런스) - 네트워크 보안: Cloudflare Tunnel만 통신할 수 있도록 인바운드 포트(80, 443, 3000)를 원천 차단하는 강력한 Security Group(방화벽) 구성.
- 안정성 장치: EC2 초기화 스크립트(
user_data)에 2GB Swap 메모리 생성 로직을 주입하여, 급격한 트래픽 몰림 시 발생할 수 있는 OOM(Out of Memory) 크래시를 하드웨어 레벨에서 방어. - 컨테이너 통합: API, DB, Redis가 하나의 가상 네트워크로 묶여 0.1ms 미만의 지연 시간(Latency)으로 통신하는
docker-compose.yml토폴로지 구성.
3. CI/CD 파이프라인 설계 (GitHub Actions)
개발 팀이 인프라에 신경 쓰지 않고 비즈니스 로직(꿀팁, AI 플랜)에만 집중할 수 있도록, ‘코드 푸시 → 서버 배포’까지의 전 과정을 자동화했습니다. (.github/workflows/deploy.yml 참조)
🔄 배포 파이프라인 워크플로우 (Workflow)
- Trigger:
main브랜치에 코드가 Merge되거나 Push 될 때 파이프라인 자동 가동. - Secure Access: GitHub Secrets에 안전하게 저장된 SSH Key를 이용해 AWS EC2 인스턴스에 암호화된 터널로 접속.
- Code Synchronization: 서버 내부에서
git pull을 통해 최신 코드로 동기화. - Environment Injection:
OPENAI_API_KEY,DATABASE_URL,CLOUDFLARE_TUNNEL_TOKEN등 민감한 환경 변수를 동적으로.env파일에 주입하여 소스코드 유출을 원천 차단. - Zero-Touch Deployment:
docker-compose up -d --build명령어를 통해 Next.js 웹 서버, PostgreSQL, Redis 컨테이너를 최신 이미지로 리빌드(Rebuild) 및 무인 배포.
Supported by gemini-3.0-pro preview