Wie verteilt die AWS-Autoscaling-Funktion Spot-Instances zwischen AZs?

Wie verteilt die AWS-Autoscaling-Funktion Spot-Instances zwischen AZs?

Ich verwende eine AWS-Autoscaling-Gruppe, die Instanzen auf mehrere AZs verteilt, wobei Spot-Instance-Gebote definiert sind.

Was passiert, wenn der Spotpreis in einer der AZs steigt, sodass die Instanzen in dieser AZ unter dem SPOT-Preis liegen und beendet werden?

Versucht die Autoscaling-Gruppe, die Instanzen gleichmäßig über die AZs zu verteilen? Wird gewartet, bis der Preis in dieser AZ wieder übereinstimmt?

Ich kann dazu keine Dokumentation finden.

Antwort1

Meiner Erfahrung nach versucht die Autoscaling-Gruppe immer, in jeder von ihr verwendeten Verfügbarkeitszone die gleiche Anzahl von Instanzen auszuführen. Ich habe fälschlicherweise Verfügbarkeitszonen hinzugefügt, die keine Instanzen des in der Startkonfiguration angegebenen Typs hatten, und die ASG versuchte trotzdem weiterhin, dort Instanzen zu starten, ohne proportional mehr Instanzen anderswo zu starten.

Antwort2

AutoScaling versucht immer, eine hohe Verfügbarkeit aufrechtzuerhalten. Dies wird hauptsächlich dadurch erreicht, dass die Instanzen gleichmäßig über die AZs (Verfügbarkeitszonen) verteilt werden. Wenn jedoch ein bestimmter Instanztyp in einer AZ nicht gestartet werden kann, wird ein Failover zu einer anderen AZ durchgeführt (sei es aufgrund von Spotpreis/Verfügbarkeit, eines Ausfalls oder einfach mangelnder Verfügbarkeit auf Abruf). Nachdem die gewünschte Kapazität erreicht wurde, wird in regelmäßigen Abständen versucht, eine neue Instanz in der nicht ausgelasteten AZ zu starten, um die Gruppe wieder auszugleichen. https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html#AutoScalingBehavior.InstanceUsage

Wenn Sie eine ASG mit mehreren Instanztypen und Kaufoptionen verwenden, ermittelt sie zunächst, ob sie basierend auf Ihren Einstellungen eine Spot- oder On-Demand-Instanz starten soll. Anschließend versucht sie, basierend auf Ihrer Zuweisungsstrategie einen der von Ihnen ausgewählten Instanztypen zu starten. Wenn der bevorzugte Instanztyp nicht verfügbar ist, probiert sie alle Instanztypen in dieser AZ aus. Wenn in dieser AZ keiner verfügbar ist, probiert sie weiterhin andere AZs aus. Auf diese Weise müsste es ziemlich viele verschiedene Kapazitätspools geben, die alle keine Instanzen starten könnten, damit Sie keine Instanz erhalten.

Es erfolgt KEIN Failover von Spot zu OnDemand, wenn in allen Ihren AZs für einen der ausgewählten Instanztypen keine Spot-Kapazität vorhanden ist.

https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html

verwandte Informationen