1
resposta

Meu terraform não destrói a instância e recria uma igual

Olá,

Acredito que seja por motivo de atualização no terraform... no vídeo, foi criada uma instância e na sequencia criamos seu access key, alteramos o código e rodamos o apply novamente.. no vídeo do instrutor, o terraform destrói a instância antiga e recria.... em meu computador no entanto, recebo uma mensagem informando que não existem mudanças na estrutura e nada é feito. Preciso terminar a instância manualmente via dashboard... é isso mesmo? atualizaram esse comportamento?

1 resposta

Olá Celso.

Tudo bem?

Parece ser um problema relacionado ao estado do Terraform e como ele gerencia as mudanças na infraestrutura.

No vídeo, o instrutor provavelmente tinha uma configuração ou estado diferente que fez com que a instância fosse destruída e recriada. No seu caso, o Terraform está identificando que não há mudanças suficientes para justificar a destruição e recriação da instância.

Aqui estão algumas sugestões para resolver o problema:

  • Verifique o estado do Terraform: Certifique-se de que o estado do Terraform (terraform.tfstate) está atualizado e correto. Às vezes, o estado pode estar desatualizado ou corrompido, levando a comportamentos inesperados.

  • Forçar a recriação da instância: Você pode forçar a recriação da instância utilizando a opção -replace no comando terraform apply. Por exemplo:

    terraform apply -replace="aws_instance.app_server"
    

    Isso instruirá o Terraform a destruir e recriar a instância especificada.

  • Alterações no código: Certifique-se de que as alterações feitas no código Terraform realmente exigem a recriação da instância. Pequenas mudanças, como a adição de tags ou modificações em parâmetros que não afetam a infraestrutura subjacente, podem não desencadear a recriação automática.

  • Revisar a configuração do main.tf: Verifique se todas as configurações necessárias estão presentes e corretas. Por exemplo, se você está adicionando uma chave SSH, certifique-se de que a linha key_name = "iac-alura" está corretamente inserida no bloco de recursos da instância.

Aqui está um exemplo prático de como seu arquivo main.tf poderia se parecer:

resource "aws_instance" "app_server" {
  ami           = "ami-03d5c68bab01f3496"
  instance_type = "t2.micro"
  key_name      = "iac-alura"

  tags = {
    Name = "MyAppServer"
  }
}

Depois de fazer essas verificações e ajustes, tente rodar novamente o comando terraform apply.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.