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 EC2 Fleet so, dass On-Demand-Instances mithilfe gezielter Kapazitätsreservierungen gestartet werden
In diesem Tutorial werden Sie durch alle Schritte geführt, die Sie ausführen müssen, damit Ihre EC2 Flotte On-Demand-Instances in targeted
Kapazitätsreservierungen umwandelt.
Sie erfahren, wie Sie eine Flotte so konfigurieren, dass targeted
-On-Demand-Kapazitätsreservierungen zuerst beim Starten von On-Demand-Instances verwendet werden. Außerdem erfahren Sie, wie Sie die Flotte so konfigurieren, dass die Flotte, wenn die gesamte On-Demand-Zielkapazität die Anzahl der verfügbaren ungenutzten Kapazitätsreservierungen überschreitet, die angegebene Zuordnungsstrategie verwendet, um die Instance-Pools auszuwählen, in denen die verbleibende Zielkapazität gestartet werden soll.
EC2 Flottenkonfiguration
In diesem Tutorial ist die Flotte konfiguriert wie folgt:
-
Zielkapazität: 10 On-Demand-Instances
-
Nicht verwendete
targeted
-Kapazitätsreservierungen: 6 (geringer als die On-Demand-Zielkapazität der Flotte von 10 On-Demand-Instances) -
Anzahl der Kapazitätsreservierungspools: 2 (
us-east-1a
undus-east-1b
) -
Anzahl der Kapazitätsreservierungen pro Pool: 3
-
On-Demand-Zuordnungsstrategie:
lowest-price
(Wenn die Anzahl der nicht genutzten Kapazitätsreservierungen kleiner als die On-Demand-Zielkapazität ist, bestimmt die Flotte die Pools, in denen die verbleibende On-Demand-Kapazität basierend auf der On-Demand-Zuordnungsstrategie gestartet werden soll.)Beachten Sie, dass Sie auch die
prioritized
-Zuordnungsstrategie anstelle derlowest-price
-Zuordnungsstrategie verwenden können.
Starten von On-Demand-Instances in targeted-Kapazitätsreservierungen müssen Sie eine Reihe von Schritten wie folgt ausführen:
Schritt 2: Erstellen einer Ressourcengruppe für Kapazitätsreservierung
Schritt 3: Hinzufügen der Kapazitätsreservierungen zur Ressourcengruppe der Kapazitätsreservierung
(Optional) Schritt 4: Anzeigen der Kapazitätsreservierungen in der Ressourcengruppe
(Optional) Schritt 8: Anzeigen der Anzahl der verbleibenden ungenutzten Kapazitätsreservierungen
Schritt 1: Erstellen von Kapazitätsreservierungen
Verwenden Sie den create-capacity-reservationus-east-1a
und weitere drei fürus-east-1b
. Mit Ausnahme der Availability Zone sind die anderen Attribute der Kapazitätsreservierungen identisch.
3 Kapazitätsreservierungen in us-east-1a
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
cr-1234567890abcdef1
3 Kapazitätsreservierungen in us-east-1b
aws ec2 create-capacity-reservation \ --availability-zone us-east-1b \ --instance-type c5.xlarge \ --instance-platform Linux/UNIX \ --instance-count 3 \ --instance-match-criteria targeted
Beispiel für die resultierende ID der Kapazitätsreservierung
cr-54321abcdef567890
Schritt 2: Erstellen einer Ressourcengruppe für Kapazitätsreservierung
Verwenden des resource-groups
-Dienstes und des Befehls create-group (Erstellen einer Gruppe)my-cr-group
. Informationen dazu, warum Sie eine Ressourcengruppe erstellen müssen, finden Sie unter Verwenden Sie Kapazitätsreservierungen, um On-Demand-Kapazität in der EC2 Flotte zu reservieren.
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"]}]}'
Schritt 3: Hinzufügen der Kapazitätsreservierungen zur Ressourcengruppe der Kapazitätsreservierung
Verwenden des resource-groups
-Dienstes und des Befehls group-resources (Gruppenressourcen)
aws resource-groups group-resources \ --group
my-cr-group
\ --resource-arns \ arn:aws:ec2:us-east-1
:123456789012
:capacity-reservation/cr-1234567890abcdef1
\ arn:aws:ec2:us-east-1
:123456789012
:capacity-reservation/cr-54321abcdef567890
Beispielausgabe
{
"Failed": [],
"Succeeded": [
"arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1",
"arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890"
]
}
(Optional) Schritt 4: Anzeigen der Kapazitätsreservierungen in der Ressourcengruppe
Verwenden Sie den resource-groups
Dienst und den list-group-resources
aws resource-groups list-group-resources --group
my-cr-group
Beispielausgabe
{
"ResourceIdentifiers": [
{
"ResourceType": "AWS::EC2::CapacityReservation",
"ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1"
},
{
"ResourceType": "AWS::EC2::CapacityReservation",
"ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890"
}
]
}
Schritt 5: Erstellen einer Startvorlage, die angibt, dass die Kapazitätsreservierung auf eine bestimmte Ressourcengruppe abzielt
Verwenden Sie den create-launch-templatetargeted
-Kapazitätsreservierungen verwenden, die einer Ressourcengruppe hinzugefügt wurden. Daher geben die Startvorlagendaten an, dass die Kapazitätsreservierung auf eine bestimmte Ressourcengruppe ausgerichtet ist. In diesem Beispiel hat die Startvorlage den Namen my-launch-template
.
aws ec2 create-launch-template \ --launch-template-name
my-launch-template
\ --launch-template-data \ '{"ImageId": "ami-0123456789example
", "CapacityReservationSpecification": {"CapacityReservationTarget": { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1
:123456789012
:group/my-cr-group
" } } }'
(Optional) Schritt 6: Beschreiben der Startvorlage
Verwenden Sie den describe-launch-template-versions
aws ec2 describe-launch-template-versions --launch-template-name
my-launch-template
Beispielausgabe
{
"LaunchTemplateVersions": [
{
"LaunchTemplateId": "lt-01234567890example",
"LaunchTemplateName": "my-launch-template",
"VersionNumber": 1,
"CreateTime": "2021-01-19T20:50:19.000Z",
"CreatedBy": "arn:aws:iam::123456789012:user/Admin",
"DefaultVersion": true,
"LaunchTemplateData": {
"ImageId": "ami-0947d2ba12ee1ff75",
"CapacityReservationSpecification": {
"CapacityReservationTarget": {
"CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group"
}
}
}
}
]
}
Schritt 7: Erstellen Sie eine EC2 Flotte
Erstellen Sie eine EC2 Flotte, die die Konfigurationsinformationen für die Instances angibt, die gestartet werden sollen. Die folgende EC2 Flottenkonfiguration zeigt nur die relevanten Konfigurationen für dieses Beispiel. Die Startvorlage my-launch-template
ist die Startvorlage, die Sie in Schritt 5 erstellt haben. Es gibt zwei Instance-Pools mit jeweils demselben Instance-Typ (c5.xlarge
), aber mit unterschiedlichen Availability Zones (us-east-1a
und us-east-1b
). Der Preis der Instance-Pools ist derselbe, da die Preise für die Region und nicht für die Availability Zone definiert sind. Die gesamte Zielkapazität beträgt 10 und der Standardzielkapazitätstyp ist on-demand
. Die On-Demand-Zuordnungsstrategie ist lowest-price
. Die Nutzungsstrategie für Kapazitätsreservierungen ist use-capacity-reservations-first
.
Anmerkung
Der Flottentyp muss instant
sein. Andere Flotten-Typen unterstützen use-capacity-reservations-first
nicht.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "
my-launch-template
", "Version": "1" }, "Overrides": [ { "InstanceType": "c5.xlarge
", "AvailabilityZone": "us-east-1a
" }, { "InstanceType": "c5.xlarge
", "AvailabilityZone": "us-east-1b
" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity":10
, "DefaultTargetCapacityType": "on-demand
" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price
", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant" }
Nachdem Sie die instant
-Flotte mit der vorherigen Konfiguration erstellt haben, werden die folgenden 10 Instances gestartet, um die Zielkapazität zu erreichen:
-
Die Kapazitätsreservierungen werden zuerst verwendet, um 6 On-Demand-Instances wie folgt zu starten:
-
3 On-Demand-Instances werden in die 3
c5.xlarge
targeted
Kapazitätsreservierungen inus-east-1a
gestartet -
3 On-Demand-Instances werden in die 3
c5.xlarge
targeted
Kapazitätsreservierungen inus-east-1b
gestartet
-
-
Um die Zielkapazität zu erreichen, werden 4 zusätzliche On-Demand-Instances gemäß der On-Demand-Zuordnungsstrategie in die reguläre On-Demand-Strategie gestartet, die in diesem Beispiel
lowest-price
ist. Da die Pools jedoch denselben Preis haben (da der Preis pro Region und nicht pro Availability Zone ist), startet die Flotte die restlichen 4 On-Demand-Instances in einem der Pools.
(Optional) Schritt 8: Anzeigen der Anzahl der verbleibenden ungenutzten Kapazitätsreservierungen
Nach dem Start der Flotte können Sie optional starten, describe-capacity-reservations
{ "CapacityReservationId": "cr-111",
"InstanceType": "c5.xlarge",
"AvailableInstanceCount": 0
}
{ "CapacityReservationId": "cr-222",
"InstanceType": "c5.xlarge",
"AvailableInstanceCount": 0
}