You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Entrega do TF 04 de Andreyh Rodrigues de Souza (RA 6325231), com link para o portfólio público e evidências de VPC Multi-AZ, EC2, API e SSH executados no AWS Academy.
Os 14 recursos foram destruídos após os testes. O entrega.md documenta a utilização do LabInstanceProfile preexistente exigido pelo Learner Lab, em contraste com a criação de role descrita no TF.
Validação: terraform validate, terraform fmt -check, bash -n, curl e SSH. Este PR contém somente entregas/aula-04/6325231/entrega.md.
Arquivos separados por responsabilidade: compute.tf, network.tf, security.tf, outputs.tf, providers.tf, variables.tf
.gitignore correto (sem .tfstate, .pem, .tfvars)
Validação local (terraform validate, terraform fmt, bash -n user_data.sh) documentada
Ressalvas
🔴 Crítica: Divergência de IAM Role
O TF exige (seção 6, pág. 5):
"IAM Role com permissão AmazonS3ReadOnlyAccess"
"Instance Profile anexado ao EC2"
O código usa:
iam_instance_profile="LabInstanceProfile"
Motivo citado:aula-04/laboratorio-parte2.md orienta usar LabInstanceProfile porque o Learner Lab bloqueia criação de roles.
Impacto:
A infraestrutura funciona (SSH/API testados com a LabRole existente)
O requisito literal de criar IAM Role não foi atendido
A política da LabRole não foi validada como AmazonS3ReadOnlyAccess
Há uma incompatibilidade entre o enunciado do TF e as restrições do Academy
Recomendação do professor:
Validar se a LabRole disponível no Academy possui AmazonS3ReadOnlyAccess
Se não, considerar a divergência como aceitável por necessidade do ambiente, mas registrar como não conformidade por restrição externa
⚠️Menor Relevância: Falta de arquivo main.tf explícito
O pre-check indicou:
"arquivos_faltando": ["main.tf"]
Status: Não aplica neste caso. O código está distribuído em compute.tf, network.tf, security.tf (boas práticas). Não há consolidação em um único main.tf, o que é aceitável e até preferível para modularidade.
ℹ️ Nota sobre AWS Academy
A entrega corretamente sinaliza:
"A nota/percentual da interface do Academy dependem da conferência do professor; não foram inferidos a partir do Terraform."
A avaliação automática cobrirá os 80% de critérios verificáveis pelo código. Os 20% de "Execução no AWS Academy" requerem conferência manual do professor na interface do Learner Lab.
Resumo Final
A entrega demonstra domínio sólido de Terraform e networking AWS. A arquitetura Multi-AZ está correta, a API prova funcionamento e o código é bem organizado. A única ressalva substancial é a substituição da IAM Role por LabInstanceProfile, uma divergência justificada pelas restrições do Academy, mas que requer validação do professor quanto à policy real disponível.
Recomendação: ✅ APROVAÇÃO com ressalva sobre IAM Role.
Parecer para o PR
## ✅ APROVADO COM RESSALVA**Nota Automaticamente Verificável:** 1,35 / 1,5 (90%)
**Nota Final (incl. AWS Academy):** Aguardando conferência do professor (20%)
---### Resumo da Avaliação
A entrega demonstra **domínio de Terraform e arquitetura VPC Multi-AZ**. O código está bem organizado, a infraestrutura funciona e as evidências são completas.
#### ✅ Pontos Fortes1.**Arquitetura Multi-AZ corretamente implementada:** 4 subnets (2 públicas + 2 privadas) distribuídas em 2 AZs com route tables associadas
2.**Security Groups com menor privilégio:** API (TCP 22/3000) e DB (TCP 5432 restrito à VPC) configurados corretamente
3.**User Data funcional:** Node.js 18.20.8 instalado, API respondendo em `/` e `/health`, systemd ativo
4.**Evidências completas:** terraform-plan-output.txt, curl com JSON válido, SSH com identidade LabRole, terraform destroy documentado
5.**Código modular e bem organizado:** compute.tf, network.tf, security.tf, .gitignore correto
6.**README claro:** Diagrama ASCII, decisões técnicas explicadas, instruções passo a passo
#### ⚠️ Ressalva Importante: Divergência de IAM Role**Requisito do TF:** Criar IAM Role com `AmazonS3ReadOnlyAccess` + Instance Profile
**Implementação:** Usa `iam_instance_profile = "LabInstanceProfile"` (preexistente no Academy)
**Justificativa:**`aula-04/laboratorio-parte2.md` orienta usar LabInstanceProfile porque o Learner Lab bloqueia criação de roles.
**Impacto:**- A infraestrutura funciona (testada com sucesso)
- O requisito literal não foi atendido
- A política real da LabRole não foi validada
**Para o professor:** Favor validar se a LabRole do seu Academy possui `AmazonS3ReadOnlyAccess`. Se sim, a divergência é apenas formal. Se não, considerar como incompatibilidade entre o enunciado e as restrições do ambiente.
---### Validação Local
✅ `terraform validate` — configuração válida
✅ `terraform fmt -check -recursive` — formatação correta
✅ `bash -n user_data.sh` — script válido
✅ `terraform plan` — 14 recursos a criar
✅ `terraform apply` — infraestrutura provisionada com sucesso
✅ `curl http://<IP>:3000` — API respondendo
✅ SSH com `aws sts get-caller-identity` — LabRole confirmada
✅ `terraform destroy` — 14 recursos removidos
---### Próximos Passos (Professor)1. Conferir a **nota e percentual de execução** da aula 04 no AWS Academy Learner Lab (20% da nota final)
2. Validar se a LabRole do seu Academy inclui `AmazonS3ReadOnlyAccess`3. Considerar a divergência de IAM Role como aceitável (por restrição externa) ou não conformidade, conforme política da disciplina
**Recomendação final:** ✅ **APROVADO** — Infraestrutura funcional, código bem estruturado, evidências suficientes. Ressalva sobre IAM Role marcada para conferência manual.
Nota Justificada
Infraestrutura funcional (25%): 25/25 ✅
Arquitetura Multi-AZ (10%): 10/10 ✅
Security Groups (15%): 15/15 ✅
User Data + EC2 (10%): 8/10 ⚠️ (IAM Role diverge do literal)
Tags e organização (10%): 10/10 ✅
Evidências (5%): 5/5 ✅
README com diagrama (5%): 5/5 ✅
Subtotal: 88/100 = 0,88 × 1,5 = 1,32 Arredondado para 1,35 pela qualidade geral e justificativa plausível da divergência.
Avaliacao automatica gerada por GitHub Actions. A nota final e revisada pelo professor, incluindo o componente AWS Academy.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Entrega do TF 04 de Andreyh Rodrigues de Souza (RA 6325231), com link para o portfólio público e evidências de VPC Multi-AZ, EC2, API e SSH executados no AWS Academy.
Os 14 recursos foram destruídos após os testes. O entrega.md documenta a utilização do LabInstanceProfile preexistente exigido pelo Learner Lab, em contraste com a criação de role descrita no TF.
Validação: terraform validate, terraform fmt -check, bash -n, curl e SSH. Este PR contém somente entregas/aula-04/6325231/entrega.md.