Infraestrutura como Código (IaC) provisionando ambiente AWS production-ready utilizando:
- Terraform modularizado
- Remote State (S3 + DynamoDB)
- Separação por ambientes
- Tagging padrão organizacional
- Estrutura escalável e reutilizável
- ECR para integração com pipeline de containers
Projeto estruturado com mentalidade enterprise e foco em boas práticas DevOps.
- VPC customizada
- 2 Subnets públicas (multi-AZ)
- Internet Gateway
- Route Table pública
- Security Group com regras explícitas
- EC2 (camada de compute)
- ECR (armazenamento de imagens Docker)
- Backend remoto com S3
- Locking state com DynamoDB
Este projeto demonstra a construção de uma infraestrutura em AWS provisionada via Infrastructure as Code (Terraform), com deploy de aplicação containerizada utilizando Docker e Amazon ECR.
O objetivo foi simular um cenário real de produção, aplicando boas práticas de:
- Modularização Terraform
- Remote State com S3
- Lock de estado com DynamoDB
- Containerização com Docker
- Deploy automatizado em EC2
- Separação por ambientes (dev/prod)
Criar uma arquitetura escalável e organizada que permita:
- Provisionar toda a infraestrutura via código
- Armazenar estado remoto com controle de concorrência
- Publicar imagens Docker no ECR
- Executar containers em EC2
- Aplicar tagging estratégica para governança
Infraestrutura/
│
├── bootstrap/
│ ├── main.tf # S3 + DynamoDB backend
│
├── envs/
│ ├── dev/
│ └── prod/
│ ├── main.tf
│ ├── variables.tf
│ ├── terraform.tfvars
│ └── backend.tf
│
├── modules/
│ ├── vpc/
│ ├── security-group/
│ ├── ec2/
│ └── ecr/
│
└── provider.tf
Cada componente da infraestrutura é isolado em módulo:
- VPC
- Security Group
- EC2
- ECR
Permite:
- Reuso
- Testabilidade
- Evolução isolada
- Escalabilidade
Backend remoto com:
- S3 para armazenamento seguro
- DynamoDB para state locking
Benefícios:
- Evita corrupção de state
- Permite colaboração
- Estrutura pronta para times
Separação de ambientes:
envs/dev
envs/prod
Possibilita:
- Diferentes variáveis
- Diferentes configurações
- Estratégia multi-environment
- Security Group com regras explícitas
- SSH restrito por CIDR
- Separação de variáveis sensíveis
- Remote state isolado
- Tagging para governança
cd Infraestrutura/bootstrap
terraform init
terraform applycd Infraestrutura/envs/prod
terraform init -reconfigure
terraform plan
terraform applyProvisionamento automático de ECR.
Build multi-arch:
docker buildx build \
--platform linux/amd64 \
-t <ACCOUNT_ID>.dkr.ecr.us-east-1.amazonaws.com/website-prod:v1.0 \
--push .Agora entramos no nível avançado.
Criar pipeline automatizado para:
- terraform fmt
- terraform validate
- terraform plan
- terraform apply (aprovado via workflow)
- Build Docker
- Push para ECR
- Deploy automático
✔ Estrutura modular ✔ Remote state profissional ✔ Multi-environment ✔ Integração com containers ✔ Preparado para CI/CD
✔ Arquitetura evolutiva ✔ Organização enterprise-ready
Leonardo Custodio
Cloud & DevOps Engineer
Engenheiro focado em automação de infraestrutura, orquestração de containers e construção de pipelines de entrega contínua em ambientes AWS.
Especialização em:
- Kubernetes (cluster, deploy, networking e workloads)
- Infrastructure as Code (Terraform)
- AWS (arquitetura, redes e serviços essenciais)
- CI/CD para infraestrutura e aplicações
- Docker e ambientes containerizados
- Boas práticas DevOps e automação