Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Spot instances decifradas: maximize o uso e a economia com Auto Scaling groups e Spot Scaling

By Matan BordoDec 12, 20236 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

Veja como otimizar o uso de Spot instances com Auto Scaling groups (ASGs), com estratégias para diferentes cenários, e como ampliar a economia usando o DoiT Spot Scaling.

Na primeira parte da nossa série sobre Spot instances, falamos sobre os conceitos fundamentais por trás delas, seus benefícios e os principais pontos de atenção para usá-las com eficiência.

Agora, vamos avançar e mostrar como otimizar o uso das Spot instances com Auto Scaling groups (ASGs) e detalhar as estratégias de alocação Spot, indicando qual delas se encaixa melhor em cada cenário e por quê.

Por fim, vamos mostrar como turbinar sua economia com o DoiT Spot Scaling, que simplifica todo o processo de configurar e gerenciar ASGs para uso de Spot instances.

Auto Scaling groups (ASGs): o que são

ASGs são um mecanismo para gerenciar grupos de instâncias. Eles deixam suas workloads mais elásticas, ajustando automaticamente o número de instâncias provisionadas conforme a demanda, e ainda ajudam a aumentar a tolerância a falhas.

Escalar para cima quando a demanda cresce garante desempenho e capacidade de resposta; já escalar para baixo em períodos de menor demanda ajuda a cortar custos desnecessários.

Você pode definir os tipos de instância e as zonas de disponibilidade permitidos, os limites mínimo e máximo de instâncias e a política de instâncias mistas (porcentagem de Spot instances vs. instâncias on-demand), entre outras configurações. Mas, depois de configurados, os ASGs automatizam grande parte do gerenciamento de recursos.

Diagrama de Auto Scaling group

Por exemplo: se você tem um e-commerce, fica muito mais fácil reagir às variações de tráfego usando Auto Scaling groups.

Lidar com essas oscilações manualmente exigiria monitoramento constante e respostas rápidas para evitar quedas ou lentidão — o que poderia comprometer a experiência do usuário e gerar perda de receita.

ASGs e Spot instances

Os ASGs são especialmente importantes no contexto das Spot instances, porque ajudam a lidar com as interrupções e a otimizar o uso, substituindo automaticamente as Spot instances interrompidas por novas.

Apesar de os ASGs não distribuírem diretamente as workloads entre as instâncias, eles garantem que o número desejado de instâncias esteja sempre disponível. A distribuição das workloads ou das requisições web entre essas instâncias geralmente fica por conta de serviços como o Elastic Load Balancer. Os ASGs trabalham em conjunto com esses load balancers para direcionar automaticamente o tráfego para cada nova instância criada, equilibrando a distribuição com eficiência.

Outro ponto: eles permitem usar diferentes tipos de instância dentro do mesmo grupo. Assim, você consegue aproveitar várias Spot instances combinando disponibilidade e custo.

Estratégias de alocação Spot

Ao configurar seus Auto Scaling groups, uma das definições essenciais é a Spot Allocation Strategy. Confira as diferentes abordagens para dar lance e conseguir Spot instances:

Lowest price

A estratégia Lowest price mira nos pools de instâncias mais baratos disponíveis. Como ela prioriza o preço em vez da capacidade, não há garantia de que haverá capacidade suficiente nesses pools, o que aumenta o risco de interrupção.

Faz sentido usá-la, por exemplo, em um pipeline de análise de dados que processa grandes volumes. Esse pipeline pode rodar seus jobs nos períodos de preços Spot mais baixos com a estratégia lowest-price. As interrupções em períodos de preços mais altos têm impacto mínimo, já que o processamento pode ser retomado quando os preços caírem novamente.

Capacity-optimized

A estratégia Capacity-optimized prioriza pools de instâncias com maior capacidade ociosa, o que significa um risco menor de interrupção.

Use essa estratégia quando alta disponibilidade for crítica e sua workload precisar de um pool de instâncias mais estável, com menos interrupções.

Por exemplo, se você opera um serviço de streaming, a disponibilidade vem em primeiro lugar — afinal, ninguém quer estragar a experiência de quem está assistindo.

Diversified

A estratégia Diversified distribui a alocação de Spot instances por todos os pools disponíveis.

Aposte nela quando tiver flexibilidade para usar vários tipos de instância ou múltiplas zonas de disponibilidade, aumentando as chances de conseguir capacidade.

Costuma ser a melhor escolha se você atua em várias regiões ou roda diversas aplicações, cada uma com requisitos de recursos diferentes.

Price & capacity-optimized

A estratégia Price & capacity-optimized equilibra preço e disponibilidade, oferecendo as melhores chances de obter capacidade Spot sem abrir mão da estabilidade.

É ideal para situações em que a demanda varia ao longo do dia, mas você oferece serviços que exigem alta disponibilidade — como um e-commerce, por exemplo.

O que pode dar errado com Spot instances em ASGs?

Existem duas preocupações principais entre os clientes da AWS na hora de incluir Spot instances — ou ampliar seu uso — nos ASGs: 1) confiabilidade e 2) complexidade de configuração.

Como as Spot instances podem ser interrompidas pela AWS com apenas dois minutos de aviso, isso pode afetar a confiabilidade da aplicação. Como já comentamos, esse impacto pode ser pequeno dependendo do caso de uso.

O ponto mais crítico é que implementar Spot instances em Auto Scaling Groups pode ser desafiador, já que exige uma configuração cuidadosa de launch templates, políticas de instâncias mistas e outros parâmetros.

Além disso, chegar à configuração ideal para que seus ASGs rodem de forma confiável e econômica com Spot instances exige uma análise complexa de várias variáveis. É preciso escolher os tipos de instância certos, AZs, VPCs e estratégias de alocação adequadas, entre outros fatores, para garantir capacidade e economia máximas com Spot instances. Isso pode envolver especificar múltiplas Availability Zones, definir políticas de scaling e fazer integração com outros serviços da AWS.

Spot Scaling

O DoiT Spot Scaling ajuda você a adotar — e, com isso, economizar com — Spot instances, recomendando configurações de boas práticas para seus ASGs.

Ele gerencia a composição de instâncias dos seus Auto Scaling Groups (ASGs) para que você aproveite as Spot instances sem se preocupar com interrupções.

Veja, por exemplo, este Auto Scaling group, que poderia ser configurado de forma muito melhor para maximizar economia e disponibilidade com Spot. Na configuração atual, ele permite apenas um tipo de instância e só aceita instâncias on-demand.

O Spot Scaling, por sua vez, recomenda tipos de instância adicionais com atributos semelhantes aos selecionados, ampliando o número de pools de instâncias que você pode aproveitar.

Ao habilitar mais tipos de instância e zonas de disponibilidade, você reduz as chances de ficar sem Spot instances.

Caso não haja capacidade disponível em nenhum dos pools, o Spot Scaling volta automaticamente para instâncias on-demand (mesmo que sua política de instâncias mistas esteja em 100% Spot), até que as Spot instances voltem a ficar disponíveis.

Tudo o que você precisa fazer é revisar as recomendações, ajustá-las como preferir e clicar em "Apply Recommendations". A partir daí, o Spot Scaling cuida desse ASG para você.

Como a CattleEye reduziu em mais de 60% os gastos com EC2 usando Spot Scaling

Rodando pipelines de inferência no AWS Batch, a CattleEye aplica visão computacional em câmeras comuns para monitorar vacas e analisar imagens, melhorando o bem-estar de mais de um milhão de animais.

Mas analisar vacas em tempo real exige muito poder computacional, e o AWS EC2 responde pela maior parte dos custos da CattleEye. No início, eles usavam instâncias com GPU, o que dificultava o aproveitamento das Spot instances. Além disso, faltava tempo para pesquisar outras opções de instância que permitissem ampliar o uso de Spot.

A CattleEye passou a usar o Spot Scaling para adotar Spot instances de forma mais consistente. Antes, a empresa dependia 100% de instâncias on-demand; hoje, o processamento em batch roda 100% em Spot instances — e, com isso, economiza mais de 60% em EC2.

Faça um tour interativo pelo Spot Scaling aqui

Configurar e gerenciar Spot instances em ASGs pode parecer assustador, mas ferramentas como o DoiT Spot Scaling simplificam o processo. Ao recomendar configurações ideais e gerenciar a composição das instâncias de forma dinâmica, o Spot Scaling garante a maior economia possível com Spot, sem comprometer a disponibilidade.

Se você usa instâncias EC2 com Auto Scaling groups, saiba mais sobre o Spot Scaling aqui ou fale com a gente para descobrir como a DoiT pode ajudar a otimizar seus custos de computação com Spot instances e sua conta de cloud como um todo.