1. Terraform 기본 명령어
1) terraform init
- Terraform 구성 파일이 포함된 작업 디렉터리를 초기화하는 데 사용된다.
- 새 Terraform 구성을 작성하거나 버전 제어에서 기존 구성을 복제한 후 실행해야 하는 첫 번째 명령이다.
- provider.tf 파일에서 required_providers에 프로바이더를 지정하지 않아도 테라폼이 코드에서 추론해 최신 버전의 프로바이더를 다운로드 받는다.
- terraform init 명령어 실행 시 생성되는 파일
- .terraform 디렉터리 생성
- .terraform.lock.hcl 파일 생성
2) terraform plan
- Terraform이 인프라에 적용하려는 변경 사항을 미리 볼 수 있는 실행 계획을 생성한다.
- 이전 state와 비교하여 변경될 내역을 보여준다.
3) terraform apply
- Terraform 구성 파일을 기반으로 인프라를 생성 또는 변경하는 데 사용한다.
- 사용자가 정의한 인프라 상태를 프로바이더(AWS, Azure, 등)를 통해 실제 인프라로 반영한다.
- terraform apply 명령어 실행 시 생성되는 파일
- terraform.tfstate 파일 생성/업데이트
- .terraform 디렉터리 업데이트
- .terraform.lock.hcl 파일 업데이트
2. Terraform 파일/디렉터리
1) .terraform 디렉터리
- 캐시된 프로바이더 플러그인과 모듈을 관리하고 현재 Active 상태인 워크스페이스를 기록한다.
- Terraform에 의해 자동으로 관리되며 초기화 과정 중에 생성된다.
2) .terraform.lock.hcl
- Terraform 모듈의 종속성 버전을 관리하는 데 사용되는 파일이다.
- 모듈에 대한 버전 및 종속성을 명시적으로 기록한다.
- 모듈이 항상 동일한 버전 및 종속성을 사용하도록 보장하며, 프로젝트가 여러 환경에서 일관된 상태로 유지되도록 도와준다.
3) terraform.tfstate
- Terrform의 상태파일로 apply를 통해 실제 인프라에 적용한 결과를 기억하는 파일이다.
- 실제 인프라와 .tfstate 파일을 일치시키는 것이 중요하다.
- Terraform은 상태 파일을 관리하고 보호하기 위해 백엔드(remote backends)를 설정할 수 있다. 주로 AWS S3, Azure Blob Storage 등의 클라우드 스토리지를 사용하여 상태를 저장한다.
'IaC > Terraform' 카테고리의 다른 글
[Terraform] 다중 Provider 구성 (0) | 2023.12.29 |
---|---|
[Terraform] Azure에 Terraform을 인증하는 방법 (0) | 2023.12.28 |
[Terraform] Sensitive variable (0) | 2023.12.28 |