1
resposta

Terraform não destrói e cria outra máquina. Ele atualiza.

Vi que já existem outros tópicos falando da mesma coisa, porém as respostas não foram suficientes. Quando eu faço a alteração no main.tf e executo o terraform apply ele não destrói e reconstrói a máquina ele apenas faz a mudança. Isso é devido a estar usando uma versão mais atualizada do terraform? Ou teria alguma outra coisa que esteja causando este comportamento?

1 resposta

Olá, Ícaro!

O comportamento que você está observando é, na verdade, o funcionamento esperado do Terraform. Quando você faz alterações no arquivo main.tf e executa terraform apply, o Terraform tenta aplicar as mudanças minimamente necessárias para atingir o estado desejado. Isso significa que, se ele puder atualizar recursos existentes sem destruí-los e recriá-los, ele o fará.

Esse comportamento é intencional, pois destruir e recriar recursos pode ser disruptivo e demorado, especialmente em ambientes de produção. No entanto, se você realmente precisa que a máquina seja destruída e recriada, você pode forçar isso de algumas maneiras:

  1. Usar o comando terraform taint: Esse comando marca um recurso específico para destruição e recriação na próxima execução do terraform apply. Por exemplo:

    terraform taint aws_instance.my_instance
    

    Isso fará com que o Terraform destrua e recrie a instância my_instance na próxima aplicação.

  2. Alterar o estado do recurso: Algumas mudanças no main.tf podem forçar a recriação do recurso. Por exemplo, alterar o tipo de instância (instance_type) ou a AMI (ami) geralmente faz com que o Terraform destrua e recrie a instância.

  3. Deletar manualmente o recurso no console da AWS: Embora não seja uma prática recomendada, você pode deletar manualmente a instância no console da AWS e depois executar terraform apply para que o Terraform recrie a instância.

Espero ter ajudado e bons estudos!