Roadmap de Estudos — Primeiros passos Terraform¶
Este roadmap é dividido em 6 fases progressivas. Cada fase tem teoria, exercício prático e um critério claro de conclusão.
Visão Geral¶
gantt
title Jornada Primeiros passos Terraform
dateFormat X
axisFormat Fase %s
section Fundação
Fase 0 - Setup :0, 1
Fase 1 - Fundamentos HCL :1, 2
section Intermediário
Fase 2 - Estado :2, 3
Fase 3 - Variáveis :3, 4
section Avançado
Fase 4 - Módulos :4, 5
Fase 5 - Produção :5, 6
0. Setup e Ambiente¶
Objetivo: Ter o ambiente completamente configurado e entender o fluxo de trabalho IaC antes de escrever uma linha de código.
Ambiente: Local (sem cloud)
- Instalação do Terraform e verificação de versão
- Instalação do Docker e LocalStack
- Instalação e configuração do
tflocal(wrapper para LocalStack) - Configuração do AWS CLI com perfil
localstack - Inicialização do repositório Git
- Revisão do
.gitignoree entendimento do que NUNCA commitar
Critério de conclusão: tflocal version retorna a versão do Terraform; LocalStack está rodando e acessível em localhost:4566.
1. Fundamentos HCL e Ciclo de Vida¶
Objetivo: Entender a sintaxe da linguagem, como funciona um provider e executar o ciclo completo init → plan → apply → destroy.
Ambiente: LocalStack
- Sintaxe HCL: blocks, arguments, expressions, tipos de dados
- Providers: o que são, como configurar o AWS Provider
- Ciclo de vida:
init,plan,apply,destroy— o que cada um faz - Recursos (
resource) e fontes de dados (data)
Exercício: Criar um S3 bucket no LocalStack do zero — arquivo main.tf escrito linha a linha.
Critério de conclusão: tflocal apply cria o bucket sem erros; tflocal destroy remove tudo limpo.
2. Gestão de Estado¶
Objetivo: Entender o papel central do arquivo de estado e aprender a gerenciá-lo com segurança.
Ambiente: LocalStack
- Estado local: o que é o
terraform.tfstate, o que ele contém e por que é crítico - Estado remoto: backend S3 + DynamoDB para state locking
- Comandos de inspeção:
state list,state show - Comandos de manipulação:
state mv,state rm(e quando NÃO usar)
Exercício: Migrar o estado local do exercício da Fase 1 para um backend S3 no LocalStack.
Critério de conclusão: O arquivo terraform.tfstate local não existe mais; o estado está no S3 e protegido por lock no DynamoDB.
3. Variáveis, Outputs e Locals¶
Objetivo: Escrever código parametrizável, reutilizável e sem repetição.
Ambiente: LocalStack
- Variables: tipos, validações, defaults,
terraform.tfvars - Outputs: expor dados para uso externo e entre módulos
- Locals: calcular valores reutilizáveis sem expô-los como variáveis
- Funções built-in essenciais:
length,toset,merge,lookup,format
Exercício: Refatorar o código da Fase 1 para usar variáveis e outputs — sem alterar a infraestrutura criada.
Critério de conclusão: tflocal plan retorna "No changes" após a refatoração; o código aceita região e nome do bucket como parâmetros.
4. Módulos¶
Objetivo: Entender a principal abstração de reutilização do Terraform e criar seu primeiro módulo.
Ambiente: LocalStack
- Criando módulos: anatomia de um módulo, interfaces de entrada/saída
- Módulos locais vs. Terraform Registry
- Passagem de variáveis entre módulo raiz e módulos filhos
- Versionamento de módulos com
sourceeversion
Exercício: Extrair a configuração de VPC para um módulo modules/vpc/ reutilizável e consumi-lo no main.tf raiz.
Critério de conclusão: Dois ambientes diferentes (dev/prod) usam o mesmo módulo VPC com configurações distintas.
5. Produção e Boas Práticas¶
Objetivo: Aplicar tudo que foi aprendido em uma infraestrutura real, seguindo padrões profissionais de mercado.
Ambiente: AWS Real (sua conta)
- Workspaces: gerenciamento de ambientes dev/staging/prod
- Ferramentas de qualidade:
terraform fmt,terraform validate,tflint,checkov - Segurança: gestão de segredos, IAM mínimo, nunca hardcodar credenciais
- Estrutura profissional: como grandes equipes organizam repositórios Terraform
Exercício (Projeto Final): Arquitetura VPC completa na AWS real: - VPC com subnets públicas e privadas em múltiplas AZs - Bastion Host para acesso SSH seguro - Auto Scaling Group com EC2 atrás de um ALB - RDS em subnet privada - Security Groups com regras de least privilege
Critério de conclusão: terraform apply no ambiente prod cria toda a infraestrutura; checkov não reporta falhas críticas de segurança.
Próximos Passos¶
Após completar as 5 fases, você estará pronto para explorar:
- Terraform Cloud / HCP Terraform — gestão de estado e pipelines gerenciados
- Atlantis — GitOps para Terraform (PR-driven infrastructure)
- CI/CD com Terraform — GitHub Actions, Azure DevOps
- Terragrunt — wrapper para DRY em repositórios multi-ambiente
- CDK for Terraform (CDKTF) — escrever IaC em TypeScript/Python