Fleet Auto Scaling für Amazon AppStream 2.0 - Amazon AppStream 2.0

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.

Fleet Auto Scaling für Amazon AppStream 2.0

Mit Fleet Auto Scaling können Sie die Größe Ihrer AppStream-2.0-Always-On- oder On-Demand-Flotte automatisch ändern, um das Angebot verfügbarer Instances auf die Benutzernachfrage abzustimmen. Die Größe Ihrer Flotte bestimmt die Anzahl der Benutzer, die gleichzeitig streamen können. Bei einer Flotte mit mehreren Sitzungen kann mehr als ein Benutzer eine einzelne Instance verwenden. Für eine Flotte ohne mehrere Sitzungen ist eine Instances für jede Benutzersitzung erforderlich. Sie können Ihre Flottenkapazität in Form von Instances (für Flotten mit einer Sitzung) und Benutzersitzungen (für Flotten mit mehreren Sitzungen) angeben. Die erforderliche Anzahl von Instances wird basierend auf Ihren Flottenkonfigurationen und Auto-Scaling-Richtlinien bereitgestellt. Sie haben die Möglichkeit, Skalierungsrichtlinien zu definieren, die die Größe Ihrer Flotte auf Grundlage verschiedener Nutzungsmetriken automatisch anpassen und die Anzahl verfügbarer Instances im Hinblick auf die Benutzernachfrage optimieren. Sie können Auto Scaling auch deaktivieren und die Flotte mit einer festgelegten Größe ausführen lassen.

Anmerkung

Die Elastic-Flottenkapazität wird automatisch von AppStream 2.0 für Sie verwaltet. Sie müssen keine Auto-Scaling-Regeln erstellen, um die Anzahl der Flotten-Streaming-Instances zu verwalten, die für Elastic-Flotten verfügbar sind.

Anmerkung

Stellen Sie bei der Erstellung Ihres Plans für die AppStream-2.0-Flottenskalierung sicher, dass Ihre Netzwerkkonfiguration Ihren Anforderungen entspricht.

Damit Sie Fleet Auto Scaling verwenden können, benötigt Application Auto Scaling Berechtigungen zum Zugriff auf Amazon–CloudWatch-Alarme und AppStream-2.0-Flotten. Weitere Informationen erhalten Sie unter Verwenden von AWS verwalteten Richtlinien und verknüpften Rollen für die Verwaltung des Administratorzugriffs auf AppStream-2.0-Ressourcen und Verwenden von IAM-Richtlinien zur Verwaltung des Administratorzugriffs auf Application Auto Scaling.

Anmerkung

Wenn Sie die Skalierung verwenden, arbeiten Sie mit der Application-Auto-Scaling-API. Damit Fleet Auto Scaling ordnungsgemäß für AppStream 2.0 funktioniert, erfordert Application Auto Scaling die Berechtigung, Ihre AppStream-2.0-Flotten zu beschreiben und zu aktualisieren, Ihre Amazon-CloudWatch-Alarme zu beschreiben, sowie Berechtigungen, um Ihre Flottenkapazität in Ihrem Namen zu ändern. Weitere Informationen erhalten Sie unter Erforderliche Rollen für AppStream 2.0, Application Auto Scaling und AWS Certificate Manager Private CA und Verwenden von IAM-Richtlinien zur Verwaltung des Administratorzugriffs auf Application Auto Scaling.

Die folgenden Themen enthalten Informationen, die Ihnen dabei helfen, AppStream 2.0 Fleet Auto Scaling zu verstehen und zu verwenden.

Skalierungskonzepte

AppStream 2.0 Scaling wird von Application Auto Scaling bereitgestellt. Weitere Informationen finden Sie unter Aktionen in der Application Auto Scaling API-Referenz.

Schrittweise Anleitungen für das Arbeiten mit dem Auto Scaling der AppStream-2.0-Flotte finden Sie unter Skalieren von Desktop-Anwendungs-Streams mit Amazon AppStream 2.0 im AWS Compute Blog.

Für eine effektive Verwendung von Fleet Auto Scaling müssen Sie die folgenden Begriffe und Konzepte verstehen.

Mehrere Sitzungen im Vergleich zu einer Einzelsitzung

In einem Einzelsitzungsszenario verfügt jede Benutzersitzung über ihre eigene Dedicated Instance. In einem Multisitzungsmodus können mehr als eine Benutzersitzung auf einer Instance bereitgestellt werden. Die Richtlinien für Flottenkapazität und Auto Scaling müssen in Bezug auf Benutzersitzungen konfiguriert werden, und der Service berechnet und startet die erforderliche Anzahl von Instances.

Mindestkapazität/Mindestanzahl an Benutzersitzungen für die Flotte

Die Mindestanzahl von Instances (für Flotten mit einer Sitzung) oder Benutzersitzungen (für Flotten mit mehreren Sitzungen). Die Anzahl der Instances (für Flotten mit Einzelsitzungen) oder Benutzersitzungen (für Multisitzungs-Flotten) darf diesen Wert nicht unterschreiten, und Skalierungsrichtlinien führen keine Skalierung Ihrer Flotte auf einen niedrigeren Wert als den hier angegebenen aus. Beispiel: Wenn Sie in einem Einzelsitzungsszenario als Mindestkapazität für eine Flotte 2 festlegen, besteht Ihre Flotte immer aus mindestens 2 Instances. Ähnlich verhält es sich in einem Szenario mit mehreren Sitzungen. Angenommen, Sie legen die maximale Anzahl von Sitzungen auf einer Instance auf 5 fest und die Mindestkapazität für eine Flotte auf 12. Ihre Flotte verfügt dann niemals über weniger als aufgerundet (12/5) = 3 Instances.

Maximale Kapazität/Maximale Anzahl an Benutzersitzungen für die Flotte

Die maximale Anzahl von Instances (für Flotten mit einer Sitzung) oder Benutzersitzungen (für Flotten mit mehreren Sitzungen). Die Anzahl der Instances (für Flotten mit Einzelsitzungen) oder Benutzersitzungen (für Multisitzungs-Flotten) darf diesen Wert nicht überschreiten, und Skalierungsrichtlinien führen keine Skalierung Ihrer Flotte auf einen höheren Wert als den hier angegebenen aus. Beispiel: Wenn Sie in einem Einzelsitzungsszenario als Maximalkapazität für eine Flotte 10 festlegen, besteht Ihre Flotte immer aus höchstens 10 Instances. Ähnlich verhält es sich in einem Szenario mit mehreren Sitzungen. Angenommen, Sie legen die maximale Anzahl von Sitzungen auf einer Instance auf 5 fest und die Maximalkapazität für eine Flotte auf 52. Ihre Flotte verfügt dann niemals über mehr als aufgerundet (52/5) = 11 Instances.

Gewünschte Kapazität

Die Gesamtanzahl von Instances (für Flotten mit einer Sitzung) oder Benutzersitzungen (für Flotten mit mehreren Sitzungen), die entweder ausgeführt werden oder im Status „ausstehend“ sind. Dieser Wert stellt die Gesamtzahl der gleichzeitigen Streaming-Sitzungen dar, die von Ihrer Serverflotte in einem konstanten Zustand unterstützt werden können. Um einen Wert für Desired Capacity (Gewünschte Kapazität) festzulegen, bearbeiten Sie Fleet Details (Flotten-Details). Es ist nicht empfehlenswert, den Wert für Desired Capacity (Gewünschte Kapazität) manuell zu ändern, wenn Sie Scaling Policies (Skalierungsrichtlinien) verwenden.

Wenn für Desired Capacity (Gewünschte Kapazität) ein Wert festgelegt ist, der unter dem Wert für Minimum Capacity (Mindestapazität) liegt, und eine Hochskalierungsaktivität ausgelöst wird, skaliert Auto Scaling von Anwendungen den Wert für Desired Capacity (Gewünschte Kapazität) bis auf den Wert für Minimum Capacity (Mindestkapazität) hoch und fährt dann – abhängig von der Skalierungsrichtlinie – mit der Hochskalierung fort. In diesem Beispiel wird die Option Desired Capacity (Gewünschte Kapazität) durch eine Herunterskalierungsaktivität jedoch nicht angepasst, da der Wert bereits unter dem Wert für Minimum Capacity (Mindestkapazität) liegt.

Wenn für Desired Capacity (Gewünschte Kapazität) ein Wert festgelegt ist, der über dem Wert für Maximum Capacity (Maximale Kapazität) liegt, und eine Herunterskalierungsaktivität ausgelöst wird, skaliert Auto Scaling von Anwendungen den Wert für Desired Capacity (Gewünschte Kapazität) bis auf den Wert für Maximum Capacity (Maximale Kapazität) herunter und fährt dann – abhängig von der Skalierungsrichtlinie – mit der Herunterskalierung fort. In diesem Beispiel wird die Option Desired Capacity (Gewünschte Kapazität) durch eine Hochskalierungsaktivität jedoch nicht angepasst, da der Wert bereits über dem Wert für Maximum Capacity (Maximale Kapazität) liegt.

Scaling Policy Action (Skalierungsrichtlinienaktion)

Die Aktion, die Skalierungsrichtlinien an Ihrer Flotte ausführen, wenn die Scaling Policy Condition (Skalierungsrichtlinienbedingung) erfüllt wird. Sie können eine Aktion auf der Grundlage der Kapazität in % oder der Anzahl der Instances (für Flotten mit einer Sitzung) oder Benutzersitzungen (für Flotten mit mehreren Sitzungen) auswä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.

Scaling Policy Condition (Skalierungsrichtlinienbedingung)

Die Bedingung, die die unter Scaling Policy Action festgelegte Aktion auslöst. Diese Bedingung umfasst eine Skalierungsrichtlinienmetrik, einen Vergleichsoperator und einen Schwellenwert. Wenn zum Beispiel eine Flotte skaliert werden soll, falls die Nutzung der Flotte 50 % übersteigt, legen Sie folgende Skalierungsrichtlinienbedingung fest "If Capacity Utilization > 50%".

Scaling Policy Metric (Skalierungsrichtlinienmetrik)

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

Capacity Utilization (Kapazitätsnutzung)

Prozentsatz der innerhalb einer Flotte genutzten Instances. Mit dieser Metrik können Sie Ihre Flotte auf Grundlage der Flottennutzung 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".

Available Capacity (Verfügbare Kapazität)

Die Anzahl der Instances (für Flotten mit einer Sitzung) oder Benutzersitzungen (für Flotten mit mehreren Sitzungen) in Ihrer Flotte, 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. Beispiel: Bedingung für Skalierungsrichtlinien: „Wenn die verfügbare Kapazität < 5“ ist, führe die Skalierungsrichtlinien-Aktion aus: „Füge 5 Instance(s) (für Flotten mit einer Sitzung) oder Benutzersitzung(en) (für Flotten mit mehreren Sitzungen) hinzu“.

Insufficient Capacity Error (Fehler aufgrund 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: Skalierungsrichtlinien-Bedingung: „Wenn Fehler wegen unzureichender Kapazität > 0 auftritt“, führe die Skalierungsrichtlinien-Aktion aus: „Füge 1 Instance(s) (für Flotten mit einer Sitzung) oder Benutzersitzung(en) (für Flotten mit mehreren Sitzungen) hinzu“.

Verwalten der Flottenskalierung über die Konsole

Sie haben zwei Möglichkeiten zum Einrichten und Verwalten der Flottenskalierung über die AppStream-2.0-Konsole: während der Flottenerstellung oder zu einem beliebigen Zeitpunkt über die Registerkarte Flotten. Nach dem Start sind zwei Standardskalierungsrichtlinien mit neu erstellten Flotten verknüpft. Sie können diese Richtlinien auf der Registerkarte Skalierungsrichtlinien in der AppStream-2.0-Konsole bearbeiten. Weitere Informationen finden Sie unter Erstellen einer Flotte.

Bei Benutzerumgebungen mit schwankenden Zahlen sollten Sie Skalierungsrichtlinien definieren, um festzulegen, wie die Skalierung auf die Nachfrage reagiert. Wenn Sie mit einer festen Anzahl von Benutzern rechnen oder die Skalierung aus anderen Gründen deaktivieren möchten, können Sie Ihre Flotte auf eine feste Anzahl von Instances oder Benutzersitzungen einstellen.

So legen Sie eine Flottenskalierungsrichtlinie über die Konsole fest
  1. Öffnen Sie die AppStream-2.0-Konsole unter https://console.aws.amazon.com/appstream2.

  2. Klicken Sie im Navigationsbereich auf Fleets (Flotten).

  3. Wählen Sie die Flotte und wählen Sie Skalierungsrichtlinien.

  4. Sie können vorhandene Richtlinien bearbeiten, indem Sie auf das Bearbeitungssymbol neben den einzelnen Werten klicken. Legen Sie die gewünschten Werte im Bearbeitungsfeld fest und klicken Sie dann auf Update. Die Richtlinienänderungen treten innerhalb weniger Minuten in Kraft.

  5. Verwenden Sie zum Hinzufügen (Erstellen) neuer Richtlinien den Link Add Policy. Legen Sie die gewünschten Werte im Bearbeitungsfeld fest und klicken Sie dann auf Create. Die neue Richtlinie tritt innerhalb weniger Minuten in Kraft.

Mit der Registerkarte Fleet Usage können Sie die Auswirkungen Ihrer Skalierungsrichtlinienänderungen überwachen. Die Grafik unten zeigt anhand von Beispiel-Nutzungsdaten die Skalierung, wenn fünf Benutzer eine Verbindung zur Flotte herstellen und die Verbindung dann wieder trennen. Das Beispiel stammt aus einer Flotte, die die folgenden Skalierungsrichtlinienwerte verwendet:

  • Mindestkapazität = 10

  • Maximalkapazität = 50

  • Aufskalieren = Füge 5 Instances (für Flotten mit einer Sitzung) oder Benutzersitzungen (für Flotten mit mehreren Sitzungen) hinzu, wenn die Kapazitätsauslastung > 75 % ist.

  • Abskalieren = Entferne 6 Instances (für Flotten mit einer Sitzung) oder Benutzersitzungen (für Flotten mit mehreren Sitzungen), wenn die Kapazitätsauslastung < 25 % ist.

    Anmerkung

    Die oben genannte Richtlinie gilt sowohl für Einzelsitzungen als auch für Szenarien mit mehreren Sitzungen. In einem Einzelsitzungszenario werden während eines Aufskalierungs-Ereignisses 5 neue Instances gestartet und bei einem Abskalierungs-Ereignis 4 Instances wieder entfernt. In einem Szenario mit mehreren Sitzungen, bei dem die maximale Anzahl an Sitzungen pro Instance 4 beträgt, löst das Aufskalierungs-Ereignis den Start von aufgerundet (5 Benutzersitzungen hinzufügen/maximale Anzahl an Sitzungen pro Instance 4) = 2 Instances aus. 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.

So legen Sie eine Flotte mit fester Kapazität über die Konsole fest
  1. Öffnen Sie die AppStream-2.0-Konsole unter https://console.aws.amazon.com/appstream2.

  2. Klicken Sie im Navigationsbereich auf Fleets (Flotten).

  3. Wählen Sie die Flotte.

  4. Entfernen Sie im Abschnitt Scaling Policies alle mit der Flotte verknüpften Richtlinien.

  5. Bearbeiten Sie im Abschnitt Fleet Details die Flotte, um einen Wert für Desired Capacity festzulegen.

Die Flotte hat eine konstante, festgelegte Kapazität. Diese basiert auf dem Wert, den Sie für Desired Capacity festgelegt haben. Hinweis: Bei einer Flotte mit fester Kapazität ist die gewünschte Anzahl Instances ständig verfügbar. Um zu vermeiden, dass weiter Kosten für diese Flotte anfallen, muss die Flotte angehalten werden.

Verwalten der Flottenskalierung über die AWS-CLI

Sie können die Flottenskalierung über die AWS Command Line Interface (AWS-CLI) einrichten und verwalten. Verwenden Sie die AWS-CLI, um erweiterte Funktionen wie das Einrichten mehrerer Skalierungsrichtlinien oder das Festlegen von Aufskalierungs- und Abskalierungs-Abklingzeiten zu erhalten. Bevor Sie Befehle für Skalierungsrichtlinien ausführen können, müssen Sie Ihre Flotte als skalierbares Ziel registrieren. Verwenden Sie den nachfolgenden register-scalable-target-Befehl:

aws application-autoscaling register-scalable-target --service-namespace appstream \ --resource-id fleet/fleetname \ --scalable-dimension appstream:fleet:DesiredCapacity \ --min-capacity 1 --max-capacity 5

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 % aufskaliert, wenn die Nutzung bei 75 % oder höher liegt.

Der folgende put-scaling-policy-Befehl 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 nun 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 aufskaliert, wenn die Flotte einen Fehler des Typs InsufficientCapacityError ausgibt.

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 nun 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, die die Flotte abskaliert, um die tatsächliche Kapazität zu verringern, wenn CapacityUtilization niedrig 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 nun 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 basierend auf einem Zeitplan zu ändern, können Sie die Application-Auto-Scaling-API-Aktion PutScheduledAction oder den AWSCLI-Befehl put-scheduled-action verwenden.

Vor dem Ändern Ihrer Flottenkapazität können Sie Ihre aktuelle Flottenkapazität mit dem AWS-CLI-Befehl describe-fleets von AppStream 2.0 anzeigen.

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

Um zu bestätigen, dass die geplante Aktion für die Änderung Ihrer Flottenkapazität erfolgreich erstellt wurde, führen Sie den Befehl describe-scheduled-actions aus.

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 Richtlinie für die Zielverfolgungsskalierung 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.

Mit dem folgenden Befehl put-scaling-policy wird eine Richtlinie für die Zielverfolgungsskalierung definiert, die versucht, 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.

Weitere Ressourcen

Schrittweise Anleitungen für das Arbeiten mit dem Auto Scaling der AppStream-2.0-Flotte finden Sie unter Skalieren von Desktop-Anwendungs-Streams mit Amazon AppStream 2.0 im AWS Compute Blog.

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