**provider가 지정
**돼 어떤 인프라를 관리할지 정해진 곳에서 terraform init 명령어 입력
provider, module, state 설정을 진행하며 테라폼을 시작 위한 준비 진행
.terraform 디렉토리 생성
, 테라폼 관련 라이브러리 모듈 등을 가져옴(.tfstate 파일 내용 포함)
인프라 관련 동시성 처리를 안전하게 해줄 .terraform.lock.hcl
생성
테라폼 **코드로 변경될 인프라 내역
**을 보여준다.
테라폼으로 적용한 **인프라 상태를 담고있는 terraform.tfstate 파일이 생성
**된다.
backend는 저장 공간을 지정할 때 사용되며 따로 **설정하지 않으면 로컬에 state파일이 생성
**된다.
여러 사람과 협업하려면 state 파일을 로컬에서 관리하면 안 된다.
// providers.tf
terraform {
required_version = ">= 1.0"
backend "s3" {
bucket = "jeongho-s3-tf-state"
key = "terraform.tfstate"
region = "ap-northeast-2"
dynamodb_table = "test-ddb-tf-lock"
encrypt = "true"
}
}
위 같은 코드로 backend를 지정하면 s3에 .tfstate 파일이 저장되어 여러 사람과 협업 가능
생성 인프라 정보가 tfstate에 저장되게 되고 다음에 또 생성할 때 이 state를 참고해 생성, 삭제 판단
테라폼 코드로 구성한 모든 자원들을 삭제
-> tfstate 파일도 비워지게 된다.