Terraform 시작 순서 가이드
- 디렉터리 생성 및 이동 : Terraform 코드(.tf 파일)를 생성할 디렉터리 생성 및 이동
mkdir terraform-sample
cd terraform-sample
Terraform에서 사용하는 .tf 파일
- Main.tf(리소스 정의)는 단순 테스트를 하는데 필수이며, 실제 프로젝트 관리시에는 아래 파일들이 모두 필요.
파일명 | 용도 | 코드예제 |
providers.tf | 사용할 Provider 정의 예: azurerm, google, aws 등 |
terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } } } provider "azurerm" { features {} } |
variables.tf | 입력 변수 선언 사용자 정의 값이나 기본값 설정 |
variable "location" { description = "Azure 리소스를 배포할 지역" type = string default = "eastus" } |
main.tf | 핵심 리소스 정의 VM, Subnet, NSG 등 실제 인프라 (vm.tf, subnet.tf 등) |
resource "azurerm_virtual_network" "vnet" { name = "my-vnet" address_space = ["10.0.0.0/16"] location = var.location resource_group_name = azurerm_resource_group.rg.name } |
outputs.tf | 출력값 정의 예: 리소스 ID, public IP 주소 등 |
output "vnet_name" { value = azurerm_virtual_network.vnet.name } |
terraform.tfvars | 변수 값 설정 파일 variables.tf에 선언된 변수에 값을 지정할 때 사용 |
location = "koreacentral" |
프로젝트 파일 구조 예시
terraform-azure/
├── providers.tf # azurerm provider 정의
├── variables.tf # 변수 선언
├── main.tf # 기본 리소스 정의
├── vm.tf # VM 관련 리소스 정의
├── network.tf # VNet, Subnet 등 네트워크 정의
├── outputs.tf # 결과 출력 정의
├── terraform.tfvars # 변수 값 지정 파일 (선택)
- Terraform은 .tf 파일을 한 디렉터리 내에서 전부 읽음
Terraform 실행 순서
terraform init
# provider 다운로드, 백엔드 초기화, 프로바이더 설치 등
terraform plan
# 어떤 리소스가 만들어질지 확인 (시뮬레이션)
terraform apply
# "yes" 입력하면 Azure에 리소스 그룹이 생성됨
terraform apply --auto-approve
# --auto-approve : 중간에 yes 타이핑 스킵
terraform destroy
# 만든 리소스 삭제
terraform state list
# terraform 상태 파일에 남아 있는 리소스 목록을 출력
# 아무것도 출력되지 않으면 terraform 입장에서 추적 중인 리소스가 없는 상태
'Cloud > AZURE' 카테고리의 다른 글
Terraform on Azure 정리 (5) - Azure 배포 테스트 : VM (0) | 2025.05.08 |
---|---|
Terraform on Azure 정리 (4) - Azure 배포 테스트 : Network (0) | 2025.05.07 |
Terraform on Azure 정리 (2) - MS 계정으로 Azure에 Terraform 인증 (0) | 2025.04.23 |
Terraform on Azure 정리 (1) - Cloud Shell에서 Terraform 구성 (0) | 2025.04.22 |
Azure Firewall을 위한 라우팅 정리 (0) | 2025.04.16 |