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.
Sie können die Flottenskalierung mithilfe der AWS Command Line Interface (AWS CLI) einrichten und verwalten. Für erweiterte Funktionen wie das Einrichten mehrerer Skalierungsrichtlinien oder das Festlegen von Abklingzeiten für Scale-In und Scale-Out verwenden Sie die CLI. AWS Bevor Sie Befehle für Skalierungsrichtlinien ausführen können, müssen Sie Ihre Flotte als skalierbares Ziel registrieren. Verwenden Sie dazu den folgenden Befehl: register-scalable-target
aws application-autoscaling register-scalable-target --service-namespace appstream \ --resource-id fleet/
fleetname
\ --scalable-dimension appstream:fleet:DesiredCapacity \ --min-capacity 1 --max-capacity 5
Beispiele
Beispiel 1: Anwenden einer Skalierungsrichtlinie, die auf der Kapazitätsnutzung basiert
Beispiel 3: Anwenden einer Skalierungsrichtlinie, die auf geringer Kapazitätsnutzung basiert
Beispiel 4: Ändern der Flottenkapazität basierend auf einem Zeitplan
Beispiel 5: Anwenden einer Richtlinie für die Zielverfolgungsskalierung
Beispiel 1: Anwenden einer Skalierungsrichtlinie, die auf der Kapazitätsnutzung basiert
In diesem AWS CLI-Beispiel wird eine Skalierungsrichtlinie eingerichtet, die eine Flotte um 25% skaliert, wenn die Auslastung >= 75% beträgt.
Der folgende put-scaling-policyBefehl definiert eine nutzungsbasierte Skalierungsrichtlinie:
aws application-autoscaling put-scaling-policy --cli-input-json file://scale-out-utilization.json
Der Inhalt der Datei scale-out-utilization.json
ist wie folgt:
{
"PolicyName": "policyname
",
"ServiceNamespace": "appstream",
"ResourceId": "fleet/fleetname
",
"ScalableDimension": "appstream:fleet:DesiredCapacity",
"PolicyType": "StepScaling",
"StepScalingPolicyConfiguration": {
"AdjustmentType": "PercentChangeInCapacity",
"StepAdjustments": [
{
"MetricIntervalLowerBound": 0,
"ScalingAdjustment": 25
}
],
"Cooldown": 120
}
}
Wenn der Befehl erfolgreich ausgeführt werden kann, sieht die Ausgabe ungefähr wie unten angegeben aus. Einige Details weichen jedoch ab, da sie von dem individuellen Konto und der Region abhängig sind. In diesem Beispiel lautet der Richtlinienbezeichner e3425d21-16f0-d701-89fb-12f98dac64af
.
{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:e3425d21-16f0-d701-89fb-12f98dac64af:resource/appstream/fleet/SampleFleetName:policyName/scale-out-utilization-policy"}
Richten Sie jetzt einen CloudWatch Alarm für diese Richtlinie ein. Verwenden Sie die Namen, die Region, Kontonummer und Richtlinienkennung, die für Sie gelten. Für den Parameter --alarm-actions
können Sie den Richtlinien-ARN verwenden, der von dem vorherigen Befehl zurückgegeben wurde.
aws cloudwatch put-metric-alarm --alarm-name
alarmname
\ --alarm-description "Alarm when Capacity Utilization exceeds 75 percent" \ --metric-name CapacityUtilization \ --namespace AWS/AppStream \ --statistic Average \ --period 300 \ --threshold 75 \ --comparison-operator GreaterThanOrEqualToThreshold \ --dimensions "Name=Fleet,Value=fleetname
" \ --evaluation-periods 1 --unit Percent \ --alarm-actions "arn:aws:autoscaling:your-region-code
:account-number-without-hyphens
:scalingPolicy:policyid
:resource/appstream/fleet/fleetname
:policyName/policyname
"
Beispiel 2: Anwenden einer Skalierungsrichtlinie, die auf Fehlern aufgrund unzureichender Kapazität basiert
In diesem AWS CLI-Beispiel wird eine Skalierungsrichtlinie eingerichtet, die die Flotte um 1 skaliert, wenn die Flotte einen InsufficientCapacityError
Fehler zurückgibt.
Der folgende Befehl definiert eine Skalierungsrichtlinie auf der Grundlage unzureichender Kapazität:
aws application-autoscaling put-scaling-policy --cli-input-json file://scale-out-capacity.json
Der Inhalt der Datei scale-out-capacity.json
ist wie folgt:
{
"PolicyName": "policyname
",
"ServiceNamespace": "appstream",
"ResourceId": "fleet/fleetname
",
"ScalableDimension": "appstream:fleet:DesiredCapacity",
"PolicyType": "StepScaling",
"StepScalingPolicyConfiguration": {
"AdjustmentType": "ChangeInCapacity",
"StepAdjustments": [
{
"MetricIntervalLowerBound": 0,
"ScalingAdjustment": 1
}
],
"Cooldown": 120
}
}
Wenn der Befehl erfolgreich ausgeführt werden kann, sieht die Ausgabe ungefähr wie unten angegeben aus. Einige Details weichen jedoch ab, da sie von dem individuellen Konto und der Region abhängig sind. In diesem Beispiel lautet der Richtlinienbezeichner f4495f21-0650-470c-88e6-0f393adb64fc
.
{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:f4495f21-0650-470c-88e6-0f393adb64fc:resource/appstream/fleet/SampleFleetName:policyName/scale-out-insufficient-capacity-policy"}
Richten Sie jetzt einen CloudWatch Alarm für diese Richtlinie ein. Verwenden Sie die Namen, die Region, Kontonummer und Richtlinienkennung, die für Sie gelten. Für den Parameter --alarm-actions
können Sie den Richtlinien-ARN verwenden, der von dem vorherigen Befehl zurückgegeben wurde.
aws cloudwatch put-metric-alarm --alarm-name
alarmname
\ --alarm-description "Alarm when out of capacity is > 0" \ --metric-name InsufficientCapacityError \ --namespace AWS/AppStream \ --statistic Maximum \ --period 300 \ --threshold 0 \ --comparison-operator GreaterThanThreshold \ --dimensions "Name=Fleet,Value=fleetname
" \ --evaluation-periods 1 --unit Count \ --alarm-actions "arn:aws:autoscaling:your-region-code
:account-number-without-hyphens
:scalingPolicy:policyid
:resource/appstream/fleet/fleetname
:policyName/policyname
"
Beispiel 3: Anwenden einer Skalierungsrichtlinie, die auf geringer Kapazitätsnutzung basiert
In diesem AWS CLI Beispiel wird eine Skalierungsrichtlinie eingerichtet, bei der die Flotte skaliert wird, um die tatsächliche Kapazität zu reduzieren, wenn sie niedrig CapacityUtilization
ist.
Der folgende Befehl definiert eine Skalierungsrichtlinie auf der Grundlage überschüssiger Kapazität:
aws application-autoscaling put-scaling-policy --cli-input-json file://scale-in-capacity.json
Der Inhalt der Datei scale-in-capacity.json
ist wie folgt:
{
"PolicyName": "policyname
",
"ServiceNamespace": "appstream",
"ResourceId": "fleet/fleetname
",
"ScalableDimension": "appstream:fleet:DesiredCapacity",
"PolicyType": "StepScaling",
"StepScalingPolicyConfiguration": {
"AdjustmentType": "PercentChangeInCapacity",
"StepAdjustments": [
{
"MetricIntervalUpperBound": 0,
"ScalingAdjustment": -25
}
],
"Cooldown": 360
}
}
Wenn der Befehl erfolgreich ausgeführt werden kann, sieht die Ausgabe ungefähr wie unten angegeben aus. Einige Details weichen jedoch ab, da sie von dem individuellen Konto und der Region abhängig sind. In diesem Beispiel lautet der Richtlinienbezeichner 12ab3c4d-56789-0ef1-2345-6ghi7jk8lm90
.
{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:12ab3c4d-56789-0ef1-2345-6ghi7jk8lm90:resource/appstream/fleet/SampleFleetName:policyName/scale-in-utilization-policy"}
Richten Sie jetzt einen CloudWatch Alarm für diese Richtlinie ein. Verwenden Sie die Namen, die Region, Kontonummer und Richtlinienkennung, die für Sie gelten. Für den Parameter --alarm-actions
können Sie den Richtlinien-ARN verwenden, der von dem vorherigen Befehl zurückgegeben wurde.
aws cloudwatch put-metric-alarm --alarm-name
alarmname
\ --alarm-description "Alarm when Capacity Utilization is less than or equal to 25 percent" \ --metric-name CapacityUtilization \ --namespace AWS/AppStream \ --statistic Average \ --period 120 \ --threshold 25 \ --comparison-operator LessThanOrEqualToThreshold \ --dimensions "Name=Fleet,Value=fleetname
" \ --evaluation-periods 10 --unit Percent \ --alarm-actions "arn:aws:autoscaling:your-region-code
:account-number-without-hyphens
:scalingPolicy:policyid
:resource/appstream/fleet/fleetname
:policyName/policyname
"
Beispiel 4: Ändern der Flottenkapazität basierend auf einem Zeitplan
Die Änderung Ihrer Flottenkapazität basierend auf einem Zeitplan ermöglicht Ihnen, Ihre Flottenkapazität im Hinblick auf vorhersehbare Veränderungen zu skalieren. Beispielsweise könnten Sie für den Beginn eines Arbeitstags erwarten, dass eine bestimmte Anzahl von Benutzern gleichzeitig Streaming-Verbindungen anfordert. Um Ihre Flottenkapazität auf der Grundlage eines Zeitplans zu ändern, können Sie die PutScheduledActionAPI-Aktion Application Auto Scaling oder den put-scheduled-action AWS CLI-Befehl verwenden.
Bevor Sie Ihre Flottenkapazität ändern, können Sie Ihre aktuelle Flottenkapazität auflisten, indem Sie den CLI-Befehl AppStream 2.0 describe-fleets AWS verwenden.
aws appstream describe-fleets --name
fleetname
Die aktuelle Flottenkapazität wird ähnlich der folgenden Ausgabe (im JSON-Format dargestellt) ausgegeben:
{
{
"ComputeCapacityStatus": {
"Available": 1,
"Desired": 1,
"Running": 1,
"InUse": 0
},
}
Verwenden Sie anschließend den put-scheduled-action
-Befehl zum Erstellen einer geplanten Aktion zum Ändern Ihrer Flottenkapazität. Mit dem folgenden Befehl beispielsweise wird täglich um 9.00 Uhr UTC die minimale Kapazität auf 3 und die maximale Kapazität auf 5 gesetzt.
Anmerkung
Geben Sie für cron-Ausdrücke an, wann die Aktion in UTC ausgeführt werden soll. Weitere Informationen finden Sie unter Cron-Ausdrücke.
aws application-autoscaling put-scheduled-action --service-namespace appstream \ --resource-id fleet/
fleetname
\ --schedule="cron(0 9 * * ? *)" \ --scalable-target-action MinCapacity=3,MaxCapacity=5 \ --scheduled-action-name ExampleScheduledAction \ --scalable-dimension appstream:fleet:DesiredCapacity
Führen Sie den Befehl aus, um zu bestätigen, dass die geplante Aktion zur Änderung Ihrer Flottenkapazität erfolgreich erstellt wurde. describe-scheduled-actions
aws application-autoscaling describe-scheduled-actions --service-namespace appstream --resource-id fleet/
fleetname
Wurde die geplante Aktion erfolgreich erstellt, wird die Ausgabe ähnlich wie folgt angezeigt.
{
"ScheduledActions": [
{
"ScalableDimension": "appstream:fleet:DesiredCapacity",
"Schedule": "cron(0 9 * * ? *)",
"ResourceId": "fleet/ExampleFleet",
"CreationTime": 1518651232.886,
"ScheduledActionARN": "<arn>",
"ScalableTargetAction": {
"MinCapacity": 3,
"MaxCapacity": 5
},
"ScheduledActionName": "ExampleScheduledAction",
"ServiceNamespace": "appstream"
}
]
}
Weitere Informationen finden Sie unter Geplante Skalierung im Benutzerhandbuch für Application Auto Scaling.
Beispiel 5: Anwenden einer Richtlinie für die Zielverfolgungsskalierung
Mit der Skalierung der Zielverfolgung können Sie eine Kapazitätsauslastung für Ihre Flotte angeben.
Wenn Sie eine Skalierungsrichtlinie für die Zielverfolgung erstellen, erstellt und verwaltet Application Auto Scaling automatisch CloudWatch Alarme, die die Skalierungsrichtlinie auslösen. Durch die Skalierungsrichtlinie wird so viel Kapazität wie erforderlich hinzugefügt oder entfernt, damit die Metrik auf oder nahe an dem Zielwert gehalten wird. Um die Verfügbarkeit der Anwendung sicherzustellen, wird die Flotte schnellstmöglich proportional zur Metrik aufskaliert, jedoch etwas langsamer herunterskaliert.
Der folgende put-scaling-policyBefehl definiert eine Skalierungsrichtlinie für die Zielverfolgung, mit der versucht wird, eine Kapazitätsauslastung von 75% für eine AppStream 2.0-Flotte aufrechtzuerhalten.
aws application-autoscaling put-scaling-policy --cli-input-json file://config.json
Der Inhalt der Datei config.json
ist wie folgt:
{
"PolicyName":"target-tracking-scaling-policy",
"ServiceNamespace":"appstream",
"ResourceId":"fleet/fleetname
",
"ScalableDimension":"appstream:fleet:DesiredCapacity",
"PolicyType":"TargetTrackingScaling",
"TargetTrackingScalingPolicyConfiguration":{
"TargetValue":75.0,
"PredefinedMetricSpecification":{
"PredefinedMetricType":"AppStreamAverageCapacityUtilization"
},
"ScaleOutCooldown":300,
"ScaleInCooldown":300
}
}
Wenn der Befehl erfolgreich ausgeführt werden kann, sieht die Ausgabe ungefähr wie unten angegeben aus. Einige Details weichen jedoch ab, da sie von dem individuellen Konto und der Region abhängig sind. In diesem Beispiel lautet der Richtlinienbezeichner 6d8972f3-efc8-437c-92d1-6270f29a66e7.
{
"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/appstream/fleet/fleetname:policyName/target-tracking-scaling-policy",
"Alarms": [
{
"AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-fleet/fleetname-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca",
"AlarmName": "TargetTracking-fleet/fleetname-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca"
},
{
"AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-fleet/fleetname-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d",
"AlarmName": "TargetTracking-fleet/fleetname-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d"
}
]
}
Weitere Informationen finden Sie in den Skalierungsrichtlinien für die Ziel-Nachverfolgung im Benutzerhandbuch zum Auto Scaling von Anwendungen.