Udemy 강의를 수강하며 습득한 내용을 기록함.
테라폼 설정 파일
1. main.tf
- Terraform 설정의 메인 파일로, 프로젝트의 주요 설정과 구성을 포함하는 파일
- 일반적으로 인프라를 정의하는 주요 리소스, 프로바이더 설정, 모듈 호출 등이 이 파일에 포함됨. 모든 설정을 한 곳에 집중시켜 놓는 역할을 함
provider "aws" {
region = "ap-northeast-2"
}
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}
2. resource.tf
- 특정 리소스(Resource)를 정의하는 파일로, 이름에서 알 수 있듯이 리소스 관련 설정을 따로 분리해서 관리할 때 사용됨
- 리소스 정의를 더 체계적으로 관리하기 위해 특정 리소스들만 이 파일에 포함시킬 수 있음. 가령, EC2 인스턴스나 S3 버킷 같은 개별 리소스를 정의하는 데 사용될 수 있음.
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}
3. variables.tf
- 변수를 정의하여 terraform 코드에서 재사용할 수 있게 함. 이 파일에서 프로젝트 내에서 사용할 변수를 선언하고, 각 변수의 기본값, 타입, 설명 등을 설정할 수 있음.
variable "instance_type" {
description = "The type of instance to use"
type = string
default = "t2.micro"
}
variable "instance_count" {
description = "Number of instances to create"
type = number
}
- 정의된 변수에 값을 할당하는 파일. 이 파일을 사용하여 variables.tf에서 정의한 변수에 실제 값을 제공함.
- 가령, 프로덕션 환경과 개발 환경에서 서로 다른 값을 사용해야 할 때 유용함. 변수 값을 여기서 설정하면, Terraform은 이를 사용하여 인프라를 프로비저닝함.
instance_type = "m5.large"
instance_count = 3
- terraform은 입력 변수 외에 출력 변수도 설정하여 원하는 값을 출력 가능
- variable로 입력 변수 컨트롤 / output으로 출력 변수 컨트롤
- EC2, ALB와 같은 리소스를 테라폼으로 생성 후, IP나 endpoint를 확인하기 위해 사용함
