테라폼에는 3가지 형상이 존재합니다.
- Local 코드 : 현재 개발자가 작성/수정하고 있는 코드
- AWS 실제 인프라 : 실제로 AWS에 배포되어 있는 인프라
- Backend에 저장된 상태: 가장 최근에 배포한 테라폼 코드 형상
AWS 실제 인프라 와 Backend에 저장된 상태가 100% 일치하도록 만드는 것
Terraform init
- 지정한 Backend에 상태 저장을 위한 .tfstate파일을 생성합니다. 여기에는 가장 마지막에 적용한 테라폼 내역이 저장됩니다.
- init 작업을 완료하면, local에는 .tfstate에 정의된 내용을 담은 .terraform 파일이 생성됩니다.
- 기존에 다른 개발자가 이미 .tfstate에 인프라를 정의해 놓은 것이 있다면, 다른 개발자는 init 작업을 통해서 local에 sync를 맞출수 있습니다.
Terraform plan
- 정의한 코드가 어떤 인프라를 만들게 될지 미리예측 결과를 보여줍니다.
- plan 은 말 그대로 예측 결과를 보여주기 때문에 실제로 적용시에는 Error가 발생가능합니다.
- Plan 명령어는 실제 인프라에 변화를 주지는 않습니다.
Terraform apply
- 실제로 인프라를 배포하기 위한 명령어 입니다. apply를 완료하면, AWS 상에서 실제로 해당 인프라가 생성되고 작업 결과가 backend의 .tfstate 파일에 저장됩니다. (해당 결과는 로컬에도 저장됩니다.)
Terraform import