Zoomoney 프로젝트를 Cloud 환경에서 한다면?
2025. 6. 11. 15:22

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