1. 아키텍처 개요
AWS에서 보편적인 구조는 다음과 같습니다:
- React 프론트엔드: S3 + CloudFront (정적 웹사이트 호스팅 및 CDN)
- Spring Boot 백엔드: ECS(Fargate) 또는 EC2에 컨테이너/인스턴스로 배포
- 데이터베이스: Amazon RDS for MariaDB (관리형 DB)
- 네트워크: VPC, 서브넷, 보안그룹, 로드밸런서(ALB)
- IAM: 각 서비스의 최소 권한 접근 제어
2. 네트워크 구성 (VPC)
- VPC 생성: 프로젝트 전용 가상 네트워크
- 서브넷 분리:
- 퍼블릭 서브넷: ALB, NAT Gateway
- 프라이빗 서브넷: 백엔드 컨테이너(ECS/Fargate, EC2), RDS
- 인터넷 접근: 퍼블릭 서브넷에 NAT Gateway를 배치해 프라이빗 리소스가 외부로 나갈 수 있게 함.
- 보안그룹:
- ALB: 80/443 포트만 외부에서 허용
- 백엔드: ALB에서 오는 트래픽만 허용
- RDS: 백엔드 컨테이너에서 오는 3306 포트만 허용
3. 데이터베이스 (MariaDB)
- Amazon RDS 사용: 관리형 MariaDB 인스턴스 생성
- Multi-AZ 옵션: 가용성 확보
- 백업 및 스냅샷: 자동 백업 설정
- 보안: RDS는 프라이빗 서브넷에 배치하여 외부 접속 차단
4. 백엔드 배포 (Spring Boot)
- Docker로 컨테이너화 권장
- ECS(Fargate): 서버리스 컨테이너 실행 환경 → 관리 부담 최소화
- ALB를 통해 외부 요청 라우팅
- Auto Scaling 설정: 트래픽 증가에 따라 컨테이너 자동 확장
- Parameter Store 또는 Secrets Manager를 이용해 DB 비밀번호 등 환경 변수 관리
5. 프론트엔드 배포 (React)
- 빌드 후 정적 파일을 S3에 업로드
- CloudFront를 CDN으로 사용 → 전세계 빠른 배포와 HTTPS 지원
- Route 53으로 도메인 연결 (옵션)
6. CI/CD 파이프라인
- CodePipeline + CodeBuild 또는 GitHub Actions 이용
- 프론트엔드와 백엔드 모두 자동 빌드 & 배포 파이프라인 구축
7. 모니터링 & 로깅
- CloudWatch로 애플리케이션 로그, ECS 및 RDS 상태 모니터링
- X-Ray를 통해 요청 추적 (백엔드 병목 분석)
8. 비용 최적화
- 개발 환경: t3.small, t3.medium 같은 저비용 인스턴스 사용
- 프로덕션: Auto Scaling으로 필요할 때만 리소스 증가
- S3 + CloudFront 캐시 최적화

'Cloud' 카테고리의 다른 글
MSA란? (0) | 2025.05.22 |
---|---|
Zoomoney 프로젝트 Prometheus 와 Grafana 연동 (0) | 2025.04.23 |
Jenkins (0) | 2025.04.22 |
Docker 와 Podman 차이 (0) | 2025.03.23 |
Podman 으로 Zoomoney 프로젝트 배포하기 (0) | 2025.03.22 |