Nota F. 16 pontos revisados, com R$ 524,25/mês recuperável ao todo. O ponto de maior prioridade: security group aberto para a internet em todas as portas.
Security group arn:aws:ec2:sa-east-1:123456789012:security-group/sg-0abc123 permite ingress de 0.0.0.0/0 em todas as portas.
aws ec2 revoke-security-group-ingress --group-id arn:aws:ec2:sa-east-1:123456789012:security-group/sg-0abc123 --protocol -1 --cidr 0.0.0.0/0
O bucket arn:aws:s3:::meu-bucket permite acesso público de leitura.
resource "aws_s3_bucket_public_access_block" "b" { block_public_acls = true }
R$ 290/mês de computação sob demanda com apenas 15% coberto por Savings Plan/RI. Um Compute Savings Plan de 1 ano (no-upfront) sobre o piso de uso constante costuma cortar ~25% sem travar flexibilidade.
AWS Cost Management → Savings Plans → analisar a recomendação e comprar cobrindo o piso constante de uso (não o pico).
Instância RDS rodando em Multi-AZ, o que aproximadamente dobra o custo de computação. Ótimo para produção — vale confirmar que este ambiente realmente precisa dessa redundância.
Se for ambiente de desenvolvimento/homologação: Console RDS → Modify → Multi-AZ deployment → No. Em produção, manter.
Storage do RDS em gp2 custando ~R$ 239.00/mês (aproximado, inclui compute + storage do recurso). O gp3 entrega a mesma performance base ~20% mais barato.
Console RDS → selecionar a instância → Modify → Storage type → gp3 → Apply. Não exige downtime nem janela de manutenção para essa troca.
NAT Gateway processando ~R$ 220/mês em dados. Boa parte costuma ser tráfego para S3/DynamoDB/ECR que poderia ir por VPC Endpoints — sem passar (nem pagar) pelo NAT. É sintoma de arquitetura de rede a revisar, não só custo.
Criar Gateway Endpoints (S3, DynamoDB) e Interface Endpoints (ECR, etc.); revisar tabelas de rota para reduzir o egress que passa pelo NAT.
3 NAT Gateways ativos, somando ~R$ 317.2/mês. Multi-AZ genuíno justifica mais de um, mas vale confirmar se todos atendem tráfego real ou se dá para consolidar sem perder disponibilidade.
Mapear qual subnet/AZ cada NAT atende; consolidar os que não têm tráfego relevante ou não têm requisito real de isolamento por AZ.
Bucket com ~R$ 35/mês em armazenamento Standard e nenhum custo em IA/Glacier — sinal de que não há política de ciclo de vida configurada. Dados pouco acessados costumam migrar bem para IA/Glacier.
Console S3 → bucket → Management → Lifecycle rules → adicionar transição para Standard-IA (30 dias) e Glacier (90 dias), conforme o padrão de acesso real dos dados.
Instância RDS db.m4.large é de geração anterior. Migrar para a geração atual costuma dar ~15-20% de economia e mais performance por real.
Console RDS → Modify → Instance class → equivalente atual (ex.: db.m4→db.m6i, db.r4→db.r6i). Testar em uma réplica ou staging antes de aplicar em produção.
Log group custando ~R$ 22.00/mês entre ingestão e armazenamento. Por padrão, o CloudWatch Logs NÃO expira logs — sem retenção definida, o custo só sobe. Vale confirmar se este log group tem uma política configurada.
aws logs put-retention-policy --log-group-name <nome> --retention-in-days 30 (ajuste conforme a necessidade real de auditoria/compliance).
Volume gp2 custando ~R$ 40.00/mês. O gp3 entrega a mesma performance base ~20% mais barato, com migração online (sem downtime).
No recurso aws_ebs_volume, definir type = "gp3". A migração é online; opcionalmente ajustar iops/throughput.
Snapshot custando ~R$ 12.00/mês. Sem uma política de ciclo de vida (DLM), snapshots se acumulam e o custo só cresce — vale confirmar se este ainda é necessário.
Se não for mais necessário: aws ec2 delete-snapshot --snapshot-id <id>. Para os próximos, configurar uma política no EBS Data Lifecycle Manager com retenção definida, evitando o acúmulo.
Instância t2.large é de geração anterior. Migrar para a geração atual costuma dar ~15% de economia e mais performance por real.
Atualizar instance_type para o equivalente atual (ex.: t2→t3, m4→m6i, c4→c6i, r4→r6i) e validar em staging antes de produção.
Elastic IP sem uso — a AWS cobra por IP elástico ocioso. É 100% desperdício: associe a um recurso em uso ou libere.
aws ec2 release-address --allocation-id <id> (ou associá-lo a uma instância/NAT em uso).
~R$ 9/mês em armazenamento de backup do RDS além do espaço gratuito (equivalente ao tamanho do banco). Costuma ser sinal de uma janela de retenção mais longa do que o necessário.
Console RDS → Modify → Backup retention period → ajustar para o mínimo exigido por política/compliance (padrão é 7 dias).
R$ 7.2/mês em cobrança de IPv4 público. Desde fev/2024 a AWS cobra por todo IPv4 público — esteja o endereço ocioso ou em uso (isso é além do Elastic IP ocioso, que é outra cobrança). Recursos sem necessidade real de acesso direto à internet podem ficar atrás de um NAT/ALB ou migrar pra IPv6, sem essa cobrança por unidade.
Mapear instâncias/recursos com IP público associado; migrar os que não precisam de acesso direto pra trás de um NAT Gateway ou ALB, ou usar IPv6 (sem cobrança adicional por endereço).