Utilização de Instâncias Spot

8 minutos para ler

As instâncias spot podem ser um excelente recurso para aumentar a capacidade da sua carga de trabalho de maneira prática e econômica. Porém, deve-se levar em consideração que estas instâncias podem ser interrompidas muito rapidamente se o seu provedor de serviços na nuvem necessitar de capacidade e decidir removê-las. Por isso, é necessário compreender corretamente onde e quando deve-se usá-las e conhecer ferramentas, como recursos de automação, para garantir que a sua carga de trabalho tenha um lugar para ser executada caso a instância seja terminada.

Neste artigo, você encontrará tudo o que você precisa saber sobre como usar instâncias spot para reduzir as suas despesas com serviços em nuvem

O que são Instâncias Spot?

As instâncias SPOT são um formato no qual provedores de serviço (AWS e Azure por exemplo) vendem a capacidade não utilizada do seu poder de processamento por um desconto significativo. 

Para adquiri-las, você participa de uma espécie de leilão. Enquanto houver capacidade, as suas instâncias spot serão executadas. Porém, se o provedor necessitar desta capacidade, ela retoma a sua instância, com um aviso de apenas alguns minutos de antecedência.

A complexidade das Instâncias Spot 

O provedor de serviços oferece a sua capacidade não utilizada a valores com desconto de até 90%, mas as instâncias spot param de funcionar em alguns minutos – ou menos – caso o CSP decidir removê-las. Esse é o motivo pelo qual as instâncias spot são mais difíceis de gerenciar para cargas de trabalho de produção.

Se você possui recursos de computação sobressalentes, não tem garantia de quanto tempo essas capacidades permanecerão disponíveis, pois as interrupções podem ocorrer a qualquer momento. Portanto, você não deve usar as instâncias spot para cargas de trabalho que são essenciais e não podem tolerar interrupções.

Além disso, a quantidade de capacidade disponível vendida como instâncias pode variar muito, de acordo com o tamanho, região, hora do dia e muitos outros fatores. E todos esses fatores estão sujeitos a mudanças frequentes. Até porque a disponibilidade de uma instância spot é baseada na oferta e demanda do mercado. 

Como lidar com interrupções de instâncias

Os provedores oferecem um curto aviso de interrupção. A AWS oferece 2 minutos, enquanto o Azure e o Google apenas 30 segundos. Esse tempo geralmente não é suficiente para encontrar um substituto para a sua instância, a não ser que você utilize ferramentas de automação.

Outro método é ter algumas máquinas pausadas que podem intervir sempre que você perder uma instância. Mas nesse caso as suas economias não serão tão significativas. Portanto, a melhor maneira de lidar com interrupções de instâncias pontuais é por meio da automação.

Por que as instâncias spot podem ser vantajosas?

Algumas de suas cargas de trabalho provavelmente não precisam de máquinas sob demanda o tempo todo. Por causa disso, muitas empresas de tecnologia usam as instâncias spot.

Por exemplo, digamos que você tenha 10 instâncias em execução para um aplicativo que está desenvolvendo. Metade dos delas são reservadas e metade são spot. Em algum ponto, você recebe uma notificação que as instâncias spot serão finalizadas. Se isso acontecer, você perderá metade de sua capacidade. Com a utilização de serviços de automação, essas instâncias podem ser rapidamente redistribuídas antes que essas interrupções causem algum tipo de impacto em sua aplicação.

Mas, se você quiser lidar com a interrupção manualmente e substituir essa capacidade antes que se torne um problema, você poderia solicitar rapidamente uma nova instância dentro do tempo alocado. Outra opção é utilizar uma instância sob demanda, caso não haja instâncias spot disponíveis. Neste cenário, você ainda poderia substituir essas instâncias por instâncias spot algumas horas depois, quando as pressões do mercado forem aliviadas.

Ao não se prender a um plano com instâncias reservadas, você obtém bastante flexibilidade e evita ficar preso ao seu fornecedor. Essa versatilidade é justamente o que torna o uso de instâncias spot uma boa ideia.

Quando usar instâncias spot?

As instâncias spot são recomendadas para complementar a capacidade de suas instâncias sob demanda ou reservadas. Elas podem ser usadas para executar e dimensionar qualquer aplicativo em que o tempo de inatividade ocasional é aceitável.

Uma estratégia para manter um nível mínimo de recursos de computação garantidos para as aplicações é executar um grupo principal de instâncias on-demand e complementá-los com instâncias spot quando surgir a oportunidade.

Outra estratégia, é executar Instâncias spot com uma duração especificada (também conhecidas como blocos spot), que são projetadas para não serem interrompidas e serão executadas continuamente pela duração que você selecionar.

O que fazer antes de obter uma instância spot

1. Conheça a sua carga de trabalho

Antes de começar a negociar as instâncias spot, você precisa saber a quantidade de tempo que o seu aplicativo precisa para concluir um trabalho. Ele lida bem com as interrupções? Você terá uma ferramenta de automação para mover a sua carga de trabalho para outra instância antes que o tempo acabe?

2. Escolha as suas instâncias

Em seguida, é hora de examinar o que o provedor de serviços pode oferecer. Dê uma olhada ao redor e considere a possibilidade de usar instâncias um pouco menos populares. Elas podem vir com uma chance menor de interrupções e permanecer estáveis ​​por mais tempo.

Ao examinar as instâncias disponíveis, certifique-se de verificar a frequência de interrupção, ou seja, a taxa na qual a instância recuperou capacidade durante o mês seguinte.

3. Use instâncias spot quando possivel

Você pode usar as instâncias spot mesmo para as cargas de trabalho mais importantes. Por exemplo, a AWS oferece um tipo de instância spot onde você obtém garantia de tempo ininterrupto por até 6 horas e paga um pouco mais.

Uma instância spot em execução por uma duração predefinida, pode obter um desconto de até 30–50% em comparação com o preço sob demanda.

4. Ofereça o seu preço

Agora é hora de definir o preço máximo que você deseja pagar pela instância spot. A sua instância spot será executada apenas quando o preço de mercado corresponder ao seu lance ou for inferior. 

A regra aqui é usar o preço máximo igual ao preço sob demanda. Afinal, se você definir um valor personalizado e o preço subir, você corre o risco de ser interrompido.

5. Gerencie instâncias spot em grupos

Ao usar grupos de instâncias spot, você pode solicitar vários tipos de instâncias ao mesmo tempo. Como resultado, você aumenta as chances de sempre possuir os recursos necessários para a sua aplicação.

Outra vantagem é que você pode definir um preço máximo por hora para todo o grupo, em vez de um determinado pool spot (um grupo de instâncias com o mesmo tipo, sistema operacional, zona de disponibilidade e plataforma de rede). 

6. Aposte na automação

Você pode evitar o tempo de inatividade de instâncias finalizadas implementando ferramentas de automação. Elas são capazes de gerenciar a sua infraestrutura de nuvem por meio de métodos de escalonamento automático.

Usando uma ferramenta de automação, você pode escolher quanto de sua carga de trabalho será executado em uma instância local e, em seguida, voltar automaticamente para instâncias sob demanda em caso de interrupções.

A automação existe para garantir que a sua carga de trabalho tenha um lugar para ser executada. Ela oferece recursos que permitem reduzir o risco antes mesmo que você receba um aviso de interrupção. Mas, para obter os melhores resultados, você precisa de uma solução que execute ações automatizadas com base em análises preditivas.

Recentemente, a AWS introduziu um novo recurso que permite reequilibrar proativamente as cargas de trabalho em execução nas instâncias do EC2 Spot sem ter que esperar até que a sua instância receba o aviso de interrupção. Ele envia uma notificação quando aumenta o risco de interrupção para uma instância spot que você está usando. Esse sinal chega antes do aviso de interrupção, dando a você tempo para reequilibrar a sua carga de trabalho para instâncias novas ou existentes. Para mais informações, entre em contato conosco.

Posts relacionados

Deixe um comentário