Eu estava tentando provisionar instâncias spot via Ansible ontem e quase todas as minhas solicitações falharam, mesmo quando eu coloquei meu preço spot == o preço sob demanda dessa instância.
Então, quando dei uma olhada no gráfico de preços spot, achei algo muito interessante:
O preço à vista da instância em us-east-1a é mais do que o preço sob demanda, o que me confundiu. [de fato, ~ 5x vezes mais]
As instâncias spot não são preferidas pelo baixo custo? Se sim, então por que o preço é mais alto que o preço sob demanda?
De acordo com os documentos da AWS :
As instâncias spot fornecem acesso à capacidade não utilizada do Amazon EC2 com grandes descontos em relação aos preços sob demanda.
Além disso, isso significa que as pessoas estão fazendo lances acima do preço sob demanda? Se sim, então por que? Eles não estão melhor com uma instância sob demanda?
Ou entendi errado o conceito de instâncias spot?
fonte
Respostas:
Este é realmente um ótimo exemplo de pessoas que abusam levemente do local. As pessoas estão dizendo 'Nossa carga de trabalho é realmente importante, mas não queremos pagar o preço total sob demanda'; portanto, eles definem um preço de oferta mais alto do que sob demanda, na suposição de que é muito improvável que seja encerrado, mas ainda assim obtenha o preço spot 'mais barato possível' em oferta.
Houve casos em que as pessoas inserem, por exemplo, US $ 1000 (já me disseram sobre pelo menos uma vez que isso aconteceu) porque elas querem o benefício do mercado à vista. Naturalmente, em algum momento, a demanda chega e o preço à vista SOBE para fazer as pessoas pagarem mais do que sob demanda.
A maneira como o mercado spot funciona é que a Amazon tem capacidade de sobra de instâncias X, e elas contam de cima para baixo até preencher a necessidade de todas as instâncias X. O 'preço', então, é o preço mais baixo pelo qual eles podem cumprir essas instâncias X.
Imagine que a Amazon tenha 10.000 instâncias - bem, elas serão contadas até (digamos) $ 0,43 até que essas 10.000 instâncias sejam cumpridas. Mas se esse suprimento cair repentinamente para 100 instâncias, talvez algumas pessoas coloquem preços de oferta de US $ 10.000 para suas 100 instâncias, de repente eles pagarão esses US $ 10 mil por hora.
Tl; dr Entenda como o spot funciona e defina um limite que você está preparado para pagar.
fonte
Existem 2 razões para isso:
Muitos usuários estão usando a instância spot em alguns momentos (pense em processamento em lote, inicialize 100 máquinas como instância spot e faça a trituração).
Para uma instância à vista, você não paga o preço da oferta, paga o preço à vista atual. O preço da oferta é o ponto de corte. Se o preço à vista atual exceder o preço de oferta, a AWS encerrará a instância.
Este último também é o motivo pelo qual alguns usuários superestimam massivamente os preços à vista. Eles não querem que sua instância seja interrompida de vez em quando, então oferecem um preço tão alto que o preço à vista nunca chegará. Como eles pagam apenas o preço spot atual, a instância será muito mais barata 99% do tempo.
fonte
Uma informação útil para entender por que alguém faria um lance acima do preço sob demanda pode ser encontrada na Introdução às instâncias spot :
Se você tem um grande aumento na demanda por seu serviço (talvez esteja vinculado a outro site popular - veja o efeito Slashdot ), fazer lances acima do preço sob demanda de uma instância spot ajudaria você a ter acesso a muito mais instâncias, como observado pelo documento.
Obviamente, isso não é sustentável a longo prazo, e você obteria um acordo muito melhor por uma computação de longo prazo comprando instâncias sob demanda (além de haver menos risco de ser superado!).
Se você estiver em uma situação em que precisa de muita capacidade computacional, rápido - mais do que você poderia obter comprando instâncias sob demanda - a superlotação pode fazer sentido.
fonte
Se você olhar atentamente os gráficos, verá que o pico é sempre de uma duração muito curta - tempo suficiente para que os sistemas de monitoramento automatizados escritos pelo proprietário encerrem esses sistemas normalmente. Além disso, você ocasionalmente descobrirá que o preço cai para 0 imediatamente após um pico. Isso ocorre porque todos os sistemas desse datacenter estão em uso e sob demanda, sem sistemas disponíveis para preços à vista, o preço é efetivamente zero.
Quando sua instância spot sinalizada para término, uma mensagem indicando isso estará disponível no sistema no uri local de metadados de http://169.254.169.254/latest/meta-data/spot/termination-time . Faltam 3 minutos para terminar. Na maioria dos casos, mais do que tempo suficiente para lidar com a rescisão automaticamente. Lances acima do preço de demanda são necessários apenas para implantações que requerem mais de alguns minutos para serem finalizadas normalmente.
Se não for possível projetar seu sistema para terminar normalmente, arquivar dados etc. em 3 minutos, você poderá fazer um lance mais alto que o preço da demanda para ganhar tempo. O sistema pode até ser projetado para monitorar proativamente o preço à vista atual e trocar antes que o preço caia. Mas, naqueles tempos, você precisará tomar uma decisão comercial sobre quanto vale o tempo para terminar normalmente.
É tolice pagar US $ 100 / hora por 4-5 horas para manter seu sistema. No entanto, se o sistema demorar 30 minutos para finalizar todos os processos normalmente, você poderá tomar uma decisão de negócios quanto vale a pena perder potencialmente quaisquer dados ou degradar o serviço dimensionado horizontalmente. Um site de comércio eletrônico com um lucro líquido de US $ 10.000 por hora certamente pode pagar US $ 1000 para manter duas instâncias spot em execução por 15 a 30 minutos, enquanto abre sistemas de demanda e arquiva dados.
O aplicativo baseado na Web pode usar o Elastic Load Balancer para ajudar no endereçamento de terminação automaticamente. Um implementador inteligente colocaria em prática um conjunto de scripts para manipular o alerta. Eles poderiam manter duas instâncias de baixo custo sob demanda com balanceamento de carga - e, em seguida, usar até meia dúzia de sistemas de custo médio por meio de instâncias spot para manter alto desempenho e gastar menos que um único sistema sob demanda com a mesma capacidade.
Deixe 3 deles pagando até US $ 100 / hora e 3 deles pagando apenas até metade do preço sob demanda. À medida que a AWS encerra as instâncias, o ELB se ajusta automaticamente. Dando ao sistema automatizado até uma hora para ajustar por meros US $ 200.
fonte