테라폼은 내부적으로 AWS의 API들을 호출함
AWS 실제 인프라와 Backend에 저장된 상태가 100% 일치하도록 만드는것이 제일 중요함 !
실제 인프라와 백엔드에 저장된 상태가 일치하지 않는 경우
- 인프라를 콘솔에서 변경하는 경우
- 로컬에서 state 파일을 변경했는데 다른사람이랑 싱크가 안맞는 경우
Terraform 명령어
Terraform init
- 지정한 backend에 상태 저장을 위한 .tfstate 파일을 생성
가장 마지막에 적용한 테라폼 내역이 저장됨
init 작업을 완료하면 로컬에는 .tfstate에 정의된 내용을 담은 .terraform 파일이 생성됨
기존에 다른 개발자가 .tfstate에 인프라를 정의해놓은 것이 있따면, 다른 개발자는 init 작업을 통해서 로컬에 sync를 맞출 수 있음
- AWS API를 호출하기 위해 필요한 라이브러리들 다운
init 실습
provider.tf 생성
terraform init
terraform import
- 콘솔에서 무언가를 생성 했을 시 import 명령을 통해 불러올 수 있음
테라폼 코드 삭제 실습
1. rm -rf s3.tf
2. rm -rf terraform.tfstate
3. rm -rf .terraform
terraform init
terraform import aws_s3_bucket.test terraform101-eunyoung
코드가 없어서 생성되지 X
s3.tf 생성 후 import 시 성공
terraform plan은 이미 만들어져있는지 아닌지 상관 X
실제 인프라에 이미 있는건 apply 했을 때 또 생성 되지 않음
import 해주고 다시 plan해서 변경된 사항 있으면 다시 apply 해서 싱크 맞춰주기