Infraestrutura como Código (IaC) na AWS usando CloudFormation.
Este lab cria uma VPC pública, um bucket S3 privado (com versionamento) e, opcionalmente, uma EC2 com Apache para validação. Inclui passo a passo, parâmetros e checklist de evidências (prints).
- Objetivos
- Arquitetura do Lab
- Estrutura do repositório
- Templates
- Deploy (Console AWS em PT-BR)
- Checklist de evidências (prints)
- Troubleshooting
- Custos e limpeza
- Licença
- Praticar IaC em ambiente real na AWS.
- Documentar o processo técnico de forma clara e reprodutível.
- Versionar e compartilhar no GitHub.
- Stack 01 – Networking: VPC (10.0.0.0/16), Sub-rede pública (10.0.1.0/24), Internet Gateway, Tabela de Rotas (0.0.0.0/0).
- Stack 02 – Storage: bucket S3 privado, bloqueio de acesso público, criptografia AES-256 e versionamento.
- Stack 03 – (Opcional) EC2 Web: Security Group liberando HTTP (80) e EC2 t3.micro com Apache + página “Hello DIO/Fiama”.
Custos: Networking ≈ 0; S3 (baixo, por uso/armazenamento); EC2 pode gerar custo fora do Free Tier — suba, faça o print e exclua.
aws-cloudformation-project/
├─ README.md
├─ templates/
│ ├─ 01-networking.yaml
│ ├─ 02-storage.yaml
│ └─ 03-ec2.yaml
└─ images/
templates/01-networking.yaml→ VPC, Sub-rede pública, IGW, Route Table, Rota e Associação.
Outputs:VpcId,PublicSubnetId(usados pela Stack 03).templates/02-storage.yaml→ S3 privado com bloqueio público, criptografia, versionamento (EnableVersioning), e Outputs do bucket.templates/03-ec2.yaml(opcional) → Security Group (HTTP/80), EC2 (t3.micro), User Data instalando Apache e OutputsWebUrl/InstancePublicIp.
Região sugerida: sa-east-1 (São Paulo).
- CloudFormation → Criar pilha → Com novos recursos (padrão)
- Carregar um arquivo de modelo →
templates/01-networking.yaml→ Avançar - Nome da pilha:
dio-networking-fiama→ parâmetros padrão → Avançar → Avançar → Criar pilha - Validar em VPC: VPC, Sub-rede, Tabela de Rotas (rota
0.0.0.0/0→ IGW).
- Criar pilha →
templates/02-storage.yaml→ Avançar - Nome da pilha:
dio-storage-fiama- BucketName: único globalmente (ex.:
aws-cloudformation-project-fiama-2025) - EnableVersioning:
Yes
- BucketName: único globalmente (ex.:
- Avançar → Avançar → Criar pilha
- Validar no S3: Overview do bucket, Propriedades (Bloqueio Público + Criptografia AES-256) e Versionamento ativado.
- Pegue na Stack 01 (aba Saídas/Outputs):
VpcIdePublicSubnetId - Criar pilha →
templates/03-ec2.yaml→ Avançar - Nome:
dio-ec2-fiama- VpcId: copiar da Stack 01
- PublicSubnetId: copiar da Stack 01
- InstanceType:
t3.micro
- Avançar → Avançar → Criar pilha
- Ao finalizar, na aba Saídas (Outputs), clique em
WebUrlpara abrir a página “Hello DIO/Fiama”.
- Esvaziar bucket
- CloudFormation → Delete stack.
- Status esperado: DELETE_COMPLETE.
Criação da pilha Stack 01 — Networkin
Confirmações
Criação da pilha Stack 02 – Storage
Confirmações
Bucket no S3
Criação da pilha Stack 03 — EC2
Confirmações
- Bucket name já existe → troque por outro nome (único global).
- Falha ao apagar stack do S3 → esvazie o bucket antes de excluir.
- Página da EC2 não abre → aguarde 1–2 min; confirme SG porta 80, Sub-rede pública, IP público e rota
0.0.0.0/0para o IGW. - Erro ASCII no Security Group → não use acentos em
GroupDescription. - Erros YAML → use somente espaços (sem tabs) e aspas quando houver
:em descrições.
- Use a EC2 apenas para validar e exclua a pilha depois.
- No final, exclua as pilhas na ordem inversa:
dio-ec2-fiama→dio-storage-fiama(esvaziando o bucket antes) →dio-networking-fiama.
- AWS CloudFormation • IaC • YAML • São Paulo (sa‑east‑1) • MIT
Este projeto é licenciado sob os termos da MIT License.
Veja o arquivo LICENSE para mais detalhes.

















