인프라스트럭처 프로비저닝을 위한 Terraform 워크플로우

인프라스트럭처 프로비저닝을 위한 Terraform 워크플로우 (Terraform Workflow for Provisioning Infrastructure)

Terraform CLI를 사용해 인프라스트럭처를 프로비저닝하는 워크플로우를 소개해요. terraform plan, terraform apply, terraform destroy 세 가지 기본 명령의 동작 방식을 설명해요.

출처: 문서

본문

이 주제는 Terraform CLI를 사용해 인프라스트럭처를 프로비저닝하는 Terraform 워크플로우에 대한 개요 정보를 제공해요.

워크플로우

Terraform을 사용해 Terraform 구성에 설명된 원하는 상태와 일치하도록 인프라스트럭처 리소스를 생성, 수정, 파괴할 수 있어요. Terraform 바이너리에는 다양한 인프라스트럭처 수명주기 관리 작업을 위한 명령과 하위 명령이 포함되어 있지만, 다음 명령이 기본적인 프로비저닝 작업을 제공해요:

이 모든 명령은 초기화된 작업 디렉토리가 필요하며, 모두 현재 선택된 워크스페이스에 대해서만 동작해요.

Plan

terraform plan 명령은 Terraform 구성을 평가해 선언된 모든 리소스의 원하는 상태를 결정한 다음, 그 원하는 상태를 현재 작업 디렉토리와 워크스페이스로 관리되는 실제 인프라스트럭처 객체와 비교해요. 상태 데이터를 사용해 어떤 실제 객체가 어떤 선언된 리소스에 해당하는지 판단하고, 관련 인프라스트럭처 프로바이더의 API를 사용해 각 리소스의 현재 상태를 확인해요.

현재 상태와 원하는 상태의 차이를 결정하면 terraform plan은 원하는 상태를 달성하는 데 필요한 변경 사항에 대한 설명을 제시해요. 실제 인프라스트럭처 객체에는 어떤 실제 변경도 수행하지 않고, 변경을 위한 계획만 제시해요.

계획은 보통 구성 변경을 검증하고 결과 작업이 예상대로인지 확인하기 위해 실행돼요. 그러나 terraform plan은 계획을 실행 가능한 아티팩트로 저장할 수도 있으며, terraform apply가 그 계획을 사용해 정확히 그 변경을 수행할 수 있어요.

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

Apply

terraform apply 명령은 terraform plan처럼 계획을 수행하지만, 그런 다음 관련 인프라스트럭처 프로바이더의 API를 사용해 각 리소스에 계획된 변경을 실제로 수행해요. 명시적으로 승인을 건너뛰라고 하지 않는 한 변경하기 전에 사용자에게 확인을 요청해요.

기본적으로 terraform apply는 변경을 적용하기 직전에 새 계획을 수행하고, 확인을 요청할 때 사용자에게 계획을 표시해요. 그러나 새 계획을 실행하는 대신 terraform plan이 생성한 계획 파일을 받을 수도 있어요. 이를 사용하면 원래 계획이 생성된 후 몇 분 동안 구성이나 실제 인프라스트럭처의 상태가 변경되었더라도 사전 승인된 정확한 변경 집합을 안정적으로 수행할 수 있어요.

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

Destroy

terraform destroy 명령은 상태 데이터를 사용해 관리되는 리소스에 해당하는 실제 객체를 파악한 다음, 현재 작업 디렉토리와 워크스페이스가 관리하는 모든 리소스를 파괴해요. terraform apply처럼 진행 전에 확인을 요청해요.

destroy는 구성에서 모든 리소스를 삭제한 뒤 apply를 실행하는 것과 정확히 동일하게 동작하지만, 구성을 편집할 필요가 없어요. 나중에 유사한 리소스를 프로비저닝할 계획이라면 이 방식이 더 편리해요.

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

더 알아보기 (Learn more)