Por que o preço à vista do AWS EC2 é maior que o preço sob demanda?


27

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:

insira a descrição da imagem aqui

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?


Se o preço à vista sempre foi menor que o preço sob demanda, por que o preço sob demanda existe?
Zach Lipton

2
Zach, porque a Amazon pode encerrar sua instância à vontade se houver um lance mais alto.
Xiong Chiamiov

11
Independentemente do motivo, é possível minimizar o risco implementando as regras de práticas recomendadas para instâncias spot - aws.amazon.com/ec2/spot/getting-started - crie a solicitação para tantos tipos de instâncias quanto AZs quanto possível, você pode reduzir a possibilidade de pagar mais. Se você pagar um pouco mais em uma fração de tempo e substancialmente menos em todos os outros casos, isso ainda será benéfico para você. Além disso, parece que o algoritmo com muitas instâncias pequenas pode ser muito mais seguro que grandes cargas de trabalho de nó único aws.amazon.com/ec2/spot/instance-advisor
Petr Chloupek -

Respostas:


23

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.


12

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.


Então, nesta foto da minha pergunta, o preço à vista é de US $ 2,15 às 18:00, certo? o que significa que as pessoas ainda estão pagando US $ 2,15 por exemplo, quando podem pagar o preço sob demanda. Por quê?
Dawny33

11
veja a minha resposta (Sobre a postá-lo)
Henry

@ Dawny33 Às vezes, o preço sobe acima do limite por um breve período. Mudar do preço spot para on demand envolve recriar a instância em uma instância normal do ec2. Se o preço cair novamente, a instância sob demanda será destruída, nova instância à vista, etc ... Perdendo tempo, a instância poderá ser útil. Algumas pessoas não vão pensar que isso vale a pena o esforço e só vai usar as Instâncias Spot
Thern

6

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 :

Instâncias spot podem ser usadas para ajudá-lo a atender necessidades ocasionais de grandes quantidades de capacidade de computação (observe que o limite padrão para instâncias spot é 100 versus o limite padrão de 20 para instâncias sob demanda.) Se suas necessidades forem urgentes, você poderá especificar um preço máximo alto (possivelmente até mais alto do que o preço sob demanda), que aumentará a prioridade relativa de sua solicitação e permitirá que você obtenha acesso ao máximo de capacidade imediata possível, considerando outras solicitações e a capacidade da Instância spot disponível no momento.

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.


3

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.