Terraform Provider
Terraform Resource
Terraform State
Terraform Backend
Terraform Variable
Terraform Output
Terraform이 어떤 클라우드 플랫폼을 사용할 것인지 정의하는 구성 요소이다.
프로젝트에서는 AWS Provider를 사용하여 Terraform이 AWS API를 통해 인프라를 생성할 수 있도록 한다.
Terraform에서 실제로 생성되는 인프라 자원을 의미한다.
예를 들어 VPC, Subnet, EKS, RDS 같은 AWS 리소스들이 resource 블록으로 정의된다.
Terraform이 생성한 인프라의 현재 상태를 기록하는 파일이다.
Terraform은 이 state 파일을 기반으로 어떤 리소스가 이미 존재하는지 확인하고 변경 사항을 계산한다.
Terraform State 파일을 저장하는 위치를 정의한다.
이 프로젝트에서는 S3에 state를 저장하고 DynamoDB를 이용해 state lock을 관리하여 협업 시 충돌을 방지한다.
인프라 설정을 유연하게 변경하기 위해 사용하는 입력 변수이다.
예를 들어 VPC CIDR, Subnet CIDR, 프로젝트 이름 등을 변수로 관리할 수 있다.
Terraform이 생성한 리소스의 중요한 정보를 출력하는 기능이다.
예를 들어 EKS Endpoint, ALB DNS, RDS Endpoint 등을 출력하여 다른 시스템에서 사용할 수 있다