
본 프로젝트는 Azure VM 1대를 기반으로,
Docker Compose를 활용해 Web–App–DB 구조의 3-Tier 아키텍처를 논리적으로 구성했습니다.
외부 사용자는 Public IP를 통해 서비스에 접근하며,
요청은 먼저 Web Load Balancer(web-lb) 로 전달됩니다.
이후 Web Layer의 web-1, web-2 인스턴스로 분산되어 처리됩니다.
Web Layer는 Nginx 기반 Reverse Proxy 역할을 수행하며,
내부의 App Load Balancer(app-lb) 를 통해
app-1, app-2 애플리케이션 인스턴스로 요청을 전달합니다.
App Layer는 Spring Boot 기반으로 구성되어
비즈니스 로직을 처리하고,
DB Layer의 MySQL 과 연동하여 데이터를 저장합니다.
또한 서비스 운영 상태를 확인하기 위해
Prometheus 와 Grafana 를 연동했으며,
Web Layer는 nginx exporter, App Layer는 Actuator + Micrometer 기반으로
메트릭을 수집하도록 구성했습니다.
즉, 물리적으로는 단일 VM 환경이지만,
논리적으로는 Load Balancer – Web – App – DB 로 역할을 분리하고