3
respostas

[Dúvida] Importar Infra já existente na AWS para o Terraform

Como faço para importar uma infra já existente em uma conta na AWS para o Terraform?

Seria por recurso?

Ou em um comando, já conseguiria importar tudo que existe na conta ?

3 respostas

Olá, Warlei! Como vai?

Isso é totalmente possível, mas é importante notar que deve ser feito recurso por recurso, e não em um único comando para toda a infraestrutura.

O Terraform possui um comando chamado import que permite importar recursos existentes para o seu estado Terraform. Ele requer dois argumentos: o nome do recurso Terraform (como você o definiu no seu arquivo .tf) e o ID do recurso na AWS.

Por exemplo, se você tem uma instância EC2 na AWS e quer gerenciá-la através do Terraform, você deve primeiro definir o recurso no seu arquivo .tf, como:

resource "aws_instance" "minha_instancia" {
  # (configuração do recurso)
}

Depois, você pode usar o comando import para importar a instância EC2:

terraform import aws_instance.minha_instancia i-1234567890abcdef0

Neste exemplo, aws_instance.minha_instancia é o nome do recurso Terraform e i-1234567890abcdef0 é o ID da instância EC2 na AWS.

Lembre-se de que o comando import não gera configuração, apenas mapeia o estado atual do recurso para o Terraform. Portanto, você ainda precisará escrever a configuração do recurso manualmente.

Espero ter ajudado e bons estudos!

Acho que entendi.

Então no caso, primeiramente eu preciso realizar a configuração do recurso manualmente no meu arquivo .tf, e depois executar o comando "import" para mapear o estado atual do recurso para o Terraform, correto?

Outra dúvida, no meu caso, já tenho um arquivo no S3 chamado "terraform.tfstate. É possível excluí-lo e cria-lo do zero novamente?

Sim, você entendeu corretamente. Primeiro, você precisa realizar a configuração manual do recurso no seu arquivo .tf, definindo as configurações necessárias para o recurso que você deseja gerenciar com o Terraform. Depois, você pode usar o comando import para mapear o estado atual desse recurso para o Terraform.

Quanto à sua segunda pergunta, o arquivo terraform.tfstate é o arquivo que armazena o estado atual da sua infraestrutura gerenciada pelo Terraform. Se você excluí-lo, perderá o histórico do estado e pode enfrentar problemas de consistência.

Se você deseja começar do zero, uma abordagem mais segura seria criar um novo diretório ou projeto Terraform e começar a partir daí. Isso garantirá que você tenha um estado limpo e evita possíveis complicações ao excluir diretamente o arquivo terraform.tfstate.

Se você ainda assim deseja excluir o arquivo terraform.tfstate existente, certifique-se de ter um backup seguro desse arquivo e, ao excluir, esteja preparado para reconstruir toda a infraestrutura do zero. Lembre-se de que excluir o arquivo de estado não remove os recursos da nuvem, mas apenas o histórico de gerenciamento do Terraform para esses recursos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software