AWS – Reduzir Custos EC2

AWS – Reduzir Custos EC2

Como reduzir os custos da AWS – EC2 – Elastic Compute Cloud

O presente artigo detalha com a Back4App reduziu os custos da AWS em mais de USD 500 mil. Aqui está um resumo das ações para se reduzir os custos de EC2:

  1. Desligar instâncias não utilizadas
  2. Reduzir instâncias superdimensionadas
  3. Utilizar instâncias reservadas – Economia de até 70%
  4. Utilizar o marketplace da AWS para adquirir instâncias reservadas
  5. Atualize as instâncias para geração mais moderna
  6. Utilizar instâncias SPOT – Economia de até 90% 
  7. Implementar rotinas de auto-scaling
  8. Selecione a região correta da AWS para minimizar custos

O artigo completo está disponível em inglês abaixo.

How to reduce AWS costs?

1. Desligar instâncias não utilizadas

A primeira coisa que você precisa fazer para reduzir os gastos do EC2 é desligar instâncias não utilizadas. Não há mágica aqui, e a maior parte do trabalho é bastante simples. Tudo o que você precisa fazer é listar todas as suas instâncias e categorizar cada uma.

Realize o download da planilha de redução de custo da AWS aqui.

No nosso caso, categorizamos nossas instâncias em três categorias principais:

  • Instâncias que precisam permanecer ativas
  • Instâncias que podem ser paradas
  • Instâncias que podem ser finalizadas

Não pare (stop), mas encerre (terminate) instâncias

Encerre instâncias não utilizadas sempre que possível! Se você parar apenas, manterá os custos do EBS em execução!

2. Reduza instâncias superdimensionadas

A presente ação é um pouco mais complexa e é essencial avaliar o tamanho das instâncias corretamente. Analise pelo menos uma semana de dados para aumentar a probabilidade de dimensionar corretamente a instância. A maneira como controlamos foi categorizar instâncias em 3 categorias principais (faça o download do Excel aqui).

  • Tamanho correto
  • Reduzir tamanho da instância
  • Aumentar tamanho da instância

A maneira de se verificar os dados históricos da instância é super simples e, no painel da AWS, você precisa ir para Serviços, EC2, Instâncias, Instâncias em execução, selecionar instância, monitorar. Um exemplo de métrica que você pode verificar é a utilização da CPU.

Reduza incrementalmente o tamanho das instâncias

Reduza o tamanho da instância passo a passo. Por exemplo, não reduza o tamanho de um tamanho t2.xlarge para t2.medium. Em primeiro lugar, reduza-o de t2.2xlarge para t2.xlarge. Monitore por uma semana, verifique quanto dos recursos estão sendo usados e implemente o ciclo de redução novamente. Dessa maneira, você diminuirá a probabilidade de ter algum tempo de inatividade ou cometer erros.

3. Utilize instâncias reservadas

Ao reservar uma instância, pode-se economizar até 70%. Observe que, ao reservar uma instância, você pagará uma utilização 24/7 durante todo o período reservado. Você pagará independentemente de usar ou não os recursos. Existem dois tipos de instâncias reservadas que oferecem classes:

  • Standard – você pode vender no AWS Marketplace, não pode converter para outro tipo de instância, mais barato que instâncias conversíveis.
  • Conversível – Não é possível vender no AWS Marketplace, pode ser convertido para outro tipo de instância, mais caro que as instâncias Standard.

Instâncias conversíveis podem ser perigosas

Toda vez que você converte uma instância, você pode apenas aumentar o uso. Por exemplo, vamos considerar a seguinte situação.

  • Você adquiriu uma instância reservada conversível t3.medium.
  • Você decidiu converter a instância t3.medium em uma instância m5.large.

Você será capaz de fazer isso! Depois de usar a instância m5.large por um tempo, você deseja voltar à instância t3.medium original.

Isso não é mais possível!

 Você não pode fazer o downgrade de uma instância conversível, mas apenas aumentar o valor gasto com ela. Portanto, certifique-se de começar com pequenas instâncias conversíveis e aumentá-lo ao longo do tempo. Não comece com uma instância grande porque você não pode fazer o downgrade ou a venda no AWS Marketplace. Se você cometer um erro com instâncias reservadas conversíveis, estará comprometido com um pagamento mensal por 12 ou 36 meses. No Back4App, a maneira como lidamos com instâncias conversíveis está sempre adquirindo o t2.nano e atualizando-o quando necessário.

Eu prefiro instâncias reservadas do tipo Standard a instâncias reservadas conversíveis. Os motivos são:

  • Elas são mais baratas
  • Elas têm liquidez – é possível vender no AWS Marketplace a qualquer momento
  • Você pode comprar no AWS Marketplace com desconto

4. Use o AWS Marketplace para instâncias reservadas

As instâncias reservadas são ótimas, mas as instâncias reservadas compradas no AWS Marketplace são ainda melhores!

O AWS Marketplace pode ser muito mais barato

O AWS Marketplace parece uma bolsa de valores! Às vezes, você pode comprar Instâncias reservadas padrão com preços muito mais acessíveis em comparação com a compra diretamente da AWS. A razão para isso é simples; as empresas às vezes têm instâncias supérfluas de que não estão mais sendo usadas e ainda pagam por isso. Reduzir o preço de tabela é uma ótima maneira de acelerar o processo de venda.

Vou dar agora um exemplo real que aconteceu com o Back4App. Eu estava procurando por quatro instâncias reservadas r4.large. Consegui encontrar instâncias no AWS Marketplace com um desconto de 75% em comparação com os preços sob demanda. A AWS estava vendendo o mesmo tipo de instância reservada com um desconto de 62%.

O AWS Marketplace possui termos de compra flexíveis

A outra vantagem do AWS Marketplace é que você pode comprar instâncias com prazos flexíveis. A AWS fornece apenas 12 meses / 36 meses de opções para adquirir instâncias reservadas. O AWS Marketplace é muito mais flexível! Você pode comprar, por exemplo, instâncias reservadas com prazo de 15 meses pelo mesmo preço de 36 meses. Algumas empresas adquirem reservas de longo prazo (36 meses) e, antes que a reserva expire, elas vendem as instâncias no AWS Marketplace. O novo comprador usará a instância apenas pelo período restante. Por exemplo:

  • Período total reservado: 36 meses
  • Comprador original: usa a instância por 21 meses
  • Comprador pela segunda vez: compre no Marketplace e use-o por mais 15 meses.

O principal desafio para comprar no AWS Marketplace é encontrar instâncias disponíveis. Uma excelente maneira de aumentar a probabilidade de encontrar instâncias é procurar instâncias em várias zonas de disponibilidade e não apenas na zona de disponibilidade que suas instâncias localizam. Assim que você compra, é possível modificar uma instância e alocá-la para uma zona de disponibilidade diferente ou transformá-la em uma instância regional. A maneira de fazer isso é bastante simples e siga as etapas abaixo:

Etapa 1 – Vá para o painel de instâncias reservadas
Etapa 2 – Clique em Comprar instâncias reservadas
Etapa 3 – Na classe da oferta, selecione Padrão
Etapa 4 – No lado superior direito da janela pop-up, selecione “Mostrar apenas ofertas que reservam capacidade”.
Etapa 5 – Clique em Pesquisar
Etapa 6 – Compre uma instância da Zona de disponibilidade 1b
Etapa 7 – Aguarde até que a instância esteja ativa
Etapa 8 – Selecione a instância que foi adquirida
Etapa 9 – Clique no botão Ações
Etapa 10 – Clique em Modificar instâncias reservadas
Etapa 11 – Escopo – Altere AZ ou selecione Região
Etapa 12 – Clique em Continuar
Etapa 13 – Clique em Enviar modificações

Seguir estas etapas permitirá que você compre Instâncias reservadas padrão em qualquer zona de disponibilidade e modifique-a para sua zona de disponibilidade.

AWS Marketplace para empresas brasileiras

Aqui está uma orientação valiosa para usuários que não possuem uma entidade legal dos EUA. Você NÃO poderá vender instâncias reservadas do tipo Standard no Marketplace, a menos que tenha uma entidade legal dos EUA. Se você administra sua empresa fora dos EUA, poderá comprar apenas instâncias no Marketplace, mas não poderá vendê-las.

5. Atualize as instâncias para geração mais moderna

A AWS lança novos tipos de instâncias de tempos em tempos. As instâncias da nova geração são mais acessíveis e têm mais poder de processamento.

Instância de geração antiga

  • c4.large
  • 2 CPUs
  • Memória de 3,75 GiB
  • US $ 0,100 / hora

Instância de nova geração

  • c5.large
  • 2 CPUs
  • Memória de 4 GiB
  • US $ 0,085 / hora

A instância da nova geração é 15% mais barata e tem 6% mais poder de processamento!

Para obter uma comparação completa, por favor, acesse Instâncias EC2 Comparação.

6. Use instâncias SPOT

Eu amo instâncias spot! Você pode economizar 90% com instâncias SPOT  e não exige compromisso a longo prazo! A única desvantagem das instâncias spot é que a AWS pode encerrar essas instâncias com pouco ou nenhum aviso (máximo de 2 minutos). Portanto, esse tipo de instância deve ser usado apenas para cargas de trabalho flexíveis ou tolerantes a falhas.

Use a SpotInst para executar instâncias spot 

Uma maneira segura de executar Instâncias Spot e minimizar o risco de tempo de inatividade é usar a plataforma SpotInst. Este serviço se conectará à sua conta da AWS e gerenciará a alocação de Instâncias Spot. Caso a AWS encerre uma instância, esse serviço substituirá a instância por uma On Demand e evitará o tempo de inatividade. O preço também é bastante inteligente e eles cobram 20% da economia líquida (entre o preço sob demanda e o preço à vista).

Um excelente caso de uso para Instâncias Spot é executar servidores de banco de dados secundários e também dimensionar aplicativos automaticamente. Use o SpotInst para gerenciar a alocação pontual e, provavelmente, você nunca enfrentará nenhum tempo de inatividade relacionado ao uso dessa classe de oferta.

aws-database-spot-instance

7. Implementar rotinas de auto-scaling

O AWS Auto Scaling monitora seus aplicativos e ajusta automaticamente a capacidade de manter um desempenho estável e previsível pelo menor custo possível. Você configura o dimensionamento automático para automatizar o início e a parada das instâncias do EC2. Grupos de dimensionamento automático levam em consideração a utilização de recursos, como CPU, solicitações de API ou horários de início / término.

Para minimizar totalmente os custos, use o Escalonamento automático + Instâncias spot + Instâncias reservadas. Vamos ver essa situação real que enfrentamos aqui no Back4App. As cargas de trabalho em nossos servidores de aplicativos variam ao longo do dia. A quantidade de solicitações que recebemos não é plana e tem picos de uso em horários específicos durante o dia. A maneira como lidamos com esse problema é alocando instâncias reservadas para a linha de base de uso (nível mínimo) e ampliando com instâncias spot. A imagem abaixo é útil para entender a configuração que usamos. Aqui está o quanto você pode economizar:

aws-auto-scaling-spot-reserved

Instâncias reservadas: No Back4App, temos uma combinação de instâncias reservadas padrão de 12 meses / 36 meses. Nossa economia média é de 50% em comparação com os custos sob demanda.

Escalonamento automático: iniciamos / paramos instâncias com base no total de solicitações de API que cada instância recebe. Temos três períodos de pico de uso durante o dia, e a economia comparada a manter os recursos ociosos funcionando 24 horas com carga máxima de trabalho é de cerca de 75%.

Instâncias spot: Temos uma mistura de dois tipos de família em execução no Spotinst para maximizar o tempo de atividade. Nossa economia líquida é de 55% em comparação com os preços sob demanda. Essa é a nossa economia líquida e considera o valor total que temos que pagar ao SpotInst. Executar as instâncias spot diretamente na AWS nos levaria a uma economia aproximada de 70%, mas aumentaria o risco de disponibilidade. Gostamos de jogar pelo seguro e decidimos dar parte da economia ao SpotInst.

8. Selecione a região correta da AWS para minimizar custos

O custo varia de acordo com a região! Escolha a pessoa errada e você acabará pagando muito mais.

  • As regiões mais baratas são: Virgínia do Norte, Ohio e Oregon
  • Regiões mais caras: São Paulo, Sidney e Hong Kong

Veja o seguinte exemplo:

  • 4 x instâncias t3.medium
  • EBS de 30 GB alocado para cada instância
  • Transferência total de dados de 1 TB

Essa configuração custará 102% a mais em São Paulo em comparação com a Virgínia do Norte.

  • Custo de US $ 221,65 / mês em North Virginia
  • $ 449,05 / mês em São Paulo

Centralizar sua operação em uma única região traz benefícios adicionais.

  • Será muito mais fácil gerenciar sua alocação de instâncias reservadas
  • Você não terá a transferência de dados regional.

Na Back4App, não conseguimos centralizar todos os serviços no norte da Virgínia devido à escala de nossa operação e devido às exigências dos clientes. Decidimos criar clusters regionais nos EUA, Europa e Ásia. Centralizamos as operações sob esses clusters e escalamos cada região o máximo que podemos.

Quer saber mais como reduzir os custos da AWS? Leia os artigos abaixo:

Como reduzir os custos de EBS?

Como reduzir os custos de transferencia de dados na AWS?

Como reduzir os custos de S3?


Leave a reply

Your email address will not be published.