DevOps/Terraform

[Terraform] Terraform 상태 확인

TTOII 2022. 4. 21. 21:55
728x90

✔️ Terraform 상태 확인

terraform.tfstate : 현재 상태
terrafrom.tfstate.backup : 직전 상태

두 파일 모두 절대로 직접 수정해서는 안되며 절대 git에 공유해서는 안되는 파일이다.

[vagrant@controller 01]$ ls
main.tf  terraform.tfstate  terraform.tfstate.backup

 

✔️ 상태 확인 명령어

terraform show 

terraform state list 

terraform state show aws_instance.app_server 

 

✔️ 상태 재동기화

terraform refresh

terraform show 명령을 통해 현재 인스턴스에 붙은 EBS 볼륨의 크기가 8인것을 확인했다.

root_block_device {
        delete_on_termination = true
        device_name           = "/dev/xvda"
        encrypted             = false
        iops                  = 100
        tags                  = {}
        throughput            = 0
        volume_id             = "vol-0bd8b3bd4661215fc"
        volume_size           = 8
        volume_type           = "gp2"
    }

직접 aws 콘솔에 접속해 볼륨의 크기를 10으로 수정한다.

 

다시 terraform show를 해보면 여전히 8G로 나타나는 것을 확인할 수 있다.

이때 terraform refresh 명령을 실행하면 재동기화가 이뤄지고 확인하면 10G로 변경되었음을 알 수 있다.

[vagrant@controller 01]$ terraform refresh
aws_instance.app_server: Refreshing state... [id=i-0aeedfbc25eb856db]
[vagrant@controller 01]$ terraform show
# aws_instance.app_server:
resource "aws_instance" "app_server" {
    생 략

    root_block_device {
        delete_on_termination = true
        device_name           = "/dev/xvda"
        encrypted             = false
        iops                  = 100
        tags                  = {}
        throughput            = 0
        volume_id             = "vol-0bd8b3bd4661215fc"
        volume_size           = 10
        volume_type           = "gp2"
    }
}

 

 

✔️ 상태 상세 확인

terraform state [SUB-COMMAND]
[vagrant@controller 01]$ terraform state list
aws_instance.app_server # 리소스의 type.name 으로 출력된다.
[vagrant@controller 01]$ terraform state show aws_instance.app_server

전체 리소스나 특정 리소스만을 확인할 수 있다.

728x90