본문 바로가기
INFRA/Operation

terraform data 구문

by BTC_김쿼카 2022. 11. 9.

ABTCEFG♪  안녕하세요, 여러분!

BTC_김쿼카입니다.

 

이번 시간에는 terraform의 data 사용법에 대해 알아보도록 할게요!

1. Data

리소스 정보를 가져오는 것
Data source, 정보를 가져오는 곳을 정의하여 remote state, provider 등 다양한 정보를 data로 끌어올 수 있음

data <type> <name> <attribute> 의 형태로 사용할 수 있음

 


 

이해를 돕기 위해 간단한 실습을 진행해볼 텐데요.

먼저 현재 사용하고 있는 테라폼 버전은 가장 최신 버전인 v1.3.4 입니다. 버전을 다 확인하셨다면 아래의 코드처럼 provider 구문을 작성하고 terraform init 을 진행해줄게요.

aws.tf

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0"
    }
  }
}

provider "aws" {
  region = "ap-northeast-2"
  profile = "kej-test"
}

 

성공적으로 init이 된 걸 확인하셨다면 다음은 간단하게 data 구문 작성 전과 후를 비교해봐야겠죠? 이해를 돕기 위해 간단하게 vpc를 불러와보도록 할게요.

 

 

현재 제 vpc는 총 5개, 그 중 service = pre 라는 태그를 가진 vpc는 test-vpc 하나입니다. 예제는 service = pre 라는 aws vpc의 id를 가져오는 구문입니다.

data.tf

data "aws_vpcs" "all" {
    tags = {
      "service" = "pre"
    }
}

 

작성 전에는 init만 한 상태기 때문에 tf 파일이 없습니다. plan으로 위 코드에 오류가 있는지 확인해본 뒤 terraform apply를 진행해본다면 어떻게 바뀔까요?

 

 

단순히 가져오기만 하는 구문이기 때문에 제 인프라에는 변경사항이 없겠죠? 하지만 tfstate 파일을 확인하면 vpc id가 저장되어있는 것을 확인할 수 있습니다.

 

 

이런 식으로 기존에 만들어진 리소스들을 가져올 수 있다는 점 참고해주시고 다음 시간에 더 유익한 포스팅으로 찾아오겠습니다~!

 

 

 

댓글