리소스 가져오기 개요

리소스 가져오기 개요 (Import resources overview)

기존 인프라 리소스를 Terraform 워크스페이스로 가져와 코드로 관리하는 방법을 설명해 드릴게요. 단일·소량·대량 가져오기의 워크플로를 이해할 수 있어요.

출처: 문서

본문

기존 인프라 리소스가 있다면, 이를 Terraform 워크스페이스로 가져와 리소스를 코드로 관리하기 시작할 수 있어요.

워크플로 (Workflows)

관리되지 않는 리소스를 워크스페이스로 가져오려면 가져올 고유한 인프라 리소스 ID를 지정하는 import 블록이 필요해요. 블록은 또한 state에서 가져온 리소스의 주소를 선언해요. 추가로, import 블록에 선언된 주소와 일치하는 대상 resource 블록을 만들어야 해요. resource 블록은 구성에서 리소스를 나타내요.

단일 리소스나 소량의 리소스를 가져오거나, 대규모의 관리되지 않는 리소스 집합을 발견하기 위해 쿼리를 만들어 일괄 가져올 수 있어요.

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

대규모 인프라 리소스 집합을 식별·가져와야 할 때 쿼리를 HCL로 정의하고 결과를 Terraform 구성에 추가한 다음, terraform apply 명령으로 발견된 리소스를 워크스페이스로 가져올 수 있어요. 자세한 내용은 리소스 일괄 가져오기 참고. 조직이 HCP Terraform을 사용한다면 UI에서 쿼리 결과를 보고 가져오기 구성을 적용할 수 있어요. 자세한 내용은 기존 리소스를 state로 가져오기 참고.

개별 리소스 가져오기 (Import individual resources)

단일 리소스나 소량의 리소스를 가져오는 워크플로는 클라우드 프로바이더에서 고유한 인프라 리소스 ID와 기타 속성에 쉽게 접근할 수 있을 때 가장 잘 작동해요. 이 워크플로에서는 importresource 블록을 수동으로 작성하고 terraform apply 명령을 실행해 리소스를 가져와요.

또는 import 블록만 작성하고 generate-config-out 플래그와 함께 terraform plan 명령을 실행해 resource 블록을 생성할 수도 있어요. 자세한 내용은 단일 리소스 가져오기 참고.

리소스 정체성 (Resource identity)

Terraform은 클라우드 프로바이더가 할당한 ID 또는 프로바이더가 정의한 특정 속성 모음에 따라 리소스를 고유하게 식별해요. Terraform 구성에서 리소스 정체성을 참조하려면 id 또는 identity 속성을 사용할 수 있어요.

예를 들어 AWS 프로바이더에서 사용 가능한 s3_bucket 리소스의 identity 속성은 다음 속성에 따라 버킷을 고유하게 식별해요:

aws_instance 리소스의 고유 정체성을 참조하려면 id 속성을 사용할 수 있어요. 리소스 정체성을 참조하는 방법은 프로바이더 문서를, Terraform 구성에서 리소스 정체성을 참조하는 방법은 import 블록 레퍼런스를 참고해요.

더 알아보기 (Learn more)