Pourquoi le prix au comptant de l'AWS EC2 est-il supérieur au prix à la demande?

27

Hier, j'essayais de fournir des instances spot via Ansible, et presque toutes mes demandes ont échoué, même lorsque j'ai mis mon prix spot == le prix à la demande de cette instance.

Donc, quand j'ai regardé le graphique des prix au comptant, j'ai trouvé quelque chose de très intéressant:

entrez la description de l'image ici

Le prix au comptant de l'instance dans us-east-1a est supérieur au prix à la demande, ce qui m'a dérouté. [en fait, ~ 5 fois plus élevé]

Les instances ponctuelles ne sont-elles pas préférées pour le faible coût? Si oui, pourquoi le prix est-il supérieur au prix à la demande?

Selon les documents d' AWS :

Les instances ponctuelles vous donnent accès à la capacité Amazon EC2 inutilisée à des remises importantes par rapport aux prix à la demande.

En outre, ce que cela signifie que les gens sont enchères sur le prix à la demande? Si oui, alors pourquoi? Ne sont-ils pas mieux lotis avec une instance à la demande?

Ou ai-je mal compris le concept des instances ponctuelles?

Dawny33
la source
Si le prix au comptant était toujours inférieur au prix à la demande, pourquoi le prix à la demande existerait-il?
Zach Lipton
2
Zach, car Amazon peut résilier votre instance à volonté s'il y a un meilleur enchérisseur.
Xiong Chiamiov
1
Quelle qu'en soit la raison - vous pouvez minimiser le risque en mettant en œuvre les règles de bonnes pratiques pour les instances ponctuelles - aws.amazon.com/ec2/spot/getting-started - créez la demande pour autant de types d'instances et autant d'AZ que possible, de cette façon, vous pouvez atténuer la possibilité de payer plus. Si vous payez un peu plus en une fraction de temps et beaucoup moins dans tous les autres cas, cela vous est toujours bénéfique. En outre, il semble que l'algorithme avec de nombreuses petites instances peut être beaucoup plus sûr que les grandes charges de travail à nœud unique aws.amazon.com/ec2/spot/instance-advisor
Petr Chloupek

Réponses:

23

C'est en fait un excellent exemple de personnes qui abusent légèrement de l'endroit. Les gens disent: `` Notre charge de travail est vraiment importante, mais nous ne voulons pas payer le prix à la demande '', ils ont donc fixé un prix d'offre plus élevé que sur demande en supposant qu'il est très peu probable qu'il soit mis fin, mais que nous voulons toujours obtenez le prix au comptant «le moins cher possible».

Il y a eu des cas où des gens entrent, par exemple, 1 000 $ (on m'a dit au moins une fois que cela s'est produit) parce qu'ils veulent bénéficier du marché au comptant. Naturellement, à un moment donné, la demande arrive et le prix au comptant monte en flèche pour faire payer les gens plus cher que sur demande.

Le fonctionnement du marché au comptant est qu'Amazon a une capacité de réserve pour les instances X, et elles comptent de haut en bas jusqu'à ce qu'elles remplissent le besoin de toutes les instances X. Le «prix» est donc le prix le plus bas auquel ils peuvent remplir ces X instances.

Imaginez donc qu'Amazon ait 10000 instances - enfin, elles compteront jusqu'à (disons) 0,43 $ jusqu'à ce que ces 10000 instances soient remplies. Mais si cette offre tombe soudainement à 100 instances, alors peut-être que quelques personnes proposent des prix de 10 000 $ pour leurs 100 instances, soudainement, elles paieront ces 10 000 $ par heure.

Tl; dr Comprenez comment fonctionne Spot et fixez un plafond que vous êtes prêt à payer.

Henri
la source
12

Il y a 2 raisons à cela:

  • De nombreux utilisateurs utilisent l'instance ponctuelle à certains moments (pensez au traitement par lots, démarrez 100 machines en tant qu'instance ponctuelle et supprimez-les).

  • Pour une instance au comptant, vous ne payez pas le prix d'enchère, vous payez le prix au comptant actuel. Le prix d'enchère est le point de coupure. Si le prix au comptant actuel dépasse celui du prix d'enchère, AWS mettra fin à cette instance.

Ce dernier est également la raison pour laquelle certains utilisateurs vont massivement surenchérir sur les prix au comptant. Ils ne veulent pas que leur instance s'arrête de temps en temps, ils proposent donc un prix si élevé que le prix au comptant n'atteindra jamais. Comme ils ne paieront que le prix au comptant actuel, l'instance sera beaucoup moins chère 99% du temps.

Thern
la source
Donc, dans cette image dans ma question, le prix au comptant est de 2,15 $ à 18h00, non? ce qui signifie que les gens paient toujours 2,15 $ pour une instance, lorsqu'ils peuvent payer le prix à la demande. Pourquoi
Dawny33
1
voir ma réponse (sur le point de la poster)
Henry
@ Dawny33 Parfois, le prix ne dépasse le seuil que brièvement. Le passage de la tarification spot à la tarification à la demande implique de recréer l'instance sur une instance ec2 normale. Si le prix baisse à nouveau, l'instance à la demande a été détruite, nouvelle instance spot, ect ... Perdant ainsi du temps, l'instance pourrait être utile. Certaines personnes ne penseront pas que cela en vaut la peine et n'utiliseront que les instances ponctuelles
Thern
6

Des informations utiles pour comprendre pourquoi une personne enchérit sur le prix à la demande se trouvent dans l' introduction aux instances ponctuelles :

Les instances ponctuelles peuvent être utilisées pour vous aider à répondre à des besoins occasionnels de grandes quantités de capacité de calcul (notez que la limite par défaut pour les instances ponctuelles est de 100 contre la limite par défaut de 20 pour les instances à la demande.) Si vos besoins sont urgents, vous pouvez spécifier un prix maximum élevé (peut-être même plus élevé que le prix à la demande), ce qui augmentera la priorité relative de votre demande et vous permettra d'accéder à autant de capacité immédiate que possible compte tenu des autres demandes et de la capacité d'instance Spot disponible à l'époque.

Si vous avez un énorme pic de demande pour votre service (peut-être lié à un autre site populaire - voir l' effet Slashdot ), enchérir au-dessus du prix à la demande pour une instance ponctuelle vous aiderait à accéder à beaucoup plus d'instances, comme noté par le document.

Bien sûr, cela n'est pas viable à long terme, et vous obtiendrez une bien meilleure affaire pour un calcul à long terme en achetant simplement des instances à la demande (en plus, il y a moins de risque d'être surenchéri!).

Si vous êtes dans une situation où vous avez besoin de beaucoup de puissance de calcul, une surenchère peut être logique , plus que ce que vous pourriez obtenir en achetant simplement des instances à la demande.

Aurora0001
la source
3

Si vous regardez attentivement les graphiques, vous verrez qu'un pic est toujours de très courte durée - juste assez de temps pour que les systèmes de surveillance automatisés écrits par le propriétaire mettent fin à ces systèmes avec élégance. De plus, vous constaterez occasionnellement que le prix descend à 0 immédiatement après un pic. En effet, tous les systèmes de ce centre de données sont utilisés comme des systèmes à la demande, sans aucun système disponible pour la tarification au comptant, le prix est effectivement nul.

Lorsque votre instance ponctuelle est signalée pour la résiliation, un message indiquant que cela sera disponible sur le système à l'URI de métadonnées locales de http://169.254.169.254/latest/meta-data/spot/termination-time . Il y aura 3 minutes jusqu'à la fin. Plus que suffisamment de temps dans la plupart des cas pour gérer automatiquement la résiliation. Les enchères supérieures au prix de la demande ne sont nécessaires que pour les déploiements qui nécessitent plus de quelques minutes pour se terminer correctement.

S'il n'est pas possible de concevoir votre système pour qu'il se termine correctement, d'archiver les données, etc. en 3 minutes, vous pouvez placer une enchère supérieure au prix de la demande pour gagner du temps. Le système peut même être conçu pour surveiller de manière proactive le prix au comptant actuel et échanger avant que le prix ne dépasse. Mais pour ces moments-là, vous devrez prendre une décision commerciale sur combien cela vaut pour le temps de se terminer avec élégance.

Il est insensé de payer 100 $ / heure pendant 4-5 heures afin de garder votre système. Cependant, si cela prend 30 minutes à votre système pour mettre fin à tous les processus avec élégance, vous pouvez décider de la valeur potentielle de la perte éventuelle de données ou de la dégradation de votre service à l'échelle horizontale. Un site de commerce électronique avec un bénéfice net de 10000 $ par heure peut certainement se permettre de payer 1000 $ pour maintenir 2 instances ponctuelles en fonctionnement pendant 15 à 30 minutes tout en mettant en place des systèmes de demande et en archivant les données.

Une application basée sur le Web peut utiliser Elastic Load Balancer pour aider à résoudre automatiquement l'arrêt. Un implémenteur intelligent mettrait en place un ensemble de scripts pour gérer l'alerte. Ils pourraient maintenir 2 instances à faible coût sur demande qui sont équilibrées en charge - puis utiliser jusqu'à une demi-douzaine de systèmes à coût moyen via des instances ponctuelles pour maintenir des performances élevées et dépenser moins qu'un seul système à la demande de la même capacité.

Laissez 3 d'entre eux payer jusqu'à 100 $ / heure et 3 d'entre eux ne paient que jusqu'à la moitié du prix à la demande. À mesure qu'AWS met fin aux instances, ELB s'ajustera automatiquement. Donner au système automatisé jusqu'à une heure pour s'ajuster pour seulement 200 $.

garyamort
la source