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 an verfügbaren Instances an die Benutzernachfrage anzupassen. 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 Entwicklung Ihres Plans für die AppStream 2.0-Flottenskalierung sicher, dass Ihre Netzwerkkonfiguration Ihren Anforderungen entspricht.

Bevor Sie Fleet Auto Scaling verwenden können, benötigt Application Auto Scaling Berechtigungen für den Zugriff auf CloudWatch Amazon-Alarme und AppStream 2.0-Flotten. Weitere Informationen finden Sie unter Verwenden von AWS verwalteten Richtlinien und verknüpften Rollen zur 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 für AppStream 2.0 ordnungsgemäß funktioniert, benötigt Application Auto Scaling die Erlaubnis, Ihre AppStream 2.0-Flotten zu beschreiben und zu aktualisieren und Ihre CloudWatch Amazon-Alarme zu beschreiben, sowie die Erlaubnis, Ihre Flottenkapazität in Ihrem Namen zu ändern. Weitere Informationen finden 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 helfen, AppStream 2.0 Fleet Auto Scaling zu verstehen und zu verwenden.

Skalierungskonzepte

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

step-by-step Anleitungen für die Arbeit mit AppStream 2.0 Fleet Auto Scaling finden Sie unter Skalieren Ihrer Desktop-Anwendungsstreams 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 die aktuelle Kapazität beispielsweise 4 ist und die Aktion zur Skalierungsrichtlinie auf „Kapazität um 25% hinzufügen“ gesetzt ist, wird die gewünschte Kapazität wird erhöht auf 5 gesetzt, wenn die Bedingung für die Skalierungsrichtlinie erfüllt ist.

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 können die Flottenskalierung mithilfe der AppStream 2.0-Konsole auf eine der beiden folgenden Arten einrichten und verwalten: Während der Flottenerstellung oder jederzeit mithilfe der 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.

Verwaltung der Flottenskalierung mithilfe der AWS CLI

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 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% skaliert, wenn die Auslastung >= 75% beträgt.

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 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 PutScheduledAPI-Aktion Application Auto Scaling Action oder den CLI-Befehl AWS put-scheduled-action 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

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 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 Befehl put-scaling-policy definiert eine Skalierungsrichtlinie für die Zielverfolgung, mit der versucht wird, eine Kapazitätsauslastung von 75% für eine 2.0-Flotte aufrechtzuerhalten. AppStream

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

step-by-step Anleitungen für die Arbeit mit AppStream 2.0 Fleet Auto Scaling finden Sie unter Skalieren Ihrer Desktop-Anwendungsstreams mit Amazon AppStream 2.0 im AWS Compute-Blog.

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