아키텍처 다이어그램
개요
각 기능을 독립적인 컨테이너로 분리하여 운영하는 마이크로서비스 패턴입니다. 서버 관리 없이 Fargate로 컨테이너를 실행하고, ALB가 트래픽을 각 서비스에 분배해요.
구성
- ECR — Docker 이미지를 빌드하고 저장하는 프라이빗 레지스트리
- ECS Fargate — 서버 없이 컨테이너를 실행하는 오케스트레이션 서비스
- ALB — 요청을 각 마이크로서비스에 경로 기반으로 분산
- Route 53 — 커스텀 도메인 연결
- RDS — 관계형 데이터베이스 (서비스 간 공유 또는 서비스별 분리)
장점
- 서비스별 독립 배포/스케일링 가능
- Fargate로 서버 관리 불필요
- 서비스 장애가 전체에 전파되지 않음 (장애 격리)
- Docker 이미지로 로컬-프로덕션 환경 일관성 보장
주의사항
- 서비스 간 통신 설계가 복잡해질 수 있음 (서비스 디스커버리 필요)
- 모놀리식 대비 초기 구축 비용이 높음
- 서비스가 적다면 오버엔지니어링이 될 수 있음
- Fargate 비용이 Lambda보다 높을 수 있으므로 트래픽 패턴 고려 필요