Reservieren Sie Kapazität in bestimmten Availability Zones mit Kapazitätsreservierungen - 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.

Reservieren Sie Kapazität in bestimmten Availability Zones mit Kapazitätsreservierungen

Mit Amazon EC2 On-Demand-Kapazitätsreservierungen können Sie Rechenkapazität in bestimmten Availability Zones reservieren. Um mit der Nutzung von Kapazitätsreservierungen zu beginnen, erstellen Sie eine Kapazitätsreservierung in einer bestimmten Availability Zone. Nun können Sie Instances in der reservierten Kapazität starten, die Kapazitätsauslastung in Echtzeit anzeigen und die Kapazität nach Bedarf erhöhen oder verringern.

Kapazitätsreservierungen werden entweder als open oder targeted konfiguriert. Wenn die Kapazitätsreservierung open ist, werden neue Instances und vorhandene Instances mit übereinstimmenden Attributen automatisch in der Kapazität der Kapazitätsreservierung ausgeführt. Wenn die Kapazitätsreservierung targeted ist, müssen die Instances speziell für die Ausführung in der reservierten Kapazität ausgerichtet sein.

In diesem Thema wird gezeigt, wie eine Auto-Scaling-Gruppe erstellt wird, die On-Demand-Instanzen in targeted Kapazitätsreservierungen einführt. So haben Sie mehr Kontrolle darüber, wann Sie bestimmte Kapazitätsreservierungen verwenden.

Die grundlegenden Schritte sind:

  1. Erstellen Sie Kapazitätsreservierungen in mehreren Availability Zones, die denselben Instance-Typ, dieselbe Plattform und dieselbe Instance-Anzahl haben.

  2. Gruppenkapazitätsreservierungen mithilfe von AWS Resource Groups.

  3. Erstellen Sie eine Auto-Scaling-Gruppe mit einer Startvorlage, die auf die Ressourcengruppe abzielt, und verwenden Sie dabei dieselben Availability Zones wie die Kapazitätsreservierungen.

Schritt 1: Erstellen von Kapazitätsreservierungen

Der erste Schritt besteht darin, in jeder Availability Zone, in der Ihre Auto-Scaling-Gruppe bereitgestellt wird, eine Kapazitätsreservierung zu erstellen.

Anmerkung

Sie können targeted-Reservierungen nur erstellen, wenn Sie die Kapazitätsreservierungen zum ersten Mal erstellen.

Console
So erstellen Sie Kapazitätsreservierungen
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie Kapazitätsreservierungen (Kapazitätsreservierungen) und dann Create Kapazitätsreservierung (Kapazitätsreservierung erstellen) aus.

  3. Konfigurieren Sie auf der Seite zum Erstellen einer Kapazitätsreservierung die folgenden Einstellungen im Abschnitt Instance-details: Der Instance-Typ, die Plattform und die Availability Zone der Instances, die Sie starten, müssen dem Instance-Typ, der Plattform und der Availability Zone entsprechen, die Sie hier angegeben haben. Andernfalls wird die Kapazitätsreservierung nicht angewendet.

    1. Wählen Sie unter Instance-Typ den Instance-Typ, mit dem in der reservierten Kapazität gestartet werden soll.

    2. Wählen Sie unter Plattform das Betriebssystem für Ihre Instances.

    3. Wählen Sie unter Availability Zone die erste Availability Zone aus, in der Sie Kapazität reservieren möchten.

    4. Wählen Sie unter Gesamtkapazität die Anzahl der Instances aus, die Sie benötigen. Berechnen Sie die Gesamtzahl der Instances, die Sie für Ihre Auto-Scaling-Gruppe benötigen, geteilt durch die Anzahl der Availability Zones, die Sie verwenden möchten.

  4. Wählen Sie unter Details der Kapazitätsreservierung eine der folgenden Optionen aus:

    • Zu einem bestimmten Zeitpunkt — Stornieren Sie die Kapazitätsreservierung automatisch zum angegebenen Datum und zur angegebenen Uhrzeit.

    • Manuell — Reservieren Sie die Kapazität, bis Sie sie ausdrücklich stornieren.

  5. Wählen Sie für Instance-Eignung die Option Gezielt: Nur Instances aus, die auf die Kapazitätsreservierung abzielen.

  6. (Optional) Geben Sie für Tags alle Tags an, die mit der Kapazitätsreservierung verknüpft werden sollen.

  7. Wählen Sie Create (Erstellen) aus.

  8. Notieren Sie unter Kapazitätsreservierung eine der folgenden Optionen aus: Sie benötigen sie, um die Gruppe „Kapazitätsreservierung“ einzurichten.

Wiederholen Sie dieses Verfahren für jede Availability Zone, die Sie für Ihre Auto- Scaling-Gruppe aktivieren möchten, und ändern Sie dabei nur den Wert der Availability Zone-Option.

AWS CLI
So erstellen Sie Kapazitätsreservierungen

Verwenden Sie den folgenden create-capacity-reservationBefehl, um die Kapazitätsreservierungen zu erstellen. Ersetzen Sie die Beispielwerte für --availability-zone, --instance-type, --instance-platform und --instance-count.

aws ec2 create-capacity-reservation \ --availability-zone us-east-1a \ --instance-type c5.xlarge \ --instance-platform Linux/UNIX \ --instance-count 3 \ --instance-match-criteria targeted

Beispiel für die resultierende ID der Kapazitätsreservierung

{ "CapacityReservation": { "CapacityReservationId": "cr-1234567890abcdef1", "OwnerId": "123456789012", "CapacityReservationArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", "InstanceType": "c5.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "Tenancy": "default", "TotalInstanceCount": 3, "AvailableInstanceCount": 3, "EbsOptimized": false, "EphemeralStorage": false, "State": "active", "StartDate": "2023-07-26T21:36:14+00:00", "EndDateType": "unlimited", "InstanceMatchCriteria": "targeted", "CreateDate": "2023-07-26T21:36:14+00:00" } }

Notieren Sie unter Kapazitätsreservierung eine der folgenden Optionen aus: Sie benötigen sie, um die Gruppe „Kapazitätsreservierung“ einzurichten.

Wiederholen Sie diesen Befehl für jede Availability Zone, die Sie für Ihre Auto- Scaling-Gruppe aktivieren möchten, und ändern Sie dabei nur den Wert der Availability Zone--availability-zone-Option.

Schritt 2: Erstellen einer Gruppe für Kapazitätsreservierung

Wenn Sie mit der Erstellung der Kapazitätsreservierungen fertig sind, können Sie sie mithilfe des AWS Resource Groups-Dienstes gruppieren. AWS Resource Groups unterstützt verschiedene Gruppentypen für unterschiedliche Zwecke. Amazon EC2 verwendet eine spezielle Gruppe, die als serviceverknüpfte Ressourcengruppe bezeichnet wird, um eine Gruppe von Kapazitätsreservierungen gezielt anzusprechen. Um mit dieser serviceverknüpften Ressourcengruppe zu interagieren, können Sie das AWS CLI oder ein SDK verwenden, aber nicht die Konsole. Weitere Informationen zu serviceverknüpften Ressourcengruppen finden Sie unter Dienstkonfigurationen für Ressourcengruppen im AWS Benutzerhandbuch Ressourcengruppen.

Um eine Kapazitätsreservierungsgruppe mit dem zu erstellen AWS CLI

Verwenden Sie den Befehl create-group (Gruppe erstellen), um eine Ressourcengruppe zu erstellen, die nur Kapazitätsreservierungen enthalten kann. In diesem Beispiel hat die Ressourcengruppe den Namen my-cr-group.

aws resource-groups create-group \ --name my-cr-group \ --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'

Nachfolgend finden Sie eine Beispielantwort.

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group", "Name": "my-cr-group" }, "GroupConfiguration": { "Configuration": [ { "Type": "AWS::EC2::CapacityReservationPool" }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": [ "AWS::EC2::CapacityReservation" ] } ] } ], "Status": "UPDATE_COMPLETE" } }

Notieren Sie den ARN der neuen Ressourcengruppe. Sie benötigen ihn, um die Startvorlage für Ihre Auto-Scaling-Gruppe einzurichten.

Um Ihre Kapazitätsreservierungen mit der neu erstellten Gruppe zu verknüpfen, verwenden Sie AWS CLI

Verwenden Sie den folgenden Befehl group-resources (Gruppenressourcen), um die Kapazitätsreservierungen der neu erstellten Kapazitätsreservierungs-Gruppe zuzuordnen. Geben Sie für die --resource-arns-Option die Kapazitätsreservierungen anhand ihrer ARNs an. Konstruieren Sie die ARNs unter Verwendung der entsprechenden Region, Ihrer Konto-ID und der Reservierungs-IDs, die Sie zuvor notiert haben. In diesem Beispiel werden die Reservierungen mit den IDs cr-1234567890abcdef1 und cr-54321abcdef567890 in der Gruppe mit dem Namen my-cr-group zusammengefasst.

aws resource-groups group-resources \ --group my-cr-group \ --resource-arns \ arn:aws:ec2:region:account-id:capacity-reservation/cr-1234567890abcdef1 \ arn:aws:ec2:region:account-id:capacity-reservation/cr-54321abcdef567890

Nachfolgend finden Sie eine Beispielantwort.

{ "Succeeded": [ "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" ], "Failed": [], "Pending": [] }

Informationen zum Ändern oder Löschen der Ressourcengruppe finden Sie in der API-Referenz für AWS Ressourcengruppen.

Schritt 3: Eine Startvorlage erstellen

Console
Eine Startvorlage erstellen
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich unter Instances die Option Launch Templates aus.

  3. Wählen Sie Startvorlage erstellen. Geben Sie einen Namen und eine Beschreibung für die anfängliche Version der Startvorlage ein.

  4. Unter Auto-Scaling-Anleitung aktivieren Sie das Kontrollkästchen.

  5. Erstellen Sie die Startvorlage. Wählen Sie ein AMI und einen Instance-Typ, die den Kapazitätsreservierungen entsprechen, die Sie verwenden möchten, und optional ein Schlüsselpaar, eine oder mehrere Sicherheitsgruppen und alle zusätzlichen EBS-Volumes oder Instance-Speicher-Volumes für Ihre Instances.

  6. Erweitern Sie erweiterte Einstellungen und tun Sie Folgendes:

    1. Wählen Sie für Kapazitätsreservierung die Option Ziel nach Gruppe aus.

    2. Wählen Sie unter Kapazitätsreservierung – Zielgruppenspezifisch die Gruppe Kapazitätsreservierungen aus, die Sie im vorherigen Abschnitt erstellt haben, und klicken Sie dann auf Speichern.

  7. Wählen Sie Startvorlage erstellen.

  8. Wählen Sie auf der Bestätigungsseite Create Auto Scaling group (Auto-Scaling-Gruppe erstellen) aus.

AWS CLI
Eine Startvorlage erstellen

Verwenden Sie den folgenden create-launch-templateBefehl, um eine Startvorlage zu erstellen, die angibt, dass die Kapazitätsreservierung auf eine bestimmte Ressourcengruppe abzielt. Ersetzen Sie den Beispielwert für --launch-template-name. Ersetzen Sie c5.xlarge durch den Instance-Typ, den Sie bei der Kapazitätsreservierung verwendet haben, und ami-0123456789EXAMPLE durch die ID des AMI, das Sie verwenden möchten. Ersetzen Sie arn:aws:resource-groups:region:account-id:group/my-cr-group durch den ARN der Ressourcengruppe, die Sie am Anfang des vorherigen Abschnitts erstellt haben.

aws ec2 create-launch-template \ --launch-template-name my-launch-template \ --launch-template-data \ '{"InstanceType": "c5.xlarge", "ImageId": "ami-0123456789EXAMPLE", "CapacityReservationSpecification": {"CapacityReservationTarget": { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:region:account-id:group/my-cr-group" } } }'

Nachfolgend finden Sie eine Beispielantwort.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-0dd77bd41dEXAMPLE", "LaunchTemplateName": "my-launch-template", "CreateTime": "2023-07-26T21:42:48+00:00", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

Schritt 4: Erstellen einer Auto-Scaling-Gruppe

Console

Erstellen Sie Ihre Auto-Scaling-Gruppe wie gewohnt, aber wenn Sie Ihre VPC-Subnetze auswählen, wählen Sie aus jeder Availability Zone ein Subnetz aus, das den von Ihnen erstellten targeted-Kapazitätsreservierungen entspricht. Wenn Ihre Auto-Scaling-Gruppe dann eine On-Demand-Instance in einer dieser Availability Zones startet, wird die Instance in der reservierten Kapazität für diese Availability Zone ausgeführt. Wenn der Ressourcengruppe die Kapazitätsreservierungen ausgehen, bevor Ihre gewünschte Kapazität erreicht ist, starten wir alles, was über die reservierte Kapazität hinausgeht, als reguläre On-Demand-Kapazität.

So erstellen Sie eine simple Auto Scaling-Gruppe
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/ und wählen Sie im Navigationsbereich Auto Scaling Groups (Auto-Scaling-Gruppen) aus.

  2. Wählen Sie in der Navigationsleiste oben auf dem Bildschirm dieselbe aus, AWS-Region die Sie bei der Erstellung der Startvorlage verwendet haben.

  3. Wählen Sie Erstellen einer Auto-Scaling-Gruppe aus.

  4. Geben Sie auf der Seite Startvorlage oder -konfiguration auswählen für Auto-Scaling-Gruppenname einen Namen für Ihre Auto-Scaling-Gruppe ein.

  5. Wählen Sie für Launch template (Startvorlage) eine vorhandene Startvorlage aus.

  6. Wählen Sie unter Launch template version (Version der Startvorlage) aus, ob die Auto-Scaling-Gruppe beim horizontalen Skalieren nach oben die standardmäßige, die neueste oder eine bestimmte Version der Startvorlage verwenden soll.

  7. Überspringen Sie auf der Seite Startoptionen für die Instance auswählen den Abschnitt Anforderungen an den Instance-Typ, um den EC2-Instance-Typ zu verwenden, der in der Startvorlage angegeben ist.

  8. Wählen Sie unter Netzwerk für VPC eine VPC. Die Auto-Scaling-Gruppe muss in derselben VPC erstellt werden wie die Sicherheitsgruppe, die Sie in Ihrer Startvorlage angegeben haben. Wenn Sie in Ihrer Startvorlage keine Sicherheitsgruppe angegeben haben, können Sie eine beliebige VPC auswählen, deren Teilnetze sich in denselben Availability Zones befinden wie Ihre Kapazitätsreservierungen.

  9. Wählen Sie für , Availability Zones und Subnetze aus jeder Availability Zone aus, die Sie einbeziehen möchten, je nachdem, in welchen Availability Zones sich Ihre Kapazitätsreservierungen befinden.

  10. Klicken Sie zweimal auf Weiter.

  11. Geben Sie unter Konfigurieren von Gruppengröße und Skalierungsrichtlinien für Gewünschte Kapazität die anfängliche Anzahl von Instances ein, die gestartet werden sollen. Wenn Sie diese Zahl in einen Wert außerhalb der minimalen oder maximalen Kapazitätsgrenzen ändern, müssen Sie die Werte Mindestkapazität oder Maximalkapazitätaktualisieren. Weitere Informationen finden Sie unter Festlegen von Skalierungslimits für Ihre Auto-Scaling-Gruppe.

  12. Wählen Sie Skip to review (Mit Prüfen fortfahren) aus.

  13. Wählen Sie auf der Seite Review (Prüfen) Create Auto Scaling group (Auto-Scaling-Gruppe erstellen) aus.

AWS CLI
So erstellen Sie eine simple Auto Scaling-Gruppe

Verwenden Sie den folgenden create-auto-scaling-groupBefehl und geben Sie den Namen und die Version Ihrer Startvorlage als Wert für die --launch-template Option an. Ersetzen Sie die Beispielwerte für --auto-scaling-group-name, --min-size, --max-size und --vpc-zone-identifier.

Geben Sie für die Option --availability-zones die Availability Zones an, für die Sie Kapazitätsreservierungen erstellt haben. Wenn Ihre Kapazitätsreservierungen beispielsweise die Zonen us-east-1a und us-east-1b Availability Zones angeben, müssen Sie Ihre Auto-Scaling-Gruppe in denselben Zonen erstellen. Wenn Ihre Auto-Scaling-Gruppe dann eine On-Demand-Instance in einer dieser Availability Zones startet, wird die Instance in der reservierten Kapazität für diese Availability Zone ausgeführt. Wenn der Ressourcengruppe die Kapazitätsreservierungen ausgehen, bevor Ihre gewünschte Kapazität erreicht ist, starten wir alles, was über die reservierte Kapazität hinausgeht, als reguläre On-Demand-Kapazität.

aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --min-size 6 \ --max-size 6 \ --vpc-zone-identifier "subnet-5f46ec3b,subnet-0ecac448" \ --availability-zones us-east-1a us-east-1b

Eine Beispielimplementierung finden Sie in der AWS CloudFormation Vorlage im folgenden AWS GitHub Beispiel-Repository: https://github.com/aws-samples/ aws-auto-scaling-backed - by-on-demand-capacity -reservations/.

Die folgenden verwandten Themen können hilfreich sein, wenn Sie mehr über Kapazitätsreservierungen erfahren.