Terraform 인프라를 파괴하는 방법

1856 단어
최근에 프로젝트를 진행하면서 테라폼 인프라를 가장 잘 파괴하는 방법에 대한 문제에 직면했습니다. 이를 수행하는 몇 가지 방법이 있으며 가장 좋은 방법은 실제로 수행하려는 작업에 따라 다릅니다.

참고: Terraform과 함께 사용할 수 있는 공급자가 많이 있지만 이 예에서는 AWS를 사용하겠습니다. 어떤 공급자를 사용하든 논리는 동일합니다.

구성 제거



한 가지 방법은 구성에서 리소스를 간단히 제거하는 것입니다(코드 블록, 파일 또는 디렉터리일 수 있음). 그런 다음 terraform apply를 실행합니다. Terraform 언어는 선언적입니다. 즉, 도달하는 데 필요한 단계가 아니라 최종 목표를 정의합니다. 따라서 변경 사항을 적용하면 구성이 사라진 것을 확인하고 AWS(또는 사용 중인 공급자)에서 해당 인스턴스를 삭제합니다. 이는 terraform 프로젝트의 일부만 제거하는 데 가장 좋습니다.

테라포밍 파괴



전체 프로젝트를 destroy 하려면 terraform destroy 를 사용하십시오. 루트 디렉토리에서 실행한 다음 프로젝트를 삭제하십시오.

주의 - 먼저 terraform destroy를 수행하지 않고 프로젝트를 삭제하고 싶을 수도 있습니다(위의 방법과 유사하지만 전체 프로젝트에 대해). 그러나 이렇게 하면 Terraform은 인프라가 해체되지 않도록 해당 구성을 삭제했다고 AWS에 알릴 수 없습니다. AWS 콘솔로 이동하여 인스턴스를 수동으로 제거해야 코드형 인프라를 사용할 수 없습니다.

타겟으로 파괴



destroy 명령을 사용하여 인프라의 일부만 제거하려면 target을 사용하십시오.

terraform destroy -target="aws_instance.example[0]"


여기서 장점은 리소스를 다시 가져오기가 쉽다는 것입니다(다시 수행terraform apply). 그러나 영구적으로 제거하려면 코드에서 관련 구성을 삭제해야 합니다! 그렇지 않으면 다음 번에terraform apply 리소스가 다시 생성됩니다.

인스턴스 교체



이 방법을 사용하여 인스턴스를 교체하고 다시 적용할 수도 있습니다(예: 하드웨어 성능이 저하된 경우).

그러나 권장되는 방법은 -replace 옵션과 함께 terraform apply를 사용하는 것입니다.

terraform apply -replace="aws_instance.example[0]"


이 설명이 도움이 되었기를 바랍니다. 아래에 의견을 남겨주세요!

좋은 웹페이지 즐겨찾기