리소스 일괄 가져오기
리소스 일괄 가져오기 (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로 가져오기를 참고해요.