컨테이너 마이크로서비스

중급

ECS/Fargate + ALB + ECR로 컨테이너 기반 마이크로서비스를 구축하는 패턴

아키텍처 다이어그램

개요

각 기능을 독립적인 컨테이너로 분리하여 운영하는 마이크로서비스 패턴입니다. 서버 관리 없이 Fargate로 컨테이너를 실행하고, ALB가 트래픽을 각 서비스에 분배해요.

구성

  1. ECR — Docker 이미지를 빌드하고 저장하는 프라이빗 레지스트리
  2. ECS Fargate — 서버 없이 컨테이너를 실행하는 오케스트레이션 서비스
  3. ALB — 요청을 각 마이크로서비스에 경로 기반으로 분산
  4. Route 53 — 커스텀 도메인 연결
  5. RDS — 관계형 데이터베이스 (서비스 간 공유 또는 서비스별 분리)

장점

  • 서비스별 독립 배포/스케일링 가능
  • Fargate로 서버 관리 불필요
  • 서비스 장애가 전체에 전파되지 않음 (장애 격리)
  • Docker 이미지로 로컬-프로덕션 환경 일관성 보장

주의사항

  • 서비스 간 통신 설계가 복잡해질 수 있음 (서비스 디스커버리 필요)
  • 모놀리식 대비 초기 구축 비용이 높음
  • 서비스가 적다면 오버엔지니어링이 될 수 있음
  • Fargate 비용이 Lambda보다 높을 수 있으므로 트래픽 패턴 고려 필요