IaC(Infrastructure as Code)

Terraform Commands (taint / untaint)

cwchoiit 2024. 3. 8. 09:49
728x90
반응형
SMALL
728x90
SMALL

Terraform 에서는 taint와 untaint라는 명령어가 있다. 이 명령어가 무엇인지 알아보고 어떻게 사용하는지 알아보자.

 

taint

taint는 Terraform에서 리소스를 관리하는 중 특정 리소스에 문제가 생겼을 때 해당 리소스에 문제가 생겼다는 것을 Terraform에게 알리는 명령어이다. 그럼 Terraform은 이 리소스에 문제가 생겼다는것을 알고 교체하려한다.

 

현재 나의 Workspace에서 관리하는 State는 다음과 같다.

 

이 중에서 Internet Gateway에 어떤 문제가 발생했다고 가정해보자. 그래서 해당 리소스에 taint를 하려고 한다.

tf taint "module.vpc.aws_internet_gateway.this[0]"

 

 

이렇게 한 후 Apply를 해보면 taint 처리한 Internet Gateway 리소스를 교체하려고 시도한다.

 

이게 taint 명령어의 사용 용도이다. 그리고 이 taint는 처리한 리소스를 의존하는 무언가가 있을 때 해당 리소스도 교체한다. 예를 들어, Internet Gateway가 Public Route Table에 연결된 상태일텐데 이 인터넷 게이트웨이를 교체하면 당연히 기존에 매핑되어 있던 Route Table의 Internet Gateway도 새로 만들어지는 녀석으로 교체되려고 할 것이다. 이것을 Terraform은 알아서 해준다.

 

untaint

untaint는 간단하다. taint의 반대다. taint를 처리한 리소스에 대해 취소를 하고 싶으면 untaint를 하면 된다.

tf untaint "module.vpc.aws_internet_gateway.this[0]"

 

그럼 taint 처리된 리소스는 해제된다.

 

728x90
반응형
LIST

'IaC(Infrastructure as Code)' 카테고리의 다른 글

Terraform Cloud  (0) 2024.03.10
Terraform Workspace  (0) 2024.03.08
Terraform State  (0) 2024.03.07
AWS + Terraform (Loop)  (0) 2024.03.07
AWS + Terraform (Conditions)  (0) 2024.03.07