Otimização de custos da AWS: economize de 30 a 50% em sua conta de infraestrutura em nuvem

Reduza os custos da AWS em 30-50% com dimensionamento correto, instâncias reservadas, instâncias spot, escalonamento automático e estratégias de otimização de armazenamento para aplicativos Web e ERP.

E
ECOSIRE Research and Development Team
|16 de março de 20268 min de leitura1.7k Palavras|

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:

  1. Eliminar desperdício (imediato, sem risco)
  2. Instâncias do tamanho certo (1 a 2 semanas, baixo risco)
  3. Use modelos de precificação (planos reservados, spot, poupança)
  4. 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íduosCusto mensal típicoCorreção
Volumes EBS não anexadosUS$ 10-100 por volumeExcluir ou tirar instantâneo e excluir
Instâncias interrompidas com EBSUS$ 20-200 por instânciaEncerrar ou criar AMI
IPs elásticos não utilizados$ 3,60 cadaLiberação
Instantâneos antigosUS$ 0,05/GBPolítica de ciclo de vida
Gateways NAT superdimensionadosUS$ 32+ por gatewayConsolide 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édiaPico de CPUAçã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 AtualTamanho certoPoupanç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

RecursoInstâncias ReservadasPlanos de poupança computacionalPlanos de Poupança EC2
Desconto30-60%30-54%40-60%
FlexibilidadeTipo/região de instância específicaQualquer instância de família/regiãoFamília/região de instância específica
Compromisso1 ou 3 anos1 ou 3 anos1 ou 3 anos
Melhor paraCargas de trabalho estáveis ​​e previsíveisCargas de trabalho mistasFamí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 armazenamentoPreço por GB/mêsRecuperaçãoMelhor para
PadrãoUS$ 0,023InstantâneoDados ativos
Padrão-IAUS$ 0,0125Instantâneo (recuperação de US$ 0,01/GB)Acesso mensal
Geleira InstantâneaUS$ 0,004Instantâneo (recuperação de US$ 0,03/GB)Acesso trimestral
GeleiraUS$ 0,0041-12 horasAcesso anual
Arquivo ProfundoUS$ 0,0009912 horasConformidade, 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

Qual ​​é a vitória mais rápida para a redução de custos da AWS?

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.

Devemos usar Savings Plans ou Instâncias Reservadas?

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.

Como rastreamos os custos da AWS por projeto ou equipe?

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.

A mudança para contêineres é mais econômica?

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.

E

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.

Converse no WhatsApp