연재 시리즈

테라폼 시리즈 7편. 테라폼 상태파일(tfstate)

악분 2022. 10. 21. 20:34
반응형

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다.

 

 

1. 상태파일이란?

테라폼은 코드를 인프라로 반영하면, 반영 상태를 파일로 관리합니다. 파일 확장자는 tfstate입니다.

 

상태파일은 json파일입니다.

 

2. 상태파일 목록 확인

상태파일에 있는 내용이 매우 많으면 사람이 해석하기 매우 불편합니다. 다행히 테라폼은 상태목록과 내용을 확인하는 명령어를 제공합니다.

 

상태파일 목록은 terraform state list명령어로 확인할 수 있습니다. list로 보이는 목록은 tf파일의 BLOCK라벨입니다. 주의사항은 tf파일에 정의되어 있다고 state list에 보이는 것이 아니라, terraform apply명령어를 통해 코드가 인프라에 반영되어 있어야 합니다.

terraform state list

 

상태파일 자세히 보기

상태를 특정하여 보고 싶다면 terraform state show명령어로 확인할 수 있습니다. 상태파일은 코드가 인프라이 반영되고 proivder에 배포된 실제 값을 저장합니다. 예를 들어 EC2 Instance가 어디 availability zone에 대한 값이 상태파일에 있습니다.

terraform state show <상태이름>

 

상태파일과 실행영향 관계

상태파일은 terraform plan과 apply명령어 실행에 영향을 줍니다. 코드가 인프라에 반영할 작업과 state파일을 비교하여 작업을 계속 실행할지 넘어갈지 결정합니다.

 

[aws EC2 instace 생성 예제]에서 terraform apply를 한 후, 다시 terraform apply를 해보세요. 첫 번째 terraform apply를 한 직후 인프라에 반영한 상태가 상태파일로 저장됩니다. 그리고 곧바로 terraform apply를 하면 “No change”라는 메세지가 뜨면서 인프라 반영 작업이 중단됩니다.

반응형