테라폼은 상태관리를 어떻게 할까?
테라폼의 상태관리를 한 명이 아니라 여럿이서 하게 된다면 우리는 테라폼 코드를 VCS에서 관리하게 되고 terraform.tfstate
와 terraform.tfstate.backup
은 테라폼의 상태 파일로서 원격 스토리지에 저장하여 관리하게 됩니다.
왜 저 두 파일은 원격 스토리지에서 관리하고 .terraform.lock.hcl만 소스 코드에서 관리할까요?
terraform init 명령어를 실행할 경우 테라폼 구성파일과 프로바이더의 플러그인 정보를 갖고 있는 .terraform
과 .terraform.lock.hcl
이 생성됩니다. 이후 terraform apply를 실행하게 되면 terraform.tfstate
파일이 생성됩니다.
terraform.tfstate 파일은 테라폼의 현재 인프라 상태를 나타내며 이러한 상태를 다른 개발자나 팀원들과 공유하기 위해서 원격 스토리지에 저장하며 terraform.tfstate.backup
파일은 이전 버전의 terraform.tfstate
파일로 인프라 상태를 이전 상태로 복구하는 데 사용될 수 있으며 원격 스토리지에 저장하여 terraform.tfstate
파일의 유실과 같은 잠재적인 문제에 대비할 수 있습니다.
.terraform.lock.hcl 파일은 테라폼 버전이나 사용하는 프로바이더 모듈의 정확한 버전을 기록하는 파일로 형상 관리가 필요합니다. 따라서 소스 코드 저장소에 포함하여 모든 팀원들의 모듈 버전을 일치하도록 하여 호환성을 유지하도록 합니다.