Storage no S3 pode virar uma bela dor de cabeça no final do mês quando a conta da AWS chega. A gente já viu clientes pagando 5 vezes mais do que deveriam só porque não configuraram lifecycle policies direito. É dinheiro jogado fora.
O que são lifecycle policies e por que você deveria se importar
Lifecycle policies são regras automáticas que movem seus arquivos entre diferentes classes de storage do S3 conforme eles envelhecem. Imagina assim: você tem documentos que usa todo dia, outros que consulta de vez em quando, e aqueles que guarda só por questão legal mas quase nunca acessa.
O S3 tem várias classes de storage com preços bem diferentes:
- Standard: R$ 0,12 por GB/mês (acesso frequente)
- Standard-IA: R$ 0,065 por GB/mês (acesso infrequente)
- Glacier Flexible Retrieval: R$ 0,02 por GB/mês (backup de longo prazo)
- Glacier Deep Archive: R$ 0,006 por GB/mês (arquivo raramente acessado)
A diferença é brutal. Um arquivo que custa R$ 120 por TB no Standard custa apenas R$ 6 no Deep Archive. Estamos falando de 95% de economia.
Caso real: startup de fintech economizou R$ 18 mil por mês
Recentemente ajudamos uma fintech que estava pagando R$ 22 mil mensais só de S3. Eles guardavam logs de transação, backups de banco e documentos de compliance tudo no Standard.
Após análise, descobrimos que:
- 60% dos arquivos tinham mais de 30 dias e eram acessados raramente
- 30% eram backups com mais de 90 dias
- 10% eram documentos legais que precisavam ficar guardados por anos
Com lifecycle policies, a conta caiu para R$ 4 mil mensais. Economia anual de R$ 216 mil.
Como configurar lifecycle policies na prática
Vou mostrar como fazer isso tanto pelo console quanto por Terraform, que é nossa ferramenta preferida para infraestrutura como código.
Pelo console da AWS
No console do S3, vá em Management > Lifecycle rules. Crie uma nova regra seguindo estes passos:
1. Defina o escopo (bucket inteiro ou prefixo específico)
2. Configure as transições:
– 30 dias: Standard para Standard-IA
– 90 dias: Standard-IA para Glacier
– 365 dias: Glacier para Deep Archive
3. Configure expiração se necessário
Com Terraform (recomendado)
A gente sempre recomenda usar Terraform para que tudo fique versionado e replicável:
resource "aws_s3_bucket_lifecycle_configuration" "backup_lifecycle" {
bucket = aws_s3_bucket.backup.id
rule {
id = "backup_retention"
status = "Enabled"
transition {
days = 30
storage_class = "STANDARD_IA"
}
transition {
days = 90
storage_class = "GLACIER"
}
transition {
days = 365
storage_class = "DEEP_ARCHIVE"
}
expiration {
days = 2555 # 7 anos
}
}
}Estratégias por tipo de dado
Logs de aplicação
Logs costumam ser consultados intensamente nos primeiros dias, depois esporadicamente. Nossa regra padrão:
- 7 dias: Standard
- 30 dias: Standard-IA
- 180 dias: Glacier
- Delete após 2 anos
Backups de banco
Backups recentes precisam ser acessíveis rapidamente, os antigos podem esperar:
- 30 dias: Standard
- 90 dias: Standard-IA
- 1 ano: Glacier
- Delete após 7 anos
Documentos de compliance
Raramente acessados, mas precisam ser preservados:
- 30 dias: Standard-IA direto
- 90 dias: Glacier
- 1 ano: Deep Archive
- Manter conforme regulamentação
Monitorando os resultados
Use o CloudWatch para acompanhar métricas de storage e custos. A gente gosta de criar dashboards no Grafana conectado ao CloudWatch para visualizar:
- Storage por classe ao longo do tempo
- Custos mensais por bucket
- Eficiência das transições
O AWS Cost Explorer também é fundamental. Configure alertas quando os custos de S3 ultrapassarem limites definidos.
Armadilhas que você deve evitar
Minimum storage duration: Standard-IA tem período mínimo de 30 dias. Se você deletar antes, paga os 30 dias mesmo assim.
Retrieval costs: Glacier e Deep Archive cobram para recuperar dados. Se você acessa com frequência, pode sair mais caro que manter no Standard.
Small objects: Standard-IA tem cobrança mínima de 128KB por objeto. Muitos arquivos pequenos podem não compensar.
Ferramentas que facilitam a vida
Além do Terraform, usamos outras ferramentas para otimizar custos:
- AWS Cost Anomaly Detection: Detecta gastos anômalos automaticamente
- S3 Storage Lens: Análise detalhada de uso e otimizações
- Trusted Advisor: Recomendações de otimização (nas contas Business/Enterprise)
Lifecycle policies são uma das formas mais eficazes de otimizar custos na AWS sem impactar performance. Com alguns cliques ou algumas linhas de código, você pode economizar milhares de reais por mês. O segredo está em entender o padrão de acesso dos seus dados e configurar as transições adequadamente.