¿Por qué el precio spot de AWS EC2 es mayor que el precio a pedido?


27

Intenté aprovisionar instancias spot a través de Ansible ayer, y casi todas mis solicitudes fallaron, incluso cuando puse mi precio spot == el precio a pedido de esa instancia.

Entonces, cuando eché un vistazo al gráfico de precios spot, encontré algo muy interesante:

ingrese la descripción de la imagen aquí

El precio spot de la instancia en us-east-1a es más que el precio a pedido, lo que me confundió. [de hecho, ~ 5 veces más alto]

¿No se prefieren las instancias puntuales por el bajo costo? En caso afirmativo, ¿por qué el precio es más alto que el precio a pedido?

Según los documentos de AWS :

Las instancias puntuales le brindan acceso a la capacidad de Amazon EC2 no utilizada con grandes descuentos en relación con los precios bajo demanda.

Además, ¿esto significa que las personas están pujando por el precio a pedido? En caso afirmativo, ¿por qué? ¿No están mejor con una instancia a pedido?

¿O entendí mal el concepto de instancias puntuales?


Si el precio spot siempre fue menor que el precio a pedido, ¿por qué existiría el precio a pedido?
Zach Lipton

2
Zach, porque Amazon puede terminar su instancia a voluntad si hay un mejor postor.
Xiong Chiamiov

1
No importa cuál sea el motivo: puede minimizar el riesgo implementando las reglas de mejores prácticas para instancias puntuales: aws.amazon.com/ec2/spot/getting-started : cree la solicitud para tantos tipos de instancias y tantas AZ. como sea posible, de esa manera puede mitigar la posibilidad de que pagará más. Si paga un poco más en una fracción de tiempo y sustancialmente menos en todos los demás casos, esto sigue siendo beneficioso para usted. Además, parece que el algoritmo con muchas instancias pequeñas puede ser mucho más seguro que grandes cargas de trabajo de un solo nodo aws.amazon.com/ec2/spot/instance-advisor
Petr Chloupek

Respuestas:


23

Este es en realidad un gran ejemplo de personas que abusan un poco del lugar. La gente dice: "Nuestra carga de trabajo es realmente importante, pero no queremos pagar el precio total de la demanda", por lo que establecen un precio de oferta más alto que el de la demanda, suponiendo que es muy poco probable que se termine, pero aún así quieren obtenga el precio spot "más barato posible" en oferta

Ha habido casos en los que las personas ingresan, por ejemplo, $ 1000 (me han informado al menos una vez que esto sucedió) porque quieren el beneficio del mercado spot. Por supuesto, en algún momento, naturalmente, la demanda entra y el precio spot se dispara para hacer que las personas paguen más que a pedido.

La forma en que funciona el mercado spot es que Amazon tiene capacidad disponible para instancias X, y cuentan de arriba hacia abajo hasta que satisfacen la necesidad de todas las instancias X. El 'precio', entonces, es el precio más bajo al que pueden cumplir esas instancias X.

Entonces, imagine que Amazon tiene 10,000 instancias, bueno, contarán hasta (digamos) $ 0.43 hasta que se cumplan esas 10,000 instancias. Pero si ese suministro cae repentinamente a 100 instancias, entonces tal vez algunas personas pongan precios de oferta de $ 10,000 por sus 100 instancias, de repente pagarán esos $ 10k por hora.

Tl; dr Entienda cómo funciona spot y establezca un límite que esté dispuesto a pagar.


12

Hay 2 razones para esto:

  • Muchos usuarios utilizan la instancia de spot en algunos momentos (piense en el procesamiento por lotes, arranque 100 máquinas como instancia de spot y elimine).

  • Para una instancia spot no paga el precio de oferta, paga el precio spot actual. El precio de licitación es el punto de corte. Si el precio spot actual excede el precio de licitación, AWS terminará esa instancia.

Esto último también es la razón por la que algún usuario hará una oferta excesiva en los precios spot. No quieren que su instancia se cierre de vez en cuando, por lo que ofertan un precio tan alto que el precio spot nunca alcanzará. Como solo pagarán el precio spot actual, la instancia será mucho más barata el 99% del tiempo.


Entonces, en esta imagen en mi pregunta, el precio spot es de $ 2.15 a las 18:00, ¿verdad? lo que significa que las personas siguen pagando $ 2.15 por una instancia, cuando pueden pagar el precio a pedido. ¿Porque?
Dawny33

1
ver mi respuesta (A punto de publicarlo)
Henry

@ Dawny33 A veces, el precio solo sube por encima del umbral por un breve tiempo. Cambiar de precio spot a demanda implica recrear la instancia en una instancia ec2 normal. Si el precio vuelve a caer, la instancia a pedido se ha destruido, una nueva instancia puntual, etc. ... Perder así el tiempo que la instancia podría estar haciendo útil. Algunas personas no pensarán que vale la pena el esfuerzo y solo usarán las instancias puntuales
Thern

6

Puede encontrar un poco de información útil para comprender por qué alguien ofertó por encima del precio a pedido en la Introducción a las instancias puntuales :

Las instancias puntuales se pueden utilizar para ayudarlo a satisfacer necesidades ocasionales de grandes cantidades de capacidad informática (tenga en cuenta que el límite predeterminado para instancias puntuales es 100 frente al límite predeterminado de 20 para instancias bajo demanda). Si sus necesidades son urgentes, puede especificar un precio máximo alto (posiblemente incluso más alto que el precio bajo demanda), que aumentará la prioridad relativa de su solicitud y le permitirá obtener acceso a la mayor capacidad inmediata posible dadas otras solicitudes y la capacidad de Instancia puntual disponible en ese momento.

Si tiene un gran aumento en la demanda de su servicio (quizás esté vinculado desde otro sitio popular, vea el efecto Slashdot ), ofertar por encima del precio a pedido para una instancia puntual lo ayudaría a obtener acceso a muchas más instancias, como señalado por el documento.

Por supuesto, esto no es sostenible a largo plazo, y obtendría un trato mucho mejor para un cómputo a largo plazo simplemente comprando instancias bajo demanda (¡además, hay menos riesgo de ser superado!).

Si se encuentra en una situación en la que necesita mucha potencia informática, rápido , más de lo que podría obtener simplemente comprando instancias bajo demanda, la sobreoferta podría tener sentido.


3

Si observa los gráficos detenidamente, verá que un pico siempre es de muy corta duración, el tiempo justo para que los sistemas de monitoreo automatizados escritos por el propietario terminen esos sistemas con gracia. Además, ocasionalmente encontrará que el precio baja a 0 inmediatamente después de un pico. Esto se debe a que todos los sistemas en ese centro de datos están en uso como sistemas bajo demanda, sin sistemas disponibles para precios spot, el precio es efectivamente cero.

Cuando su instancia puntual se marcó para su finalización, aparecerá un mensaje que indica que estará disponible en el sistema en la uri de metadatos local de http://169.254.169.254/latest/meta-data/spot/termination-time . Habrá 3 minutos hasta que termine. Más de tiempo suficiente en la mayoría de los casos para manejar la terminación automáticamente Hacer una oferta por encima del precio de demanda solo es necesario para implementaciones que requieren más de unos minutos para finalizar con gracia.

Si no es posible diseñar su sistema para terminar con gracia, archivar datos, etc. en 3 minutos, puede hacer una oferta más alta que el precio de demanda para ganar tiempo. El sistema puede incluso diseñarse para monitorear proactivamente el precio spot actual y cambiar antes de que el precio suba. Pero para esos momentos, tendrá que tomar una decisión comercial sobre cuánto vale el tiempo para terminar con gracia.

Es una tontería pagar $ 100 / hora por 4-5 horas para mantener su sistema. Sin embargo, si su sistema tardará 30 minutos en finalizar todos los procesos con gracia, puede tomar una decisión comercial sobre cuánto vale perder potencialmente cualquier información o degradar su servicio a escala horizontal. Un sitio de comercio electrónico con una ganancia neta de $ 10,000 por hora sin duda puede pagar $ 1000 para mantener 2 instancias puntuales en funcionamiento durante 15 a 30 minutos, al tiempo que muestra los sistemas de demanda y el archivo de datos.

La aplicación basada en web puede usar Elastic Load Balancer para ayudar a abordar la terminación automáticamente. Un implementador inteligente implementaría un conjunto de scripts para manejar la alerta. Podrían mantener 2 instancias de bajo costo bajo demanda que tienen equilibrio de carga, y luego usar hasta media docena de sistemas de costo medio a través de instancias puntuales para mantener un alto rendimiento y gastar menos de un solo sistema bajo demanda de la misma capacidad.

Deje 3 de ellos pagando hasta $ 100 / hora y 3 de ellos pagando solo hasta la mitad del precio bajo demanda. A medida que AWS termina las instancias, ELB se ajustará automáticamente. Dando al sistema automatizado hasta una hora para ajustar por solo $ 200.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.