기간: 2024.04.06~2024.04.20
Terraform 기반 AWS 클라우드 마이그레이션 프로젝트
프로젝트 개요
기존 온프레미스 환경에서 동작하던 간단한 웹 블로그 시스템을 AWS 클라우드로 성공적으로 이전(Migration)하고, Terraform과 같은 IaC(Infrastructure as Code) 도구를 활용하여 자동화된 인프라 구축을 구현한 프로젝트입니다.
주요 목표 및 특징
- 기능성:
- 웹 블로그의 CRUD(Create, Read, Update, Delete) 기능 제공
- 사용자 로그인, 회원가입 기능 구현
- 아키텍처 구현:
- AWS 환경에서 3-Tier 아키텍처(Web, WAS, DB)로 구성
- Apache(웹), Tomcat(WAS), MySQL(DB)로 역할 분리
- 고려사항:
- 보안성 강화: VPC, 서브넷 분리, 보안 그룹(Security Group) 설정 등을 통한 내부 트래픽 보호
- 확장성 확보: Auto Scaling 그룹 및 Load Balancer 활용으로 유연한 확장성 제공
- IaC 활용:
- Terraform을 이용해 인프라 리소스(EC2, VPC, Subnet, Load Balancer, RDS 등)를 코드로 관리
- GitHub 연동 및 CI/CD 적용 가능성 모색
구현 내용
- 인프라 환경: AWS EC2, RDS(MySQL), ALB(Application Load Balancer), NLB(Network Load Balancer), Route 53, IAM 등 핵심 서비스 활용
- 자동화 프로세스: Terraform manifest를 기반으로 명령 한 번으로 VPC, 서버 자원, 데이터베이스, 로드 밸런서 등이 자동 생성
- 보안성 강화: Private Subnet 내 데이터베이스 배치, 서버 간 통신은 Private IP 사용, 보안 그룹 설정으로 외부 접근 최소화
- 확장성 구현: Auto Scaling 그룹을 통해 웹/어플리케이션 서버 자원 탄력적 증감
만난 문제들:
의존성을 설정하지 않으면 자동 세팅이 제대로 이루어지지않아 의존성을 맞춰줬어야했음
(예시: app 서버 세팅시 RDS DNS 가 필요한데 RDS 세팅이 더 오래걸리기때문에 RDS 세팅이 끝나고 app 서버의 스크립트가 실행되게 했어야했음)
Worker의 이름이 길어서 httpd가 실행되지않았었음