DevUnion 프로젝트는 Spring Boot 백엔드와 React 프론트엔드를 AWS 클라우드에 배포하기 위한 인프라를 구축합니다. 이 문서는 고가용성(High Availability), 보안(Security), 확장성(Scalability)을 고려한 실무 수준의 아키텍처 구성을 설명합니다.
프로젝트 전용 네트워크 공간을 마련하고, 리소스의 역할에 따라 네트워크를 분리합니다.
devunion-vpc
10.0.0.0/16
devunion-public-az1
(10.0.10.0/24
)devunion-private-az1
(10.0.11.0/24
)devunion-public-az2
(10.0.20.0/24
)devunion-private-az2
(10.0.21.0/24
)devunion-igw
devunion-nat-gw-az1
devunion-public-rt
: Public 서브넷과 연결, devunion-igw
를 통한 라우팅 설정.devunion-private-rt
: Private 서브넷과 연결, devunion-nat-gw-az1
을 통한 라우팅 설정.각 리소스의 가상 방화벽을 정의하여 최소 권한 원칙을 적용합니다.
devunion-alb-sg
:HTTP:80
, HTTPS:443
포트의 인바운드를 0.0.0.0/0
에서 허용.devunion-app-sg
:8080
인바운드를 devunion-alb-sg
에서 허용. SSH
인바운드를 devunion-bastion-sg
에서 허용.devunion-db-sg
:5432
(PostgreSQL) 인바운드를 devunion-app-sg
에서 허용.devunion-bastion-sg
:SSH
인바운드를 개발자의 My IP
에서만 허용.devunion-db
db.t4g.micro
(비용 효율적인 Graviton 프로세서)devunion-vpc
에 devunion-db-subnet-group
(Private 서브넷 포함) 사용.devunion-db-sg
할당.아니요
(Private 서브넷에만 존재).devunion-bastion-host
t3.micro
devunion-public-az1
서브넷에 위치, 퍼블릭 IP 자동 할당.devunion-bastion-sg
할당.devunion-key.pem
사용.devunion-backend
Private
devunion-frontend-static
모든 퍼블릭 액세스 차단
.devunion-frontend-static
S3 버킷.index.html
.devunion-cluster
devunion-backend-task
devunion-backend-container
(ECR 이미지 사용).0.5 vCPU
, 1 GB
.SPRING_DATASOURCE_URL
, SPRING_DATASOURCE_USERNAME
, SPRING_DATASOURCE_PASSWORD
설정.ecsTaskExecutionRole
할당.devunion-alb
HTTP:80
(추후 HTTPS:443 추가 예정).devunion-backend-tg
(컨테이너 포트 8080
과 연결).devunion-backend-service
devunion-backend-task
할당.2
(고가용성을 위해).devunion-app-sg
할당.devunion-alb
와 devunion-backend-tg
연결.Application Load Balancer
NAT Gateway
RDS
및 EC2
(프리티어 한도 초과 시)CloudWatch
를 통해 리소스 상태와 로그(CloudWatch Logs
)를 모니터링.