Terraform을 plan
, apply
를 할 때 결과도 보장할 수 있고 시간도 단축할 수 있는 Terraform의 plan 결과를 저장해서 사용하기에 대해서 올렸는데 이 글에서도 설명했듯이 관리하는 리소스가 많아지면 plan
을 할 때 많은 시간이 걸리는 것은 어쩔 수 없다. -out
옵션을 사용하면 apply
의 시간을 꽤 줄일 수 있지만 plan
시간은 줄일 수 없다.
terraform plan -target=path
똑같이 Route53에 레코드를 하나 추가해 보자.
내용은 크게 중요치 않고 aws_route53_record
로 demo_sideeffect_kr
라는 이름의 리소스를 추가한 것이다. 이 내용을 추가하고 terraform plan
을 실행하면 이 폴더에 포함된 tfstate
에서 관리하는 리소스를 모두 검사한다. 로그가 길어서 여기에는 다시 남기지 않겠는데 이전 글에서 plan
을 한 결과를 보면 된다.
내 개인 terraform에서는 관리하는 리소스가 많지 않아서 그리 오래 걸리지 않지만, 회사에서는 plan
을 하면 10분 가까이 걸리는 것도 있다.
이때 -target=resource
옵션을 사용하면 해당 리소스와 의존관계에 있는 리소스만 검사를 하게 된다. 여기서 Route53에 레코드를 추가한 것처럼 이 tfstate
에서 S3나 CloudWatch 등도 관리하고 있을 수 있지만 여기서 추가한 부분이 명확하므로 굳이 다른 부분까지 plan을 해서 비교를 해볼 필요가 없다.
위처럼 -target
옵션으로 리소스를 한정해 주면 지정한 리소스만 상태를 검사한 뒤에 plan
결과를 나오는 것을 볼 수 있고 시간도 당연히 줄어든다. 물론 -target
옵션은 여러 번 사용해서 다수의 대상을 지정하는 것도 가능하다.
Comments