테라폼의 다른 명령어들을 위한 설정을 진행합니다. 내부적으로는 provider와 state, module 설정 등이 있습니다.
>> terraform init
실제로 작성한 테라폼 코드가 어떻게 만들어질지에 대한 예측 결과를 보여주는 명령어입니다.
❗ 항상 plan 명령어를 습관화 하자 ❗
>> terraform plan
실제로 작성한 코드로 자원을 생성하는 명령어입니다.
>> terraform apply
참조 블로그 : https://kim-dragon.tistory.com/49
테라폼은 코드를 작성하기 전에 테라폼 프로젝트의 파일 구조를 잘 설계해야 합니다.
IaC를 한다는 것은 결국 코드 파일을 하나하나 관리하는 것이기 때문에 파일을 구조적으로 어떻게 잡아야 하는가를 결정한는 것이 중요한 포인트 입니다.
- main.tf : 테라폼 CLI를 사용하여 apply 명령어를 사용하면 가장 먼저 main 소스코드를 동작시킵니다.
- modules : main에서 input값을 정하고 해당 모듈을 사용할 수 있습니다.
- backend.tf : 테라폼은 형상관리를 위해 .tfstate 파일을 생성합니다. 이 파일을 backup하고, 형상관리하기 위한 설정을 정의합니다.
- provider.tf : 리소스를 어디서 제공하는지, 버전은 어떤 것이 있는지 등을 설정합니다.
- outputs.tf : 해당 파일에 설정을 통해서 소스코드에 대한 실행 결과를 출력할 수 있습니다.
- variables.tf : 소스코드에 사용할 변수들을 정의합니다.
minimal 예제
├── README.md
├── main.tf
├── variables.tf
├── outputs.tf
complete 예제
├── README.md
├── main.tf
├── variables.tf
├── outputs.tf
├── ...
├── modules/
│ ├── nestedA/
│ │ ├── README.md
│ │ ├── variables.tf
│ │ ├── main.tf
│ │ ├── outputs.tf
│ ├── nestedB/
│ ├── .../
├── examples/
│ ├── exampleA/
│ │ ├── main.tf
│ ├── exampleB/
│ ├── .../
여기에 추가로 커스텀하게 아래의 파일들을 붙히기도 합니다.
├── provider.tf
├── backend.tf