Otimização de custos da AWS: economize de 30 a 50% em sua conta de infraestrutura em nuvem
Uma organização média desperdiça 32% de seus gastos com nuvem em recursos ociosos ou superprovisionados. Para uma empresa que gasta US$ 5.000 por mês na AWS, isso representa US$ 19.200 por ano desperdiçados. A otimização de custos da nuvem não se trata de economizar, trata-se de pagar apenas pelo que você realmente usa.
Este guia abrange todo o espectro de estratégias de redução de custos da AWS, desde ganhos rápidos que economizam dinheiro neste mês até mudanças arquitetônicas que aumentam a economia ao longo do tempo.
Principais conclusões
- O dimensionamento correto por si só economiza de 20 a 40% ao combinar os tipos de instância com o uso real dos recursos
- Instâncias reservadas e Savings Plans oferecem descontos de 30 a 60% para cargas de trabalho previsíveis
- As instâncias spot reduzem os custos de computação em 60-90% para cargas de trabalho tolerantes a falhas
- As políticas de ciclo de vida de armazenamento evitam que os custos do S3 cresçam indefinidamente
A Estrutura de Otimização de Custos
Ordem de prioridade
Otimize nesta ordem para obter ROI máximo com esforço mínimo:
- Eliminar desperdício (imediato, sem risco)
- Instâncias do tamanho certo (1 a 2 semanas, baixo risco)
- Use modelos de precificação (planos reservados, spot, poupança)
- Otimizar arquitetura (meses, requer engenharia)
Passo 1: Eliminar Desperdícios
Encontre recursos não utilizados
# Find unattached EBS volumes (you are paying for storage with no use)
aws ec2 describe-volumes \
--filters Name=status,Values=available \
--query 'Volumes[*].{ID:VolumeId,Size:Size,Type:VolumeType}' \
--output table
# Find unused Elastic IPs
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==null].{IP:PublicIp,AllocationId:AllocationId}' \
--output table
# Find idle load balancers (no targets)
aws elbv2 describe-target-groups \
--query 'TargetGroups[*].{ARN:TargetGroupArn,Name:TargetGroupName}' \
--output table
# Find stopped instances still consuming EBS
aws ec2 describe-instances \
--filters Name=instance-state-name,Values=stopped \
--query 'Reservations[*].Instances[*].{ID:InstanceId,Type:InstanceType,StopTime:StateTransitionReason}' \
--output table
Fontes de Resíduos Comuns
| Fonte de Resíduos | Custo mensal típico | Correção |
|---|---|---|
| Volumes EBS não anexados | US$ 10-100 por volume | Excluir ou tirar instantâneo e excluir |
| Instâncias interrompidas com EBS | US$ 20-200 por instância | Encerrar ou criar AMI |
| IPs elásticos não utilizados | $ 3,60 cada | Liberação |
| Instantâneos antigos | US$ 0,05/GB | Política de ciclo de vida |
| Gateways NAT superdimensionados | US$ 32+ por gateway | Consolide e use VPC endpoints |
| Instâncias RDS ociosas | $ 50-500 + | Pare ou encerre instâncias de desenvolvimento |
Etapa 2: dimensionamento correto
Analise o uso real
# Get average CPU utilization over the last 14 days
aws cloudwatch get-metric-statistics \
--namespace AWS/EC2 \
--metric-name CPUUtilization \
--dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
--start-time $(date -u -d '14 days ago' +%Y-%m-%dT%H:%M:%S) \
--end-time $(date -u +%Y-%m-%dT%H:%M:%S) \
--period 3600 \
--statistics Average Maximum \
--output json
Matriz de decisão de dimensionamento correto
| CPU média | Pico de CPU | Ação |
|---|---|---|
| <10% | <30% | Reduza o tamanho em 2 etapas (por exemplo, xgrande para médio) |
| 10-30% | <60% | Reduza o tamanho em 1 etapa (por exemplo, de grande para grande) |
| 30-60% | <80% | Tamanho atual adequado |
| >60% | >80% | Considere o upsizing ou o escalonamento automático |
Otimização do tipo de instância
| Instância Atual | Tamanho certo | Poupança Mensal |
|---|---|---|
| m5.xlarge (US$ 140) | m5.grande (US$ 70) | $ 70 (50%) |
| r5.2xgrande (US$ 365) | r6g.xlarge ($ 146) | $ 219 (60%) |
| t3.grande (US$ 60) | t3.médio (US$ 30) | $ 30 (50%) |
| c5.xlarge (US$ 124) | c6g.grande ($ 62) | $ 62 (50%) |
A mudança para instâncias Graviton (ARM) (r6g, c6g, m6g) proporciona uma economia adicional de 20% com desempenho igual ou melhor para a maioria das cargas de trabalho.
Etapa 3: Modelos de preços
Instâncias Reservadas vs Planos Savings
| Recurso | Instâncias Reservadas | Planos de poupança computacional | Planos de Poupança EC2 |
|---|---|---|---|
| Desconto | 30-60% | 30-54% | 40-60% |
| Flexibilidade | Tipo/região de instância específica | Qualquer instância de família/região | Família/região de instância específica |
| Compromisso | 1 ou 3 anos | 1 ou 3 anos | 1 ou 3 anos |
| Melhor para | Cargas de trabalho estáveis e previsíveis | Cargas de trabalho mistas | Famílias de instâncias específicas |
Recomendação: comece com Compute Savings Plans para ter flexibilidade. Comprometa-se com o uso mínimo da linha de base em que você tem confiança.
Instâncias spot
As instâncias spot oferecem descontos de 60 a 90%, mas podem ser interrompidas com 2 minutos de antecedência.
Bom para:
- Executores de compilação CI/CD
- Processamento em lote e pipelines de dados
- Ambientes de desenvolvimento e staging
- Servidores web sem estado atrás de um balanceador de carga (com fallback sob demanda)
Não é bom para:
- Bancos de dados
- Aplicativos de instância única
- Cargas de trabalho com estado sem pontos de verificação
# Launch template with Spot Instance
Resources:
SpotFleet:
Type: AWS::EC2::SpotFleet
Properties:
SpotFleetRequestConfigData:
AllocationStrategy: lowestPrice
TargetCapacity: 5
LaunchSpecifications:
- InstanceType: t3.large
ImageId: ami-0123456789abcdef0
- InstanceType: t3.xlarge
ImageId: ami-0123456789abcdef0
- InstanceType: m5.large
ImageId: ami-0123456789abcdef0
Etapa 4: Otimização de armazenamento
Políticas de ciclo de vida do S3
{
"Rules": [
{
"ID": "ArchiveOldBackups",
"Status": "Enabled",
"Filter": {
"Prefix": "backups/"
},
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA"
},
{
"Days": 90,
"StorageClass": "GLACIER"
},
{
"Days": 365,
"StorageClass": "DEEP_ARCHIVE"
}
],
"Expiration": {
"Days": 730
}
}
]
}
Preço da classe de armazenamento S3
| Classe de armazenamento | Preço por GB/mês | Recuperação | Melhor para |
|---|---|---|---|
| Padrão | US$ 0,023 | Instantâneo | Dados ativos |
| Padrão-IA | US$ 0,0125 | Instantâneo (recuperação de US$ 0,01/GB) | Acesso mensal |
| Geleira Instantânea | US$ 0,004 | Instantâneo (recuperação de US$ 0,03/GB) | Acesso trimestral |
| Geleira | US$ 0,004 | 1-12 horas | Acesso anual |
| Arquivo Profundo | US$ 0,00099 | 12 horas | Conformidade, longo prazo |
Otimização EBS
# Convert gp2 volumes to gp3 (20% cheaper, better performance)
for vol_id in $(aws ec2 describe-volumes --filters Name=volume-type,Values=gp2 --query 'Volumes[*].VolumeId' --output text); do
echo "Converting $vol_id from gp2 to gp3"
aws ec2 modify-volume --volume-id "$vol_id" --volume-type gp3
done
Etapa 5: escalonamento automático
Dimensionamento baseado em agendamento
A maioria dos aplicativos B2B recebe 70% menos tráfego fora do horário comercial:
# Scale down at night
aws autoscaling put-scheduled-action \
--auto-scaling-group-name production-asg \
--scheduled-action-name scale-down-night \
--recurrence "0 20 * * 1-5" \
--desired-capacity 2 \
--min-size 1
# Scale up in the morning
aws autoscaling put-scheduled-action \
--auto-scaling-group-name production-asg \
--scheduled-action-name scale-up-morning \
--recurrence "0 7 * * 1-5" \
--desired-capacity 5 \
--min-size 3
Programação do ambiente de desenvolvimento
Interrompa ambientes que não sejam de produção fora do horário de trabalho:
# Stop dev/staging instances at 7 PM
aws ec2 stop-instances --instance-ids i-dev123 i-staging456
# Start at 8 AM
aws ec2 start-instances --instance-ids i-dev123 i-staging456
Economia mensal: executar instâncias de desenvolvimento 10 horas/dia em vez de 24 economiza 58%.
Lista de verificação de revisão mensal de custos
- [] Revise o AWS Cost Explorer em busca de anomalias
- [] Verifique se há recursos não utilizados (volumes, IPs, instantâneos)
- [] Validar recomendações de dimensionamento correto (AWS Compute Optimizer)
- [] Analisar a cobertura da Instância Reservada/Plano Poupança
- [] Verifique o crescimento do armazenamento S3 e a eficácia da política de ciclo de vida
- [] Revise os custos de transferência de dados (geralmente 10-15% da conta total)
- [] Verifique se os limites de escalonamento automático correspondem aos padrões de tráfego atuais
- [] Verifique se há recursos órfãos de implantações com falha
Perguntas frequentes
Exclua recursos não utilizados. A maioria das contas da AWS tem centenas de dólares por mês em volumes EBS não anexados, IPs elásticos não utilizados, snapshots antigos e instâncias interrompidas. Isso leva menos de uma hora e economiza dinheiro imediatamente. A segunda vitória mais rápida é converter volumes EBS gp2 em gp3 – desempenho igual ou melhor a um custo 20% menor.
Compute Planos de Poupança para a maioria das empresas. Eles oferecem descontos comparáveis às instâncias reservadas, mas com mais flexibilidade – você não fica preso a um tipo de instância específico. Use instâncias reservadas do EC2 somente quando tiver certeza sobre os tipos de instância por 1 a 3 anos.
Use tags de recursos da AWS. Marque cada recurso com tags project, team, environment e cost-center. Habilite tags de alocação de custos no console de faturamento. Crie relatórios do Cost Explorer agrupados por tag para ver os gastos por projeto. Aplique marcação com regras do AWS Config que sinalizam recursos não marcados.
Os contêineres melhoram a utilização de recursos em 30 a 50% em comparação com a execução de um aplicativo por servidor. O ECS Fargate e o EKS simplificam o gerenciamento de contêineres, mas adicionam preços por tarefa. Para a maioria das pequenas e médias empresas, o EC2 com Docker Compose oferece o melhor equilíbrio entre simplicidade e custo. Consulte nosso guia de implantação do Docker para obter detalhes de implementação.
O que vem a seguir
A otimização de custos é uma prática contínua, não um projeto único. Agende revisões mensais de custos e integre o monitoramento de custos à sua configuração de alertas de produção. Para conhecer a estratégia de infraestrutura completa, consulte nosso guia DevOps para pequenas empresas.
Entre em contato com a ECOSIRE para obter consultoria de otimização de custos da AWS ou explore nossos serviços de suporte Odoo para infraestrutura gerenciada com otimização de custos integrada.
Publicado pela ECOSIRE – ajudando as empresas a otimizar os gastos com infraestrutura em nuvem.
Escrito por
ECOSIRE Research and Development Team
Construindo produtos digitais de nível empresarial na ECOSIRE. Compartilhando insights sobre integrações Odoo, automação de e-commerce e soluções de negócios com IA.
Artigos Relacionados
Padrões de gateway de API e práticas recomendadas para aplicativos modernos
Implemente padrões de gateway de API, incluindo limitação de taxa, autenticação, roteamento de solicitações, disjuntores e controle de versão de API para arquiteturas web escaláveis.
Otimização de desempenho de CDN: o guia completo para entrega global mais rápida
Otimize o desempenho da CDN com estratégias de cache, computação de ponta, otimização de imagens e arquiteturas multi-CDN para entrega mais rápida de conteúdo global.
Práticas recomendadas para pipeline de CI/CD: automatize seu caminho para implantações confiáveis
Crie pipelines de CI/CD confiáveis com práticas recomendadas para testes, preparação, automação de implantação, estratégias de reversão e verificação de segurança em fluxos de trabalho de produção.