1. terraform.tfstate 파일
{
"version": 4,
"terraform_version": "1.8.5",
"serial": 5,
"lineage": "c13e6102-903a-b2f1-6481-1e6ce048ad39",
"outputs": {},
"resources": [],
"check_results": null
}
항목 | 설명 |
version | - 상태 파일(.tfstate) 형식의 버전 |
terraform_version | - terraform의 버전 |
serial | - 상태 파일(.tfstate)이 업데이트된 횟수 |
lineage | - 동일한 설정에서 생성된 상태 파일을 식별하는 고유 ID -> ???? |
outputs | - terraform 실행 후 출력된 값(output) |
resources | - terraform이 관리하는 인프라 리소스 목록 |
check_results |
2. version vs serial
2-1. version
- 상태파일( .tfstate )의 형식의 버전
- 변경시점 : terraform의 버전이 변경되어, ( .tfstate ) 파일의 형식이 변경될 때
2-2. serial
- 상태파일( .tfstate )가 수정된 횟수
- 변경시점 : 사용자가 인프라 변경을 적용(terrafor apply)할 때
3. tfstate 파일 - resources
"resources": [
{
"module": "module.vpc[\"client-webapp\"]",
"mode": "managed",
"type": "aws_vpc",
"name": "this",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": [
{
"index_key": 0,
"schema_version": 1,
"attributes": {
"arn": "arn:aws:ec2:us-east-2:560412178918:vpc/vpc-0b25065b799f65829",
"assign_generated_ipv6_cidr_block": false,
"cidr_block": "10.0.0.0/16",
"default_network_acl_id": "acl-0b60e518f5e8c01d8",
"default_route_table_id": "rtb-0e40af5b62e2c5b6e",
"default_security_group_id": "sg-00943d661ee7ff1f0",
"dhcp_options_id": "dopt-03218b7b822bc7ba2",
"enable_classiclink": false,
"enable_classiclink_dns_support": false,
"enable_dns_hostnames": false,
"enable_dns_support": true,
"id": "vpc-0b25065b799f65829",
"instance_tenancy": "default",
"ipv4_ipam_pool_id": null,
"ipv4_netmask_length": null,
"ipv6_association_id": "",
"ipv6_cidr_block": "",
"ipv6_cidr_block_network_border_group": "",
"ipv6_ipam_pool_id": "",
"ipv6_netmask_length": 0,
"main_route_table_id": "rtb-0e40af5b62e2c5b6e",
"owner_id": "560412178918",
"tags": {
"Name": ""
},
"tags_all": {
"Name": ""
}
},
"sensitive_attributes": [],
"private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==",
"create_before_destroy": true
}
]
}
]
항목 | 설명 |
module | - Terraform 모듈의 이름 |
mode | - 리소스의 모드 - data : 기존 인프라 정보 조회에 사용 - managed : 인프라를 배포하고 관리할 때 사용 |
type | - 리소스의 유형 - aws_instance - aws_vpc - aws_s3_bucket 등.. |
name | - 리소스의 이름 |
provider | - 리소스를 생성하는 데 사용된 프로바이더 - provider["registry.terraform.io/hashicorp/aws"]) : AWS 프로바이더 |
instances | - 리소스의 인스턴스 정보 - 각 인스턴스의 스키마 버전, 속성, 민감한 속성 등 |