잘 설계된 AWS 시스템을 구축하는 것은 종종 확립된 패턴 — 3계층 웹 아키텍처, 마이크로서비스, 이벤트 기반, 서버리스 등 — 을 따르며, 이들은 확장성, 분리, 회복력 같은 흔한 요구를 다루기 위해 AWS 서비스를 결합합니다.
3계층 웹 아키텍처 (고전)
고전적인 확장 가능 웹 앱:
프레젠테이션 → CloudFront (CDN) + S3 (정적 프론트엔드) 또는 ALB → 웹 계층
애플리케이션 → EC2/컨테이너 (오토스케일, multi-AZ) 로드 밸런서 뒤
데이터 → RDS (Multi-AZ) / DynamoDB; 캐싱용 ElastiCache
→ 각 계층이 독립적으로 확장; HA를 위한 multi-AZ; 기초적인 웹 패턴.
마이크로서비스
독립적인 서비스로 분해 (각각 자체 데이터 소유):
→ 서비스당 컨테이너 (ECS/EKS) 또는 Lambda; API Gateway / 서비스 메시
→ API와 비동기 메시징 (SQS/SNS/EventBridge)으로 통신
→ 독립적인 확장, 배포, 팀
→ 분산 시스템 복잡성의 대가로 유연성과 확장성.
