본문으로 건너뛰기
Advertisement

18.3 AWS EC2, S3, RDS를 활용한 클라우드 인프라

1. 핵심 AWS 서비스 역할 정의

서비스역할
EC2 (Elastic Compute Cloud)스프링 부트 애플리케이션 서버 가상 머신
RDS (Relational Database Service)관리형 MySQL/PostgreSQL 데이터베이스
ElastiCache for Redis관리형 Redis 캐시/세션 서버
S3 (Simple Storage Service)정적 파일, 이미지, 배포 JAR 파일 보관
ALB (Application Load Balancer)트래픽 분산 및 SSL Termination
Route 53도메인 네임 서버 (DNS)
ACM (Certificate Manager)HTTPS 인증서 무료 발급/자동 갱신

2. 실무 추천 아키텍처

인터넷


Route 53 (DNS: myapp.com → ALB)


ALB (SSL Termination - HTTPS 443 → 내부는 HTTP 8080으로 포워드)
│ │
▼ ▼
EC2 인스턴스 EC2 인스턴스 ← 오토스케일링 그룹 (트래픽에 따라 자동 증설/축소)

├──► RDS MySQL (Private Subnet - 외부 접근 불가)
└──► ElastiCache Redis (Private Subnet)

3. EC2 초기 설정 스크립트

신규 EC2 인스턴스에 Docker를 설치하고 애플리케이션을 올리는 준비 스크립트입니다.

#!/bin/bash
# Ubuntu 22.04 기준 EC2 초기화 스크립트

# Docker 설치
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker ubuntu # ubuntu 사용자를 docker 그룹에 추가 (sudo 없이 docker 명령 실행)

# 환경 변수 파일 생성 (운영 설정 보관)
cat > /home/ubuntu/.env <<EOF
SPRING_DATASOURCE_URL=jdbc:mysql://rds-endpoint:3306/tododb
SPRING_DATASOURCE_USERNAME=admin
SPRING_DATASOURCE_PASSWORD=REPLACE_ME
SPRING_DATA_REDIS_HOST=elasticache-endpoint
EOF
Advertisement