Automatische Skalierung für WorkSpaces Pools - Amazon WorkSpaces

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.

Automatische Skalierung für WorkSpaces Pools

Mit Auto Scaling können Sie die Größe Ihrer WorkSpaces Pools automatisch ändern, um das Angebot an verfügbaren Instances an die Benutzernachfrage anzupassen. Die Größe Ihres Pools bestimmt die Anzahl der Benutzer, die gleichzeitig streamen können. Für jede Benutzersitzung ist eine Instanz erforderlich. Sie können Ihre Poolkapazität in Form von Instanzen angeben. Basierend auf Ihren Poolkonfigurationen und Auto Scaling-Richtlinien wird die erforderliche Anzahl von Instances zur Verfügung gestellt. Sie können Skalierungsrichtlinien definieren, die die Größe Ihres Pools automatisch auf der Grundlage einer Vielzahl von Nutzungsmetriken anpassen und die Anzahl der verfügbaren Instances an die Benutzernachfrage anpassen. Sie können sich auch dafür entscheiden, die automatische Skalierung zu deaktivieren und den Pool mit einer festen Größe laufen zu lassen.

Anmerkung
  • Stellen Sie bei der Entwicklung Ihres Plans für die WorkSpaces Pools-Skalierung sicher, dass Ihre Netzwerkkonfiguration Ihren Anforderungen entspricht.

  • Wenn Sie Skalierung verwenden, arbeiten Sie mit dem Application Auto ScalingAPI. Damit WorkSpaces Pools Auto Scaling ordnungsgemäß funktioniert, benötigt Application Auto Scaling die Erlaubnis, Ihre WorkSpaces Pools zu beschreiben und zu aktualisieren und Ihre CloudWatch Amazon-Alarme zu beschreiben, sowie die Erlaubnis, Ihre Poolkapazität in Ihrem Namen zu ändern.

Die folgenden Themen enthalten Informationen, die Ihnen helfen, WorkSpaces Pools Auto Scaling zu verstehen und zu verwenden.

Konzepte zur Skalierung

WorkSpaces Die Poolskalierung wird von Application Auto Scaling bereitgestellt. Weitere Informationen finden Sie in der APIReferenz zu Application Auto Scaling.

Um WorkSpaces Pools Auto Scaling effektiv nutzen zu können, müssen Sie die folgenden Begriffe und Konzepte verstehen.

Mindestkapazität/Mindestanzahl an Benutzersitzungen für den Pool

Die Mindestanzahl von Instanzen. Die Anzahl der Instances darf diesen Wert nicht unterschreiten, und durch Skalierungsrichtlinien wird Ihr Pool nicht unter diesen Wert skaliert. Wenn Sie beispielsweise die Mindestkapazität für einen Pool auf 2 festlegen, wird Ihr Pool niemals weniger als 2 Instances haben.

Maximale Kapazität/maximale Benutzersitzungen für den Pool

Die maximale Anzahl von Instanzen. Die Anzahl der Instances darf diesen Wert nicht überschreiten, und durch Skalierungsrichtlinien wird Ihr Pool nicht über diesen Wert hinaus skaliert. Wenn Sie beispielsweise die maximale Kapazität für einen Pool auf 10 festlegen, wird Ihr Pool nie mehr als 10 Instances haben.

Gewünschte Kapazität

Die Gesamtzahl der Fleet-Instances, die entweder ausgeführt werden oder ausstehend sind. Dieser Wert stellt die Gesamtzahl der gleichzeitigen Streaming-Sitzungen dar, die Ihr Pool in einem stabilen Zustand unterstützen kann.

Skalierung der politischen Maßnahmen

Die Aktion, die Skalierungsrichtlinien für Ihren Pool ausführen, wenn die Bedingung für die Skalierungsrichtlinie erfüllt ist. Sie können eine Aktion auf Grundlage von % capacity oder number of instance(s) wählen. Wenn Desired Capacity zum Beispiel auf den Wert 4 und Scaling Policy Action auf "Add 25% capacity" eingestellt ist, wird Desired Capacity um 25 % auf 5 erhöht, wenn die für Scaling Policy Condition festgelegte Bedingung erfüllt wird.

Bedingung der Skalierungsrichtlinie

Die Bedingung, die die unter Scaling Policy Action festgelegte Aktion auslöst. Diese Bedingung umfasst eine Skalierungsrichtlinienmetrik, einen Vergleichsoperator und einen Schwellenwert. Um beispielsweise einen Pool zu skalieren, wenn die Auslastung des Pools mehr als 50% beträgt, sollte Ihre Skalierungsrichtlinie die Bedingung „Wenn die Kapazitätsauslastung > 50%“ lauten.

Metrik zur Skalierungsrichtlinie

Ihre Skalierungsrichtlinie basiert auf dieser Metrik. Für die Skalierungsrichtlinien stehen folgende Metriken zur Verfügung:

Capacity Utilization (Kapazitätsnutzung)

Der Prozentsatz der Instances in einem Pool, die verwendet werden. Sie können diese Metrik verwenden, um Ihren Pool basierend auf der Nutzung des Pools zu skalieren. Lautet die Scaling Policy Condition (Skalierungsrichtlinienbedingung) beispielsweise: "If Capacity Utilization < 25%", dann führen Sie folgende Scaling Policy Action (Skalierungsrichtlinienaktion) durch: "Remove 25 % capacity".

Verfügbare Kapazität

Die Anzahl der Instances in Ihrem Pool, die für Benutzer verfügbar sind. Mit dieser Metrik können Sie einen Kapazitätspuffer einrichten, der Benutzern am Anfang von Streaming-Sitzungen zur Verfügung steht. Lautet die Scaling Policy Condition (Skalierungsrichtlinienbedingung) beispielsweise: "If Available Capacity < 5", dann führen Sie folgende Scaling Policy Action (Skalierungsrichtlinienaktion) durch: "Add 5 instance(s)".

Fehler bei unzureichender Kapazität

Die Anzahl der Sitzungsanforderungen, die aufgrund von unzureichender Kapazität abgelehnt wurden. Mit dieser Metrik können Sie neue Instances für Benutzer bereitstellen, die Streaming-Sitzungen aufgrund fehlender Kapazität nicht starten können. Beispiel: Scaling Policy Condition: "If Insufficient Capacity Error > 0" perform Scaling Policy Action: "Add 1 instance(s)".

Verwaltung der Pool-Skalierung mithilfe der Konsole

Sie können die Skalierung mithilfe der WorkSpaces Pools-Konsole auf eine der beiden folgenden Arten einrichten und verwalten: Während der Poolerstellung oder jederzeit mithilfe der Registerkarte Pools. Nachdem Sie Pools erstellt haben, wechseln Sie zur Registerkarte Skalierungsrichtlinien, um neue Skalierungsrichtlinien für Ihren Pool hinzuzufügen. Weitere Informationen finden Sie unter Einen WorkSpaces Pool erstellen.

Bei Benutzerumgebungen mit schwankenden Zahlen sollten Sie Skalierungsrichtlinien definieren, um festzulegen, wie die Skalierung auf die Nachfrage reagiert. Wenn Sie eine feste Anzahl von Benutzern erwarten oder andere Gründe dafür haben, die Skalierung zu deaktivieren, können Sie Ihren Pool mit einer festen Anzahl von Instanzen für Benutzersitzungen einrichten.

Um eine Pool-Skalierungsrichtlinie mithilfe der Konsole festzulegen
  1. Öffnen Sie die WorkSpaces Konsole unter https://console.aws.amazon.com/workspaces/.

  2. Wählen Sie im Navigationsbereich Pools aus.

  3. Wählen Sie den Pool aus.

  4. Scrollen Sie auf der Seite dieses Pools nach unten zu Kapazität und Skalierung.

  5. Wählen Sie Edit (Bearbeiten) aus.

  6. Bearbeiten Sie bestehende Richtlinien, geben Sie die gewünschten Werte in das entsprechende Feld ein und wählen Sie Speichern. Die Richtlinienänderungen treten innerhalb weniger Minuten in Kraft.

  7. Sie können auch neue Kapazitäts- und Skalierungsrichtlinien hinzufügen, indem Sie Neue Zeitplankapazität hinzufügen, Neue Skalierungsrichtlinie hinzufügen oder Neue Skalierungsrichtlinie hinzufügen auswählen.

Im Folgenden finden Sie ein Beispiel für ein Nutzungsdiagramm der Skalierungsaktivität, wenn fünf Benutzer eine Verbindung zum Pool herstellen und dann die Verbindung trennen. Dieses Beispiel stammt aus einem Pool, der die folgenden Werte für die Skalierungsrichtlinie verwendet:

  • Mindestkapazität = 10

  • Höchstkapazität = 50

  • Scale Out = Wenn die Kapazitätsauslastung meines Pools mehr als 75% beträgt, fügen Sie 5 Instanzen hinzu

  • Skalieren = Wenn die Kapazitätsauslastung meines Pools weniger als 25% beträgt, entfernen Sie 6 Instances

    Anmerkung

    Während der Sitzung werden 5 neue Instances während eines Scale-Out-Events gestartet und 4 Instances werden während des Scale-Down-Events zurückerobert. Während eines Abskalierungs-Ereignisses entfernen die Services aufgerundet (6 Benutzersitzungen entfernen/maximale Anzahl an Sitzungen pro Instance 4) = 2 Instances. Instances mit laufenden Benutzersitzungen werden nicht entfernt. Nur Instances ohne laufende Benutzersitzungen werden entfernt.

Verwaltung der Pool-Skalierung Mit dem AWS CLI

Sie können die Poolskalierung 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, müssen Sie Ihren Pool als skalierbares Ziel registrieren. Verwenden Sie dazu den folgenden register-scalable-targetBefehl:

aws application-autoscaling register-scalable-target --service-namespace workspaces \ --resource-id workspacespool/PoolId \ --scalable-dimension workspaces:workspacespool:DesiredCapacity \ --min-capacity 1 --max-capacity 5

Beispiel 1: Anwendung einer Skalierungsrichtlinie auf der Grundlage der Kapazitätsauslastung

In diesem AWS CLI Beispiel wird eine Skalierungsrichtlinie eingerichtet, die einen Pool 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": "workspaces", "ResourceId": "workspacespool/PoolId", "ScalableDimension": "workspaces:workspacespool: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/workspaces/workspacespool/PoolId: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/WorkSpaces \ --statistic Average \ --period 300 \ --threshold 75 \ --comparison-operator GreaterThanOrEqualToThreshold \ --dimensions "Name=Pool,Value=PoolId" \ --evaluation-periods 1 --unit Percent \ --alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/workspaces/workspacespool/PoolId:policyName/policyname"

Beispiel 2: Anwendung einer Skalierungsrichtlinie auf der Grundlage von Fehlern aufgrund unzureichender Kapazität

In diesem AWS CLI Beispiel wird eine Skalierungsrichtlinie eingerichtet, die den Pool um 1 skaliert, wenn der Pool 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": "workspaces", "ResourceId": "workspacespool/PoolId", "ScalableDimension": "workspaces:workspacespool: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/workspaces/workspacespool/PoolId: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/WorkSpaces \ --statistic Maximum \ --period 300 \ --threshold 0 \ --comparison-operator GreaterThanThreshold \ --dimensions "Name=Pool,Value=PoolId" \ --evaluation-periods 1 --unit Count \ --alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/workspaces/workspacespool/PoolId:policyName/policyname"

Beispiel 3: Anwendung einer Skalierungsrichtlinie auf der Grundlage einer geringen Kapazitätsauslastung

In diesem AWS CLI Beispiel wird eine Skalierungsrichtlinie eingerichtet, die im Pool skaliert wird, um die tatsächliche Kapazität zu reduzieren, wenn diese 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": "workspaces", "ResourceId": "workspacespool/PoolId", "ScalableDimension": "workspaces:workspacespool: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/workspaces/workspacespool/PoolId: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/WorkSpaces \ --statistic Average \ --period 120 \ --threshold 25 \ --comparison-operator LessThanOrEqualToThreshold \ --dimensions "Name=Pool,Value=PoolId" \ --evaluation-periods 10 --unit Percent \ --alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/workspaces/workspacespool/PoolId:policyName/policyname"

Beispiel 4: Ändern Sie die Poolkapazität auf der Grundlage eines Zeitplans

Wenn Sie Ihre Poolkapazität auf der Grundlage eines Zeitplans ändern, können Sie Ihre Poolkapazität als Reaktion auf vorhersehbare Bedarfsänderungen skalieren. Beispielsweise könnten Sie für den Beginn eines Arbeitstags erwarten, dass eine bestimmte Anzahl von Benutzern gleichzeitig Streaming-Verbindungen anfordert. Um Ihre Poolkapazitä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 Poolkapazität ändern, können Sie mit dem describe-workspaces-pools AWS CLIBefehl WorkSpaces Pools Ihre aktuelle Poolkapazität auflisten.

aws workspaces describe-workspaces-pools --name PoolId

Die aktuelle Poolkapazität wird ähnlich wie in der folgenden Ausgabe angezeigt (im JSON Format dargestellt):

{ { "ComputeCapacityStatus": { "Available": 1, "Desired": 1, "Running": 1, "InUse": 0 }, }

Verwenden Sie dann den put-scheduled-action Befehl, um eine geplante Aktion zur Änderung Ihrer Poolkapazität zu erstellen. 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 workspaces \ --resource-id workspacespool/PoolId \ --schedule="cron(0 9 * * ? *)" \ --scalable-target-action MinCapacity=3,MaxCapacity=5 \ --scheduled-action-name ExampleScheduledAction \ --scalable-dimension workspaces:workspacespool:DesiredCapacity

Führen Sie den describe-scheduled-actionsBefehl aus, um zu überprüfen, ob die geplante Aktion zur Änderung Ihrer Poolkapazität erfolgreich erstellt wurde.

aws application-autoscaling describe-scheduled-actions --service-namespace workspaces --resource-id workspacespool/PoolId

Wurde die geplante Aktion erfolgreich erstellt, wird die Ausgabe ähnlich wie folgt angezeigt.

{ "ScheduledActions": [ { "ScalableDimension": "workspaces:workspacespool:DesiredCapacity", "Schedule": "cron(0 9 * * ? *)", "ResourceId": "workspacespool/ExamplePool", "CreationTime": 1518651232.886, "ScheduledActionARN": "<arn>", "ScalableTargetAction": { "MinCapacity": 3, "MaxCapacity": 5 }, "ScheduledActionName": "ExampleScheduledAction", "ServiceNamespace": "workspaces" } ] }

Weitere Informationen finden Sie unter Geplante Skalierung im Benutzerhandbuch für Application Auto Scaling.

Beispiel 5: Anwendung einer Skalierungsrichtlinie für die Zielverfolgung

Mit der Skalierung von Target Tracking können Sie eine Kapazitätsauslastung für Ihren Pool 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 Anwendungsverfügbarkeit sicherzustellen, wird Ihr Pool so schnell wie möglich proportional zur Metrik skaliert, aber schrittweise skaliert.

Der folgende put-scaling-policyBefehl definiert eine Skalierungsrichtlinie für die Zielverfolgung, mit der versucht wird, die Kapazitätsauslastung eines WorkSpaces Pools von 75% 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":"workspaces", "ResourceId":"workspacespool/PoolId", "ScalableDimension":"workspaces:workspacespool:DesiredCapacity", "PolicyType":"TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration":{ "TargetValue":75.0, "PredefinedMetricSpecification":{ "PredefinedMetricType":"WorkSpacesAverageCapacityUtilization" }, "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/workspaces/workspacespool/PoolId:policyName/target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-workspacespool/PoolId-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-workspacespool/PoolId-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-workspacespool/PoolId-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-workspacespool/PoolId-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.

Weitere Ressourcen

Weitere Informationen zur Verwendung der AWS CLI Befehle oder API Aktionen von Application Auto Scaling finden Sie in den folgenden Ressourcen: