본문 바로가기

♻ Terraform(테라폼)/Terraform Tip 👀

Terraform 변수 사용

반응형

#  Terraform 변수 사용에 대해서 알아본다.

- 변수의 기본 사용법은 아래와 같다.

- 기본적으로 아래의 코드에서 var로 선언된 부분은 해당 폴더안에 vars.tf 라는 파일이 존재해야 하고, 해당 파일안에 해당 변수를 나타내는 내용이 있어야 한다.

  # 기본 문법
  Name = "${var.변수명}"
  
  # 사용 예시
  tags = {
    Name = "${var.alltag}-rtb-public"
  }

- 기본적인 폴더 및 파일의 구조를 보면 아래와 같다.

예를들어 vpc라는 폴더안에 main.tf 파일과 vars.tf 파일이 존재한다고 가정하면, main.tf파일은 리소스 변수를 선언하고 실행한다. vars.tf는 해당 변수를 외부 모듈로 부터 받을수 있도록 선언되어 있다. 설명이 좀 부족한데 아래의 코드를 확인한다.

- main.tf 파일의 내용은 아래와 같다.

# 라우팅 테이블과 인터넷 게이트 웨이의 main.tf
resource "aws_route_table" "rtb" {
  vpc_id = var.vpc_id

  tags = {
    Name = "${var.alltag}-rtb-public"
  }
}

resource "aws_route" "rtb" {
  route_table_id         = aws_route_table.rtb.id
  destination_cidr_block = "0.0.0.0/0"
  gateway_id             = var.igw_id
}

resource "aws_route_table_association" "rtb" {
  subnet_id      = var.subnet_id
  route_table_id = aws_route_table.rtb.id
}

- vars.tf 파일은 아래와 같다.

# 라우팅 테이블과 인터넷 게이트 웨이의 변수 선언 vars.tf
variable "alltag" {}
variable "vpc_id" {}
variable "igw_id" {}
variable "subnet_id" {}

- 결국 해당 리소스는 재사용성을 위해 모듈로 구성되어 있으므로 모듈에서 선언된 리소스가 vpc 및 서브넷 그리고 igw 등으로 전달되어 실제 리소스를 생성한다고 볼 수 있다. 

- 그래서 실제 리소스는 외부에서 생성된 리소스 정보를 변수로 받을수 있도록 설정되어 있으면 된다.

반응형