Gerenciando o estado do Terraform e back-ends remotos
Entenda o estado do Terraform, configure back-ends remotos seguros, gerencie o bloqueio de estado e evite corrupção de estado em fluxos colaborativos de IaC.
Gerenciando o estado do Terraform e back-ends remotos é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que é o estado do Terraform
O Terraform registra o que criou em um arquivo de estado (terraform.tfstate). Ele mapeia sua configuração para recursos reais na nuvem.
Sem o estado, o Terraform não saberia quais recursos já existem e poderia criar duplicatas ou não conseguir atualizá-los.
Por que o estado local falha com equipes
Por padrão, o estado fica no seu disco local. Isso deixa de funcionar com uma equipe ou em CI:
- Outras pessoas não conseguem ver seu estado
- Execuções simultâneas corrompem o arquivo
- O arquivo contém segredos em texto simples e poderia ser enviado ao repositório por acidente
A solução é um backend remoto.
Backends remotos
Um backend remoto armazena o estado em um local compartilhado e durável, como um bucket do S3, o Azure Blob, o GCS ou o Terraform Cloud.
Isso fornece a cada execução do pipeline uma única fonte de verdade para a infraestrutura atual.
terraform {
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
}
}Bloqueio do estado
Se duas execuções do pipeline aplicarem alterações ao mesmo tempo, elas poderão corromper o estado. O bloqueio do estado evita isso permitindo apenas uma gravação por vez.
Com o backend do S3, uma tabela do DynamoDB fornece o bloqueio. O Terraform Cloud bloqueia automaticamente.
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
dynamodb_table = "tf-locks"
}Criptografia do estado
Os arquivos de estado geralmente contêm valores confidenciais, como senhas e chaves. Sempre criptografe o estado em repouso.
Para o backend do S3, habilite a criptografia do bucket e defina encrypt = true na configuração do backend.
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
encrypt = true
}Espaços de trabalho para ambientes
Os espaços de trabalho do Terraform permitem que uma configuração gerencie vários arquivos de estado, um por ambiente.
Alterne entre eles para que staging e produção nunca compartilhem o mesmo estado.
terraform workspace new staging
terraform workspace select productionPlanejamento e aplicação em CI
Em um pipeline, execute terraform plan para visualizar as alterações (geralmente em solicitações de pull) e terraform apply para aplicá-las (quando houver merge na branch principal).
Salve o plano em um arquivo para que a aplicação use exatamente o que foi revisado.
terraform plan -out=tfplan
terraform apply -auto-approve tfplanInspeção do estado
Você pode consultar o estado para ver o que o Terraform está acompanhando.
terraform state list— lista os recursos gerenciadosterraform state show <addr>— mostra os detalhes de um recurso
Evite editar o estado manualmente; use comandos.
terraform state list
terraform state show aws_instance.webImportação de recursos existentes
Se um recurso foi criado fora do Terraform, coloque-o sob gerenciamento com terraform import em vez de recriá-lo.
Isso evita duplicações destrutivas ao adotar IaC em uma infraestrutura existente.
terraform import aws_s3_bucket.logs my-existing-bucketComo lidar com desvios
O desvio acontece quando alguém altera a infraestrutura manualmente, fazendo com que a realidade deixe de corresponder ao estado.
Execute terraform plan regularmente para detectar desvios e, em seguida, reaplique as configurações para restaurar o estado ou atualize a configuração para que corresponda à realidade.
Nunca envie o estado ao repositório
Mesmo com um backend remoto, certifique-se de que o estado local e os arquivos de plano sejam ignorados pelo Git. Eles contêm segredos.
Um bom .gitignore protege você contra vazamentos acidentais.
# .gitignore
*.tfstate
*.tfstate.*
tfplan
.terraform/Verificação rápida
Teste sua compreensão sobre o estado do Terraform.
Recapitulação
Você aprendeu a gerenciar o estado do Terraform com segurança.
- O estado mapeia a configuração para recursos reais; nunca o edite manualmente
- Os backends remotos compartilham o estado entre a equipe e o CI
- O bloqueio e a criptografia protegem contra corrupção e vazamentos
- Os espaços de trabalho isolam ambientes;
plandetecta desvios
Um gerenciamento sólido do estado é a base de pipelines de IaC confiáveis.
Aprenda DevOps Bootcamp com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 142
- Aulas
- 568
Perguntas Frequentes
A aula “Gerenciando o estado do Terraform e back-ends remotos” é grátis?
Sim — o texto completo de “Gerenciando o estado do Terraform e back-ends remotos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Gerenciando o estado do Terraform e back-ends remotos”?
Entenda o estado do Terraform, configure back-ends remotos seguros, gerencie o bloqueio de estado e evite corrupção de estado em fluxos colaborativos de IaC. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Gerenciando o estado do Terraform e back-ends remotos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- IaC com Terraform e GitHub Actions
- Gerenciamento de recursos de nuvem
- Automação de atualizações da infraestrutura
- Gerenciando o estado do Terraform e back-ends remotos