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.
Verwaltung der Flottenskalierung mithilfe von AWS CLI for Amazon AppStream 2.0
Sie können die Flottenskalierung einrichten und verwalten, indem Sie AWS Command Line Interface (AWS CLI) verwenden. Für erweiterte Funktionen wie das Einrichten mehrerer Skalierungsrichtlinien oder das Festlegen von Abklingzeiten für Scale-In und Scale-Out verwenden Sie den. AWS CLI 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 2: Anwenden einer Skalierungsrichtlinie, die auf Fehlern aufgrund unzureichender Kapazität 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. Sie können die vom vorherigen Befehl ARN zurückgegebene Richtlinie für den --alarm-actions
Parameter verwenden.
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. Sie können die vom vorherigen Befehl ARN zurückgegebene Richtlinie für den --alarm-actions
Parameter verwenden.
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, die innerhalb der Flotte skaliert, 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. Sie können die vom vorherigen Befehl ARN zurückgegebene Richtlinie für den --alarm-actions
Parameter verwenden.
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 PutScheduledActionAPIAktion Application Auto Scaling oder den put-scheduled-action AWS CLIBefehl verwenden.
Bevor Sie Ihre Flottenkapazität ändern, können Sie Ihre aktuelle Flottenkapazität auflisten, indem Sie den Befehl AppStream 2.0 describe-fleets AWS CLI verwenden.
aws appstream describe-fleets --name
fleetname
Die aktuelle Flottenkapazität wird ähnlich wie in der folgenden Ausgabe angezeigt (im JSON Format dargestellt):
{
{
"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 wird beispielsweise täglich um 9:00 Uhr die Mindestkapazität auf 3 und die Höchstkapazität auf 5 geändertUTC.
Anmerkung
Geben Sie für Cron-Ausdrücke an, wann die Aktion ausgeführt werden soll. UTC 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 describe-scheduled-actionsBefehl aus, um zu überprüfen, ob die geplante Aktion zur Änderung Ihrer Flottenkapazität erfolgreich erstellt wurde.
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.