리소스 일괄 가져오기

리소스 일괄 가져오기 (Import resources in bulk)

Terraform으로 한 번에 많은 인프라 리소스를 발견하고 워크스페이스로 가져오는 방법을 설명해 드릴게요. 쿼리 파일을 사용해 대규모 리소스 집합을 관리할 수 있어요.

출처: 문서

본문

워크스페이스에 관리되지 않는 리소스가 많은 경우, Terraform 쿼리 파일로 리소스를 발견한 뒤 terraform apply로 일괄 가져올 수 있어요.

쿼리 파일 작성 (Write a query file)

:number는 인프라의 리소스를 검색하는 파라미터를 담은 .tfquery.hcl 확장자의 파일이에요. 쿼리 파일은 다음 블록을 포함할 수 있어요:

  • list 블록: 인프라에서 리소스 목록을 검색해요.
  • provider 블록: 리소스를 발견하는 데 사용할 프로바이더를 구성해요.
  • variable 블록: 쿼리에서 사용할 변수를 정의해요.
  • locals 블록: 쿼리 안에서 참조할 로컬 값을 정의해요.

예를 들어 태그 environment = "production"이 있는 모든 aws_instance 리소스를 찾으려면 다음 쿼리 파일을 만들어요:

# query.tfquery.hcl
list "aws_instance" "instances" {
  tag_filter = {
    environment = "production"
  }
}

발견된 리소스 확인 (Review found resources)

terraform plan 명령을 실행해 쿼리가 발견한 리소스를 확인할 수 있어요. Terraform은 발견된 리소스를 plan 출력에 표시해요.

가져오기 적용 (Apply the import)

terraform apply 명령을 실행하면 Terraform이 쿼리로 발견한 리소스를 state로 가져와요. 가져온 리소스는 구성의 주소에 따라 관리할 수 있어요.

참고: 일괄 가져오기에서 Terraform은 리소스를 발견하면 쿼리 결과에 기반해 리소스 블록을 구성에 추가하고, apply 시 그 리소스들을 state로 가져와요. 자세한 구성은 list 블록 레퍼런스와 프로바이더 문서를 참고해요.

HCP Terraform에서 사용 (Use with HCP Terraform)

조직이 HCP Terraform을 사용한다면 UI에서 쿼리 결과를 보고 가져오기 구성을 적용할 수 있어요. 자세한 내용은 기존 리소스를 state로 가져오기를 참고해요.

더 알아보기 (Learn more)