작업 디렉토리 초기화

작업 디렉토리 초기화 (Initialize the Working Directory)

Terraform은 구성 파일이 포함된 작업 디렉토리에서 호출되길 기대해요. 작업 디렉토리는 초기화를 거쳐야 terraform plan이나 terraform apply 같은 작업을 수행할 수 있어요. 이 문서는 초기화가 무엇을 하는지와 재초기화가 필요한 경우를 설명해요.

출처: 문서

본문

Terraform은 Terraform 언어로 작성된 구성 파일이 포함된 작업 디렉토리에서 호출되길 기대해요. Terraform은 이 디렉토리의 구성 내용을 사용하며, 설정, 캐시된 플러그인과 모듈, 그리고 때로는 상태 데이터를 저장하는 데에도 이 디렉토리를 사용해요.

작업 디렉토리는 Terraform이 그 안에서 어떤 작업(인프라스트럭처 프로비저닝 또는 상태 수정 등)을 수행하기 전에 초기화되어야 해요.

작업 디렉토리 내용

Terraform 작업 디렉토리에는 일반적으로 다음이 포함돼요:

  • Terraform이 관리해야 하는 리소스를 설명하는 Terraform 구성. 이 구성은 시간이 지나면서 변경될 것으로 예상돼요.
  • 숨겨진 .terraform 디렉토리. Terraform이 캐시된 프로바이더 플러그인과 모듈을 관리하고, 현재 활성화된 워크스페이스를 기록하고, 다음 실행 시 상태를 마이그레이션해야 할 경우를 대비해 마지막으로 알려진 백엔드 구성을 기록하는 데 사용해요. 이 디렉토리는 Terraform이 자동으로 관리하며 초기화 중에 생성돼요.
  • 구성이 기본 local 백엔드를 사용할 때의 상태 데이터. 디렉토리가 기본 워크스페이스만 사용하면 Terraform은 terraform.tfstate 파일에서 상태를 관리하고, 여러 워크스페이스를 사용하면 terraform.tfstate.d 디렉토리에서 상태를 관리해요.

초기화

Terraform 구성이 포함된 작업 디렉토리를 초기화하려면 terraform init 명령을 실행하세요. 초기화 이후에는 terraform planterraform apply 같은 다른 명령을 수행할 수 있어요.

초기화에 의존하는 명령을 먼저 초기화하지 않고 실행하려고 하면 해당 명령이 오류와 함께 실패하고 init을 실행해야 한다고 알려줘요.

초기화는 디렉토리를 준비하기 위해 여러 작업을 수행해요. 구성된 백엔드의 상태에 접근하고, 프로바이더 플러그인을 다운로드해 설치하고, 모듈을 다운로드하는 작업이 포함돼요. 어떤 조건에서는(보통 한 백엔드에서 다른 백엔드로 변경할 때) 사용자에게 안내나 확인을 요청할 수 있어요.

자세한 내용은 terraform init 명령을 참조하세요.

재초기화

Terraform 구성에 대한 특정 유형의 변경은 정상적인 작업을 계속하기 전에 재초기화가 필요할 수 있어요. 여기에는 프로바이더 요구 사항, 모듈 소스 또는 버전 제약, 백엔드 구성의 변경이 포함돼요.

terraform init을 다시 실행해 디렉토리를 재초기화할 수 있어요. 사실 언제든지 재초기화할 수 있어요. init 명령은 멱등적이며, 필요한 변경이 없으면 아무 효과가 없어요.

재초기화가 필요한 경우, 초기화에 의존하는 명령은 오류와 함께 실패하고 그 사실을 알려줘요.

모듈만 재초기화하기

terraform get 명령은 구성에서 참조하는 모듈을 다운로드하지만, 다른 필수 초기화 작업은 수행하지 않아요. 이 명령은 틈새 워크플로우에만 유용하며, 대부분의 Terraform 사용자는 terraform init을 대신 사용해도 무방해요.

더 알아보기 (Learn more)