View a markdown version of this page

Tutorial: Konfigurieren Sie Ihre EC2-Flotte so, dass Instances mithilfe einer Ressourcengruppe für Kapazitätsreservierungen mit mehreren Kapazitätsreservierungsarten gestartet werden - Amazon Elastic Compute Cloud

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.

Tutorial: Konfigurieren Sie Ihre EC2-Flotte so, dass Instances mithilfe einer Ressourcengruppe für Kapazitätsreservierungen mit mehreren Kapazitätsreservierungsarten gestartet werden

Dieses Tutorial führt Sie durch die Schritte zur Konfiguration einer EC2-Flotte, die Instances für mehrere Kapazitätsreservierungstypen — On-Demand Kapazitätsreservierungen (ODCRs), Kapazitätsblöcke für ML und unterbrechbare Kapazitätsreservierungen — mithilfe einer einzigen Ressourcengruppe für Kapazitätsreservierungen startet.

Sie erfahren, wie Sie eine Ressourcengruppe für Kapazitätsreservierungen erstellen, die verschiedene Kapazitätsreservierungstypen enthält, Ihre EC2-Flotte so konfigurieren, dass die Kapazitätsreservierungstypen in einer bestimmten Reihenfolge priorisiert werden, und optional auf On-Demand Kapazität zurückgreifen, wenn die reservierte Kapazität nicht ausreicht, um Ihr Ziel zu erreichen.

Überlegungen

  • Bei Verwendung werden nur EC2-Flottenanforderungen dieses Typs instant unterstützt. ReservedCapacityOptions

  • Sie müssen in der ReservationTypes Liste explizit angeben, auf welche Kapazitätsreservierungstypen Sie abzielen möchten. EC2 Fleet startet Instances nur mit den von Ihnen angegebenen Kapazitätsreservierungstypen.

  • ReservedCapacityOptionsschließt sich gegenseitig aus mitOnDemandOptions.CapacityReservationOptions. Sie können nicht beide in derselben EC2-Flottenanfrage verwenden.

In diesem Tutorial wird davon ausgegangen, dass Sie bereits die folgenden Kapazitätsreservierungen in Ihrem Konto haben:

  • Ein ODCR (cr-1234567890abcdef1) für p5.48xlarge in us-east-1a

  • Ein ODCR (cr-abcdef1234567890a) für in p4d.48xlarge us-east-1b

  • Ein Kapazitätsblock (cr-0123456789abcdef0) für p5.48xlarge in us-east-1a

  • Eine unterbrechbare Kapazitätsreservierung (cr-9876543210fedcba9) für eingehende p5.48xlarge Eingabenus-east-1a, die Ihnen von einem anderen Konto in Ihrer Organisation zur Verfügung gestellt wurde

Überprüfen der Berechtigungen

Bevor Sie eine EC2-Flotte erstellen, stellen Sie sicher, dass Sie über eine IAM-Rolle mit den erforderlichen Berechtigungen verfügen. Weitere Informationen finden Sie unter EC2-Flotte-Voraussetzungen.

Schritt 1: Erstellen Sie eine Ressourcengruppe für Kapazitätsreservierungen

Erstellen Sie eine Ressourcengruppe für Kapazitätsreservierungen, um die Kapazitätsreservierungen zu speichern, auf die Ihre EC2-Flotte abzielt. Konfigurieren Sie die Gruppe so, dass sie Kapazitätsreservierungen aller Instance-Typen und Kapazitätsreservierungstypen akzeptiert, sodass die Gruppe eine Mischung aus Kapazitätsreservierungstypen speichern kann. Eine schrittweise Anleitung finden Sie unter Kapazitätsreservierungsgruppen.

Anmerkung

Wenn Sie die Gruppe erstellen, geben Sie in der AWS::EC2::CapacityReservationPool Konfiguration keine reservation-type Parameter instance-type oder an. Wenn Sie diese Parameter weglassen, kann die Gruppe Kapazitätsreservierungen aller Instanztypen und Kapazitätsreservierungstypen akzeptieren.

Schritt 2: Kapazitätsreservierungen zur Gruppe hinzufügen

Fügen Sie Ihre Kapazitätsreservierungen der Ressourcengruppe „Kapazitätsreservierung“ hinzu. Sie können eine beliebige Kombination aus ODCRs, Kapazitätsblöcken für ML, unterbrechbaren Kapazitätsreservierungen und UltraServer Kapazitätsblöcken hinzufügen. Fügen Sie für dieses Tutorial die vier Kapazitätsreservierungen hinzu, die zu Beginn dieses Tutorials aufgeführt sind. Eine schrittweise Anleitung finden Sie unter Kapazitätsreservierungsgruppen.

Schritt 3: Eine Startvorlage erstellen

Verwenden Sie den Befehl create-launch-template, um eine Startvorlage zu erstellen, die auf die Ressourcengruppe „Kapazitätsreservierung“ ausgerichtet ist. Wenn Sie es ReservedCapacityOptions in Ihrer EC2-Flottenkonfiguration verwenden, müssen Sie MarketType in der Startvorlage keine festlegen — EC2 Fleet legt dies automatisch für jeden Kapazitätsreservierungstyp fest.

aws ec2 create-launch-template \ --launch-template-name my-cr-resource-group-template \ --launch-template-data \ '{"ImageId": "ami-0123456789example", "CapacityReservationSpecification": {"CapacityReservationTarget": {"CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-resource-group"} } }'

Schritt 4: Erstellen Sie eine EC2-Flotte

Erstellen Sie eine EC2-Flotte, die auf mehrere Kapazitätsreservierungstypen in Ihrer Ressourcengruppe für Kapazitätsreservierungen abzielt. Die Schlüsselkonfiguration istReservedCapacityOptions, die Folgendes spezifiziert:

  • ReservationTypes— Eine geordnete Liste der Kapazitätsreservierungstypen, die als Ziel ausgewählt werden sollen. EC2 Fleet arbeitet die Typen in dieser Reihenfolge ab. Gültige Werte sind on-demand-capacity-reservation, capacity-block und interruptible-capacity-reservation.

  • AllocationStrategy— Wie Instance-Typen innerhalb der einzelnen Kapazitätsreservierungstypen priorisiert werden. Stellen Sie diese Option so prioritized ein, dass die Reihenfolge Ihrer Instanztypen beim Überschreiben eingehalten wird.

  • ReservedCapacityFallbackOptions— Auf setzenMarketTypes, ["on-demand"] um On-Demand Instances zu starten, wenn die reservierte Kapazität nicht ausreicht. Wenn Sie keine Ausweichoptionen angeben, greift EC2 Fleet nicht auf einen anderen Markttyp zurück, nachdem die angegebenen Kapazitätsreservierungstypen ausgeschöpft sind.

Erstellen Sie eine Datei mit dem Namen config.json und dem folgenden Inhalt. Ersetzen Sie im folgenden Beispiel die Ressourcenbezeichner durch Ihre eigenen Ressourcenbezeichner.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-cr-resource-group-template", "Version": "1" }, "Overrides": [ { "InstanceType": "p5.48xlarge", "AvailabilityZone": "us-east-1a", "Priority": 1 }, { "InstanceType": "p4d.48xlarge", "AvailabilityZone": "us-east-1b", "Priority": 2 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 100, "DefaultTargetCapacityType": "reserved-capacity" }, "ReservedCapacityOptions": { "ReservationTypes": ["on-demand-capacity-reservation", "capacity-block", "interruptible-capacity-reservation"], "ReservedCapacityFallbackOptions": { "MarketTypes": ["on-demand"] }, "AllocationStrategy": "prioritized" }, "Type": "instant" }

Verwenden Sie den Befehl create-fleet, um die Flotte zu starten:

aws ec2 create-fleet --cli-input-json file://config.json

Weitere Informationen finden Sie unter Erstellen einer EC2-Flotte.

Wie EC2 Fleet Kapazitätsreservierungen löst

Basierend auf der vorherigen Konfiguration versucht EC2 Fleet, Instances in der folgenden Reihenfolge zu starten:

  1. ODCRs — zuerst p5.48xlarge Reservierungen (der Instance-Typ mit der höchsten Priorität) und dann Reservierungen. p4d.48xlarge Wenn innerhalb jedes Instanztyps mehrere ODCRs vorhanden sind, wird eines nach dem Zufallsprinzip ausgewählt.

  2. Kapazitätsblöcke — Wenn in allen ODCRs keine verfügbare Kapazität mehr verfügbar ist, zielt EC2 Fleet auf Kapazitätsblöcke ab. p5.48xlargezuerst Reservierungen und dann p4d.48xlarge nach dem Zufallsprinzip innerhalb der einzelnen Instance-Typen.

  3. Unterbrechbare Kapazitätsreservierungen — Wenn in allen Kapazitätsblöcken keine verfügbare Kapazität mehr verfügbar ist, zielt EC2 Fleet auf unterbrechbare Kapazitätsreservierungen ab. p5.48xlargeZuerst Reservierungen und dann p4d.48xlarge nach dem Zufallsprinzip innerhalb der einzelnen Instance-Typen.

  4. On-Demand Fallback — Wenn die reservierte Kapazität nicht ausreicht, um das Ziel von 100 Instances zu erreichen, wird die verbleibende Kapazität als On-Demand Instances gestartet. EC2 Fleet startet diese On-Demand Instances gemäß der Zuweisungsstrategie, die Sie in angeben. OnDemandOptions

Anmerkung

EC2 Fleet löst zuerst den Typ der Kapazitätsreservierung und dann den Instance-Typ innerhalb der einzelnen Kapazitätsreservierungstypen auf. Jeder Kapazitätsreservierungstyp ist vollständig ausgeschöpft, bevor EC2 Fleet zum nächsten Typ in der sortierten Liste wechselt.

(Optional) Schritt 5: Überprüfen Sie die Instance-Eigenschaften

Verwenden Sie den Befehl describe-instances, um zu überprüfen, welchen Kapazitätsreservierungstyp jede Instance verbraucht hat. Von der Flotte gestartete Instances weisen die folgenden Eigenschaften auf.

Eigenschaft On-Demand Wert der Kapazitätsreservierung Wert für den Kapazitätsblock Wert für unterbrechbare Kapazitätsreservierung On-Demand Wert
instance-lifecycle null capacity-block interruptible-capacity-reservation null
capacity-reservation-id Kapazitätsreservierungs-ID verbraucht Kapazitätsreservierungs-ID verbraucht Kapazitätsreservierungs-ID verbraucht Nicht vorhanden
capacity-reservation-specification Gruppen-ARN Gruppe ARN Gruppe ARN Nicht vorhanden

Mit dem folgenden Befehl können Sie Instances nach Ressourcengruppe für Kapazitätsreservierungen filtern:

aws ec2 describe-instances \ --filters "Name=capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn,Values=arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-resource-group"

Bereinigen

Um zu verhindern, dass Gebühren anfallen, beenden Sie die Instances, wenn sie nicht mehr benötigt werden. Beachten Sie, dass Instances, die in Capacity Blocks gestartet wurden, automatisch beendet werden, wenn die Capacity Block-Reservierung endet. Instances, die mit unterbrechbaren Kapazitätsreservierungen gestartet wurden, werden automatisch beendet, wenn der Kapazitätsinhaber die Kapazität zurückfordert.