2017-05-16 1 views
0

terraform을 사용하여 aws에서 다른 구성 요소에 대해 다른 인스턴스를 만들고 싶습니다. 그러나 구성 요소의 특정 인스턴스를 제거하려는 경우 다른 구성 요소의 모든 인스턴스를 동시에 파괴합니다. 모두 하나의 폴더에 공통 tfstate 파일을 공유합니다. 그래서 다른 폴더의 다른 구성 요소 인스턴스를 별도의 tfstate 파일을 실행하기 위해 terraform을 실행해야합니다. 별도의 구성 요소에 별도의 폴더를 만들고 거기에 terraform을 실행해야합니까?terraform tf 여러 인스턴스에 대한 상태 파일

다른 문제가 있습니까?

나를 생각하자, 질문에이 순전히 세부 사항 때문에, 당신은

+0

좀 더 구체적인 것을 제공해 주시겠습니까? 'components'와'instances'에서 당신은 무엇을 의미합니까? 어떤 AWS 리소스를 만들 계획입니까? –

답변

0

확인 감사드립니다.

terraform destroy을 실행하여 일부 '인스턴스'를 파괴해야합니다.

하지만 리소스를 모두 파괴하지 않으려 고합니다.

분리 된 리소스를 다른 상태의 다른 폴더로 간주했습니다.

그러나 이것은 필요 없음입니다. 특정 '인스턴스'/ '리소스'를 파괴하려면 설정 (.tf 파일)에서 제거하고 terraform apply을 실행하십시오. 이것은 일부 '인스턴스'를 파괴하지만 다른 모든 것을 유지합니다.

의는 다음과 같은 설정을 가지고 있다고 가정 해 봅시다 :

resource "aws_instance" "api" { 
    ami   = "${data.aws_ami.ubuntu.id}" 
    instance_type = "t2.micro" 
} 

resource "aws_instance" "web" { 
    ami   = "${data.aws_ami.ubuntu.id}" 
    instance_type = "t2.micro" 
} 

resource "aws_instance" "app" { 
    ami   = "${data.aws_ami.ubuntu.id}" 
    instance_type = "t2.micro" 
} 

3 인스턴스 : 웹, 응용 프로그램, API를. web을 파괴하려고합니다.

모든 주를 파괴 할 terraform destroy을 실행하는 대신 필요한 부분을 그대로두고 terraform plan을 실행하십시오.

P. 다른 폴더에서 상태를 분리하는 것도 의미가 있습니다. 예를 들어, 서로 다른 환경을 서로 다른 상태 파일로 분리하는 것이 좋습니다. 또한 VPC 또는 S3 버킷 구성과 같은 좀 더 일반적인 항목을 별도의 상태로 옮길 수 있습니다. EC2 인스턴스를 좀 더 자주 변경하면 위험에 처하지 않습니다.

0

.tf 파일에서 더 이상 원하지 않는 부분을 주석 처리하고 plan/apply를 다시 실행하십시오. 당신이 주석 처리 한 비트 만 파괴 할 것입니다.

관련 문제