Terraform Associate — Core Terraform Workflow 개념 정리
개념(한글) + 시험용 영어 표현 매칭 대응 objective: Objective 3 (Core Terraform Workflow)
3a. 워크플로우 설명 (Describe the Terraform workflow)
핵심 워크플로우
- Terraform의 기본 흐름은 Write → Plan → Apply
- Write: HCL로 인프라 구성 작성
- Plan: 적용 전 변경 사항 미리 확인
- Apply: 실제 인프라에 변경 반영
| 개념 | 영어 표현 |
|---|---|
| 구성 작성 | Write |
| 실행 계획 미리보기 | Plan |
| 변경 적용 | Apply |
| 핵심 워크플로우 | Write → Plan → Apply |
전체 명령 흐름 (자주 쓰는 순서)
terraform init→terraform plan→terraform apply→ (필요 시)terraform destroy- 스타일 정리는
terraform fmt, 문법 검증은terraform validate
3b. 작업 디렉토리 초기화 (terraform init)
terraform init
- 새 구성이나 클론한 구성을 처음 실행할 때 반드시 수행
- 필요한 provider 플러그인 다운로드·설치
- backend 초기화 (state 저장 위치 설정)
- module 다운로드
.terraform디렉토리와.terraform.lock.hcl생성
| 개념 | 영어 표현 |
|---|---|
| 작업 디렉토리 초기화 | initialize working directory |
| provider 설치 | install provider plugins |
| 백엔드 초기화 | initialize the backend |
| 모듈 다운로드 | download modules |
| provider 버전 업그레이드 | terraform init -upgrade |
3c. 구성 검증 (terraform validate)
terraform validate
- 구성 파일의 문법 및 내부 일관성이 올바른지 검사
- 실제 인프라나 원격 상태에 접근하지 않음 (오프라인 검증)
init이후에 실행 가능 (provider 정보 필요)
| 개념 | 영어 표현 |
|---|---|
| 구성 유효성 검증 | validate the configuration |
| 문법 검사 | check syntax / internal consistency |
| 인프라 접근 안 함 | does not access remote state or APIs |
3d. 실행 계획 생성·검토 (terraform plan)
terraform plan
- 현재 state와 원하는 구성을 비교해 어떤 변경이 일어날지 미리 보여줌
- 실제 인프라는 변경하지 않음 (dry run 성격)
- 생성(+), 변경(~), 삭제(-)될 리소스를 표시
-out옵션으로 계획을 파일로 저장해 apply에 그대로 사용 가능
| 개념 | 영어 표현 |
|---|---|
| 실행 계획 생성 | generate an execution plan |
| 변경 미리보기 | preview changes |
| 생성/변경/삭제 표시 | add (+) / change (~) / destroy (-) |
| 계획 저장 | terraform plan -out= |
3e. 변경 적용 (terraform apply)
terraform apply
- plan을 실행해 실제 인프라에 변경을 반영
- 기본적으로 적용 전 승인(yes) 요구
- 저장된 plan 파일을 넘기면 승인 없이 그대로 적용
- 자동 승인은
-auto-approve
| 개념 | 영어 표현 |
|---|---|
| 변경 적용 | apply changes to infrastructure |
| 승인 요구 | prompts for approval (yes) |
| 자동 승인 | terraform apply -auto-approve |
| 저장된 계획 적용 | terraform apply <PLAN_FILE> |
3f. 인프라 파기 (terraform destroy)
terraform destroy
- Terraform이 관리하는 모든 리소스를 삭제
- 삭제 전 승인 요구, 자동 승인은
-auto-approve - 특정 리소스만 지우려면
-target사용 가능
| 개념 | 영어 표현 |
|---|---|
| 인프라 파기 | destroy managed infrastructure |
| 승인 요구 | prompts for approval |
| 특정 리소스 지정 | terraform destroy -target= |
3g. 포맷·스타일 정리 (terraform fmt)
terraform fmt
- 구성 파일을 **표준 스타일(들여쓰기, 정렬)**에 맞게 자동 정리
- 가독성·일관성 향상, 팀 협업 시 코드 스타일 통일
- 변경 없이 확인만:
-check, 하위 디렉토리까지:-recursive
| 개념 | 영어 표현 |
|---|---|
| 코드 포맷 정리 | format configuration files |
| 표준 스타일 적용 | apply canonical formatting / style |
| 검사만 수행 | terraform fmt -check |
| 하위 디렉토리 포함 | terraform fmt -recursive |
요약
| 명령 | 역할 |
|---|---|
| terraform init | 작업 디렉토리 초기화 (provider·backend·module) |
| terraform validate | 문법·일관성 검증 (인프라 접근 X) |
| terraform plan | 변경 사항 미리보기 (dry run) |
| terraform apply | 실제 인프라에 변경 적용 (승인 필요) |
| terraform destroy | 관리 리소스 전체 삭제 |
| terraform fmt | 코드 스타일·포맷 정리 |
| 핵심 흐름 | Write → Plan → Apply |