Konfigurieren Sie eine Auto Scaling Scaling-Gruppe für die Verwendung von Instanzgewichten - Amazon EC2 Auto Scaling

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren Sie eine Auto Scaling Scaling-Gruppe für die Verwendung von Instanzgewichten

Wenn Sie mehrere Instance-Typen verwenden, können Sie angeben, wie viele Einheiten jedem Instance-Typ zugeordnet werden sollen, und dann die Kapazität Ihrer Gruppe mit derselben Maßeinheit angeben. Diese Option zur Kapazitätsspezifikation wird als Gewichte bezeichnet.

Nehmen wir einmal an, Sie führen eine rechenintensive Anwendung aus, die mit mindestens 8 vCPUs und 15 GiB RAM am besten funktioniert. Wenn Sie c5.2xlarge als Basiseinheit verwenden, würde jeder der folgenden EC2-Instance-Typen Ihre Anwendungsanforderungen erfüllen.

Beispiel für Instance-Typen
Instance-Typ vCPU Arbeitsspeicher (GiB)
c5.2xlarge 8 16
c5.4xlarge 16 32
c5.12xlarge 48 96
c5.18xlarge 72 144
c5.24xlarge 96 192

Standardmäßig haben alle Instance-Typen unabhängig von ihrer Größe das gleiche Gewicht. Mit anderen Worten: Unabhängig davon, ob Amazon EC2 Auto Scaling einen großen oder kleinen Instance-Typ startet, zählt jede Instance gleich viel für die gewünschte Kapazität der Auto-Scaling-Gruppe.

Bei Gewichtungen weisen Sie jedoch einen Zahlenwert zu, der angibt, wie viele Einheiten jedem Instance-Typ zugeordnet werden sollen. Wenn die Instances beispielsweise unterschiedliche Größen aufweisen, kann eine c5.2xlarge-Instance eine Gewichtung von „2“ haben, und eine (doppelt so große) c5.4xlarge könnte eine Gewichtung von „4“ haben usw. Wenn Amazon EC2 Auto Scaling die Gruppe skaliert, geben die Gewichtungen die Anzahl der Einheiten an, die jede Instance auf die gewünschte Kapazität angerechnet wird.

Die Gewichtungen ändern nicht, welche Instance-Typen Amazon EC2 Auto Scaling startet. Stattdessen tun dies die Zuweisungsstrategien. Weitere Informationen finden Sie unter Zuweisungsstrategien.

Wichtig

Um eine Auto-Scaling-Gruppe so zu konfigurieren, dass sie die gewünschte Kapazität mithilfe der Anzahl der vCPUs oder der Menge des Speichers jedes Instance-Typs erfüllt, empfehlen wir die attributbasierte Auswahl des Instance-Typs. Durch die Einstellung des DesiredCapacityType Parameters wird automatisch die Anzahl der Einheiten angegeben, die jedem Instance-Typ zugeordnet werden sollen, basierend auf dem Wert, den Sie für diesen Parameter festlegen. Weitere Informationen finden Sie unter Erstellen einer gemischten Instances-Gruppe mit attributbasierter Auswahl des Instance-Typs.

Überlegungen

In diesem Abschnitt werden die wichtigsten Überlegungen zur effektiven Implementierung von Gewichtungen erörtert.

  • Wählen Sie einige Instance-Typen aus, die den Leistungsanforderungen Ihrer Anwendung entsprechen. Entscheiden Sie anhand ihrer Fähigkeiten, welches Gewicht jeder Instance-Typ auf die gewünschte Kapazität Ihrer Auto Scaling Scaling-Gruppe angerechnet werden soll. Diese Gewichte gelten für aktuelle und future Fälle.

  • Vermeiden Sie große Gewichtungsunterschiede. Geben Sie beispielsweise nicht die Gewichtung 1 für einen Instance-Typ an, wenn der nächstgrößere Instance-Typ eine Gewichtung von 200 hat. Der Unterschied zwischen der kleinsten und der größten Gewichtung sollte auch nicht extrem sein. Extreme Gewichtsunterschiede können sich negativ auf die Optimierung von Kosten und Leistung auswirken.

  • Geben Sie die gewünschte Kapazität der Gruppe in Einheiten und nicht in Instanzen an. Wenn Sie beispielsweise vCPU-basierte Gewichtungen verwenden, legen Sie die gewünschte Anzahl von Kernen sowie die Mindest- und Höchstzahl fest.

  • Legen Sie die Gewichtungen und die gewünschte Kapazität so fest, dass die gewünschte Kapazität mindestens zwei- bis dreimal größer ist als Ihr größtes Gewicht.

Beachten Sie bei der Aktualisierung vorhandener Gruppen Folgendes:

  • Wenn Sie einer vorhandenen Gruppe Gewichtungen hinzufügen, schließen Sie Gewichtungen für alle derzeit verwendeten Instance-Typen mit ein.

  • Wenn Sie Gewichtungen hinzufügen oder ändern, startet oder beendet Amazon EC2 Auto Scaling Instances, um die gewünschte Kapazität auf der Grundlage der neuen Gewichtungswerte zu erreichen.

  • Wenn Sie einen Instance-Typ entfernen, behalten laufende Instances dieses Typs ihre letzte Gewichtung, auch wenn sie nicht mehr definiert sind.

Verhalten beim Gewichten von Instanzen

Wenn Sie Instance-Gewichtungen verwenden, verhält sich Amazon EC2 Auto Scaling folgendermaßen:

  • Die aktuelle Kapazität wird entweder bei der gewünschten Kapazität oder darüber liegen. Die aktuelle Kapazität kann die gewünschte Kapazität überschreiten, wenn Instances gestartet werden, die die verbleibenden gewünschten Kapazitätseinheiten überschreiten. Angenommen, Sie geben die zwei Instance-Typen c5.2xlarge und c5.12xlarge an und weisen für c5.2xlarge eine Instance-Gewichtung von „2“ und für c5.12xlarge eine von „12“ zu. Wenn 5 Einheiten übrig sind, um die gewünschte Kapazität zu erfüllen, und Amazon EC2 Auto Scaling eine c5.12xlarge bereitstellt, wird die gewünschte Kapazität um sieben Einheiten überschritten.

  • Beim Starten von Instances priorisiert Amazon EC2 Auto Scaling die Verteilung der Kapazität auf die Availability Zones und die Einhaltung der Zuweisungsstrategien gegenüber der Überschreitung der gewünschten Kapazität.

  • Amazon EC2 Auto Scaling kann die maximale Kapazitätsgrenze überschreiten, um das Gleichgewicht zwischen den Availability Zones aufrechtzuerhalten. Dabei werden Ihre bevorzugten Zuweisungsstrategien verwendet. Das von Amazon EC2 Auto Scaling erzwungene feste Limit ist Ihre gewünschte Kapazität zuzüglich Ihres größten Gewichts.

Konfigurieren einer Auto-Scaling-Gruppe zur Verwendung von Gewichtungen

Sie können eine Auto-Scaling-Gruppe für die Verwendung von Gewichtungen konfigurieren, wie in den folgenden AWS CLI Beispielen gezeigt. Weitere Informationen zur Verwendung der Konsole finden Sie unter Erstellen Sie eine Gruppe mit gemischten Instances, indem Sie die Instance-Typen manuell auswählen.

So konfigurieren Sie eine Auto-Scaling-Gruppe zur Verwendung von Gewichtungen (AWS CLI)

Verwenden Sie den create-auto-scaling-groups-Befehl. Der folgende Befehl erstellt zum Beispiel eine neue Auto-Scaling-Gruppe und weist Gewichtungen zu, indem er Folgendes angibt:

  • Der Prozentsatz der Gruppe, die als On-Demand-Instances gestartet werden soll (0)

  • Die Zuordnungsstrategie für Spot-Instances in jeder Availability Zone (capacity-optimized)

  • Die in der Prioritätsreihenfolge zu startenden Instance-Typen (m4.16xlarge, m5.24xlarge)

  • Die Instance-Gewichtungen, die dem relativen Größenunterschied (vCPUs) zwischen Instance-Typen (16, 24) entsprechen

  • Die Subnetze, in denen die Instances gestartet werden sollen (subnet-5ea0c127, subnet-6194ea3b, subnet-c934b782), die jeweils einer anderen Availability Zone entsprechen

  • Beschreibt eine Startvorlage (my-launch-template) und die Version der Startvorlage ($Latest).

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

Die Datei config.json enthält den folgenden Inhalt.

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "m4.16xlarge", "WeightedCapacity": "16" }, { "InstanceType": "m5.24xlarge", "WeightedCapacity": "24" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize": 160, "MaxSize": 720, "DesiredCapacity": 480, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": [] }
So konfigurieren Sie eine vorhandene Auto-Scaling-Gruppe für die Verwendung von Gewichtungen (AWS CLI)

Verwenden Sie den Befehl update-auto-scaling-group. Der folgende Befehl weist beispielsweise den Instance-Typen in einer bestehenden Auto-Scaling-Gruppe Gewichtungen zu, indem er Folgendes angibt:

  • Die in der Prioritätsreihenfolge zu startenden Instance-Typen (c5.18xlarge, c5.24xlarge, c5.2xlarge, c5.4xlarge)

  • Die Instance-Gewichtungen, die dem relativen Größenunterschied (vCPUs) zwischen Instance-Typen (18, 24, 2, 4) entsprechen

  • Die neue, erhöhte gewünschte Kapazität, die größer als das größte Gewicht ist

aws autoscaling update-auto-scaling-group --cli-input-json file://~/config.json

Die Datei config.json enthält den folgenden Inhalt.

{ "AutoScalingGroupName": "my-existing-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "Overrides": [ { "InstanceType": "c5.18xlarge", "WeightedCapacity": "18" }, { "InstanceType": "c5.24xlarge", "WeightedCapacity": "24" }, { "InstanceType": "c5.2xlarge", "WeightedCapacity": "2" }, { "InstanceType": "c5.4xlarge", "WeightedCapacity": "4" } ] } }, "MinSize": 0, "MaxSize": 100, "DesiredCapacity": 100 }
So überprüfen Sie die Gewichtungen mithilfe der Befehlszeile

Verwenden Sie einen der folgenden Befehle:

Beispiel: Spot-Preis pro Einheitsstunde

Die folgende Tabelle vergleicht den stündlichen Preis für Spot-Instances in verschiedenen Availability Zones in USA Ost (Nord-Virginia) mit dem Preis für On-Demand-Instances in derselben Region. Bei den angezeigten Preisen handelt es sich um Beispielpreise und nicht um aktuelle Preise. Dies sind Ihre Kosten pro Instance-Stunde.

Beispiel: Spot-Preise pro Instance-Stunde
Instance-Typ us-ost-1a us-ost-1b us-ost-1c On-Demand-Preise
c5.2xlarge 0,180 US-Dollar 0,191 US-Dollar 0,170 US-Dollar 0,34 US-Dollar
c5.4xlarge 0,341 US-Dollar 0,361 US-Dollar 0,318 US-Dollar 0,68 US-Dollar
c5.12xlarge 0,779 US-Dollar 0,777 US-Dollar 0,777 US-Dollar 2,04 US-Dollar
c5.18xlarge 1,207 US-Dollar 1,475 US-Dollar 1,357 US-Dollar 3,06 US-Dollar
c5.24xlarge 1,555 US-Dollar 1,555 US-Dollar 1,555 US-Dollar 4,08 US-Dollar

Mit der Instance-Gewichtung können Sie Ihre Kosten auf Grundlage Ihrer Verwendung pro Einheitsstunde bewerten. Der Preis pro Einheitsstunde lässt sich bestimmen, indem der Preis für einen Instance-Typ durch die Anzahl an Einheiten geteilt wird, den er darstellt. Bei On-Demand-Instances entspricht der Preis pro Einheitsstunde bei der Bereitstellung eines Instance-Typs dem Preis der Bereitstellung desselben Instance-Typs einer anderen Größe. Im Gegensatz dazu variiert der Spot-Preis pro Einheitsstunde nach Spot-Pool.

Das folgende Beispiel zeigt, wie die Berechnung des Spot-Preises pro Stunde mit Instance-Gewichtungen funktioniert. Angenommen, Sie möchten Spot-Instances nur in us-east-1a starten. Der Preis pro Stunde wird in der folgenden Tabelle erfasst.

Beispiel: Spot-Preis pro Einheitsstunde
Instance-Typ us-ost-1a Instance-Gewichtung Preis pro Einheitsstunde
c5.2xlarge 0,180 US-Dollar 2 0,090 US-Dollar
c5.4xlarge 0,341 US-Dollar 4 0,085 US-Dollar
c5.12xlarge 0,779 US-Dollar 12 0,065 US-Dollar
c5.18xlarge 1,207 US-Dollar 18 0,067 US-Dollar
c5.24xlarge 1,555 US-Dollar 24 0,065 US-Dollar