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:
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?
la source
Réponses:
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.
la source
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.
la source
Des informations utiles pour comprendre pourquoi une personne enchérit sur le prix à la demande se trouvent dans l' introduction aux instances ponctuelles :
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.
la source
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 $.
la source