-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Labels
Description
🛠️ Issue Description
AWS 인프라를 Terraform 코드로 관리할 수 있는 API 워크플로우를 구현했습니다. 사용자가 Terraform 코드를 작성하고, 검증하고, 실제 클라우드 환경에 배포하며, 필요시 인프라를 삭제할 수 있는 Infrastructure as Code 환경을 제공합니다.
💭 Functional role
- Terraform 코드 검증 (
/api/projects/{projectId}/terraform/validate): 문법 및 구성 오류 사전 검출 - Terraform Plan (
/api/projects/{projectId}/terraform/plan): 배포 전 변경사항 미리 확인 - Terraform Apply (
/api/projects/{projectId}/terraform/apply): 실제 AWS 환경에 인프라 배포 - Terraform Destroy (
/api/projects/{projectId}/terraform/destroy): 코드 기반 인프라 삭제 - 배포 ID 기반 Destroy (
/api/projects/{projectId}/terraform/deployments/{deploymentId}/destroy): 특정 배포의 인프라 삭제 - 배포 상태 조회 (
/api/projects/{projectId}/terraform/deployments/{deploymentId}): 실시간 배포 진행 상황 추적 - 배포 이력 조회 (
/api/projects/{projectId}/terraform/deployments): 프로젝트별 배포 기록 관리
📝 check-lists
- TerraformExecutor 서비스: 프로젝트별 상태 파일 기반 실행 엔진
- TerraformService: 비즈니스 로직 및 배포 상태 관리
- Deployment 엔티티: 배포 이력 및 상태 추적 (PENDING, RUNNING, SUCCESS, FAILED)
- DeploymentRepository: 프로젝트별 배포 이력 조회 (무한스크롤 지원)
- Docker 이미지: Terraform 1.7.0 설치 및 환경 구성
- 동기 처리: 배포/삭제 작업의 즉시 결과 반환
- 보안: JWT 인증, 프로젝트별 접근 제어
🔄 추후 개선 사항
- 상태 파일 관리: Terraform 상태 파일 백업 및 복구 기능
- 멀티 클라우드: AWS 외 GCP, Azure 지원
- 클라우드 자격 증명 관리: 클라우드 액세스 키 기반 인프라 배포 파이프라인 구성
- 코드 템플릿: 일반적인 인프라 패턴에 대한 템플릿 라이브러리
- 성능 최적화: Terraform 명령어 실행 속도 개선