AWS 3-Tier 아키텍처 실습용 방명록 애플리케이션
사용자
↓
CloudFront (CDN)
↓ ↓
S3 (Frontend) ALB
↓
EC2 × 2 (Backend, pub-svc)
↓
RDS MySQL (pri-db)
- 순수 HTML + CSS + JavaScript (빌드 없음)
- S3 정적 웹 호스팅
- Node.js 20 + Express
- MySQL2 (DB 드라이버)
- PM2 (프로세스 매니저)
- AWS RDS MySQL 8.0
devops-3-tier-practice/
├── README.md
├── frontend/
│ ├── index.html
│ ├── app.js
│ └── style.css
├── backend/
│ ├── server.js
│ ├── package.json
│ ├── init.sql
│ ├── start.sh
│ └── .env
└── docs/
├── 01-vpc-subnet-setup.md
├── 02-backend-ec2-setup.md
├── 03-rds-setup.md
├── 04-alb-setup.md
├── 05-frontend-s3-setup.md
├── 06-cloudfront-setup.md
└── cheat-vpc-cloudformation.yaml
본 Repo의 docs 참고
- VPC 구축 (CloudFormation)
- Backend EC2 2대 구축 (pub-svc)
- RDS MySQL 구축 (pri-db)
- ALB 구축 및 연결 (pub-elb)
- Frontend S3 배포
- CloudFront 연결 (s3, alb)
- 프론트엔드에서
응답한 서버: ip-xxx-xxx표시 - 새로고침 시 서버 ID 변경 확인 → ALB 동작 증명
- EC2 1대 중지 → ALB가 건강한 EC2로만 트래픽 전달
- 서비스 지속 확인
실습 끝나면 반드시 전체 리소스 삭제:
- CloudFront Distribution (Disable → Delete)
- S3 버킷 (비우고 삭제)
- ALB
- Target Group
- RDS (스냅샷 없이)
- EC2 인스턴스 (모두)
- Elastic IP (해제)
- CloudFormation Stack 삭제