안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다.
1. 상태파일이란?
테라폼은 코드를 인프라로 반영하면, 반영 상태를 파일로 관리합니다. 파일 확장자는 tfstate입니다.
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
상태파일은 json파일입니다.
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
2. 상태파일 목록 확인
상태파일에 있는 내용이 매우 많으면 사람이 해석하기 매우 불편합니다. 다행히 테라폼은 상태목록과 내용을 확인하는 명령어를 제공합니다.
상태파일 목록은 terraform state list명령어로 확인할 수 있습니다. list로 보이는 목록은 tf파일의 BLOCK라벨입니다. 주의사항은 tf파일에 정의되어 있다고 state list에 보이는 것이 아니라, terraform apply명령어를 통해 코드가 인프라에 반영되어 있어야 합니다.
terraform state list
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
상태파일 자세히 보기
상태를 특정하여 보고 싶다면 terraform state show명령어로 확인할 수 있습니다. 상태파일은 코드가 인프라이 반영되고 proivder에 배포된 실제 값을 저장합니다. 예를 들어 EC2 Instance가 어디 availability zone에 대한 값이 상태파일에 있습니다.
terraform state show <상태이름>
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
상태파일과 실행영향 관계
상태파일은 terraform plan과 apply명령어 실행에 영향을 줍니다. 코드가 인프라에 반영할 작업과 state파일을 비교하여 작업을 계속 실행할지 넘어갈지 결정합니다.
[aws EC2 instace 생성 예제]에서 terraform apply를 한 후, 다시 terraform apply를 해보세요. 첫 번째 terraform apply를 한 직후 인프라에 반영한 상태가 상태파일로 저장됩니다. 그리고 곧바로 terraform apply를 하면 “No change”라는 메세지가 뜨면서 인프라 반영 작업이 중단됩니다.
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
'연재 시리즈' 카테고리의 다른 글
테라폼 시리즈 9편. 리소스 참조 (0) | 2022.10.22 |
---|---|
테라폼 시리즈 8편. 변경/변경불가능 속성 (0) | 2022.10.21 |
테라폼 시리즈 6편. AWS EC2 Instance 생성 예제 (0) | 2022.10.19 |
테라폼 시리즈 5편. 테라폼 언어 구조 (0) | 2022.10.19 |
테라폼 시리즈 4편. 테라폼의 시작 Provider 설정 (0) | 2022.10.19 |