Entrega Aula 05 - RDS e Estado Remoto - #153
Conversation
Avaliação do Trabalho de Fixação — Aula 05: RDS e Remote StateAluno: Pablo Augusto Ramos Sobral 📊 Tabela de Critérios (Excluindo AWS Academy)
Desempenho: 75% do verificável (0,60 de 0,80) ✅ Pontos Fortes
|
| Item | Requisito | Status | Evidência |
|---|---|---|---|
| State no S3 | aws s3 ls ou screenshot |
❌ Ausente | 0 pontos |
| Conexão EC2→RDS | psql output ou screenshot |
❌ Ausente | 0 pontos |
| Dados persistentes | SELECT * FROM orders; |
❌ Ausente | 0 pontos |
terraform plan limpo |
Após apply |
❓ Não confirmado | — |
terraform destroy |
Executado após evidências | ❓ Não confirmado | — |
| README | Documentação no portfólio | ❌ Ausente | — |
| entrega.md correto | Referência Aula 05 | ❌ Aula 03 | — |
🎯 Parecer Final
REPROVAÇÃO ⛔
Motivo: Entrega não verificável por ausência total de evidências obrigatórias.
PARECER PARA O PR:
## ❌ Parecer de Avaliação — Aula 05: RDS e Remote State
### Status: **REPROVADO** ⛔
**Aluno:** Pablo Augusto Ramos Sobral | **RA:** 6325076 | **Nota:** 0,75 / 1,5 (50%)
---
### ✅ Pontos Fortes
1. **Infraestrutura Terraform bem estruturada:**
- RDS PostgreSQL 15 com `db.t3.micro`, encriptação e subnet group em 2 AZs corretos
- VPC com 1 subnet pública + 2 privadas em zonas diferentes, IGW e route table funcionais
- Security Groups seguindo bônus: referência entre EC2→RDS via SG (porta 5432), sem CIDR aberto
2. **Código organizado e seguro:**
- Arquivos `.tf` separados por responsabilidade (vpc.tf, rds.tf, ec2.tf, security_groups.tf)
- Variável `db_password` marcada com `sensitive = true`
- `.gitignore` completo e correto
- Outputs úteis documentados (RDS endpoint, EC2 IP, porta, DB name)
3. **Backend remoto configurado:**
- `backend.tf` define corretamente S3 + DynamoDB com encriptação
- Estrutura pronta para state remoto (faltou apenas executar e documentar)
---
### ❌ Razões da Reprovação
#### **1. Sem Evidências de Execução (CRÍTICO — 50% da nota perdida)**
O trabalho não inclui **nenhuma** das 3 evidências obrigatórias:
- ❌ **Estado remoto no S3:** Nenhum output de `aws s3 ls` ou screenshot do console S3
- ❌ **Conexão EC2→RDS:** Nenhum output de `psql` ou screenshot do prompt PostgreSQL
- ❌ **Dados persistentes:** Nenhuma consulta ao banco de dados executada
**Sem essas evidências, é impossível validar que:**
- O `terraform init` inicializou o backend
- O `terraform apply` foi executado com sucesso
- A infraestrutura está realmente funcionando
- O `terraform destroy` foi feito após captura
**Impacto:** Critério "Remote State" = 0 pontos | Critério "EC2 + Conexão" = 0,05 pontos (apenas por infraestrutura estar codificada)
#### **2. Entrega com Referência Incorreta**
- ❌ `entrega.md` refere-se à **Aula 03**, não à Aula 05
- ❌ Checklist está para IAM, não para RDS + Remote State
- ⚠️ Demonstra desatenção ao detalhe de entrega
#### **3. README Ausente**
- ❌ Sem arquivo `README.md` na pasta `aula-05/` do portfólio
- ❌ Sem documentação de como provisionar, testar e destruir
#### **4. User Data Incompleto**
- ⚠️ EC2 instala PostgreSQL, mas sem teste automático de conectividade
- ⚠️ Sem validação de que a instalação funcionou
- ⚠️ Sem criação de tabelas/dados de exemplo
---
### 📊 Breakdown de Critérios (80% verificável, 20% AWS Academy pendente)
| Critério | Peso | Status | Pontos | Detalhes |
|----------|------|--------|--------|----------|
| VPC e Networking | 15% | ⚠️ Parcial | 0,10 | Estrutura OK, falta validação de routes |
| RDS PostgreSQL | 25% | ✅ Completo | 0,25 | Todos os parâmetros corretos |
| EC2 + Conexão | 15% | ❌ S/ Prova | 0,05 | Infra codificada, sem evidência de funcionamento |
| Remote State | 25% | ❌ S/ Prova | 0,00 | Backend configurado, estado não documentado |
| Segurança | 10% | ✅ Bom | 0,10 | Sensibles, encriptação, SGs corretos |
| Organização | 10% | ⚠️ Incompleto | 0,10 | Código OK, faltam README e entrega.md correto |
| **Subtotal** | 80% | — | **0,60** | 75% do verificável |
| AWS Academy | 20% | ⏳ Pendente | — | Será avaliado pelo professor |
**Nota final:** 0,75 / 1,5 (50% — **Abaixo do mínimo de 60% para aprovação**)
---
### 🔧 O Que Falta para Aprovação
Para re-submeter este trabalho com aprovação, execute:
1. **Provisione a infraestrutura com backend remoto:**
```bash
cd aula-05/
terraform init
terraform plan > terraform-plan.txt
terraform apply -auto-approve-
Capture as 3 evidências obrigatórias:
# Evidência 1: State no S3 aws s3 ls s3://technova-terraform-state-468464606980/aula-05/ # Evidência 2: Conecte via SSH e teste psql ssh -i sua-chave.pem ec2-user@<EC2_PUBLIC_IP> psql -h <RDS_ENDPOINT> -U technova_admin -d technova -c "SELECT version();" # Evidência 3: Crie dados de exemplo psql -h <RDS_ENDPOINT> -U technova_admin -d technova -c \ "CREATE TABLE orders (id SERIAL, description TEXT); INSERT INTO orders VALUES (1, 'Order 1');"
-
Atualize entrega.md:
- Corrija para referência "Aula 05"
- Cole os outputs dos comandos acima
- Marque todos os checkboxes como ✅
-
Crie README.md:
# Aula 05: RDS e Remote State ## Provisionamento ```bash terraform init terraform apply
Teste
# No EC2 psql -h <endpoint> -U technova_admin -d technova -c "SELECT version();"
Limpeza
terraform destroy aws s3 rm s3://... --recursive
-
Destrua tudo e faça novo commit:
terraform destroy -auto-approve git add aula-05/ git commit -m "fix(aula-05): adiciona evidências e README" git push
⏳ Nota Sobre AWS Academy
O componente "AWS Academy" (20%) não é verificável via código e será avaliado pelo professor através da documentação de execução.
Ação: Após implementar o acima, crie um arquivo AWS_ACADEMY_LOG.md documentando qual permissão foi usada e se houve bloqueios.
✋ Próximos Passos
- Implemente as evidências acima
- Atualize
entrega.mdcom referência "Aula 05" - Adicione
README.md - Destrua infraestrutura e esvazio bucket S3
- Abra novo PR com commits corrigidos
Atenciosamente,
Avaliador DevOps
---
## 📌 Resumo Executivo
| Aspecto | Resultado |
|--------|-----------|
| **Conceitual (Código Terraform)** | ✅ 90% correto |
| **Execução e Evidências** | ❌ 0% documentado |
| **Organização** | ⚠️ 75% (falta README) |
| **Verificabilidade** | ❌ Não verificável |
| **Aprovado?** | **NÃO** |
**Conclusão:** O código está bem-estruturado e tecnicamente correto, mas **sem evidências de execução**, não há como validar que a infraestrutura foi realmente provisionada e testada. Isso viola o princípio fundamental do TF: "declarativo, mas comprovado". Solicita-se re-submissão com evidências.
---
_Avaliacao automatica gerada por GitHub Actions. A nota final e revisada pelo professor, incluindo o componente AWS Academy._
Entrega da Aula 05 - RDS e Estado Remoto.
A infraestrutura foi implementada com Terraform utilizando:
Projeto completo:
https://github.com/Pablao02/unifaat-devops-portfolio/tree/main/aula-05