Mise à l'échelle automatique pour les WorkSpaces piscines - Amazon WorkSpaces

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Mise à l'échelle automatique pour les WorkSpaces piscines

Auto Scaling vous permet de modifier automatiquement la taille de vos WorkSpaces pools pour adapter l'offre d'instances disponibles à la demande des utilisateurs. La taille de votre pool détermine le nombre d'utilisateurs qui peuvent diffuser simultanément. Une instance est requise pour chaque session utilisateur. Vous pouvez spécifier la capacité de votre pool en termes d'instances. En fonction de la configuration de votre pool et de vos politiques d'autodimensionnement, le nombre d'instances requis sera mis à disposition. Vous pouvez définir des politiques de dimensionnement qui ajustent automatiquement la taille de votre pool en fonction de diverses mesures d'utilisation, et optimiser le nombre d'instances disponibles pour répondre à la demande des utilisateurs. Vous pouvez également choisir de désactiver le dimensionnement automatique et de faire fonctionner le pool à une taille fixe.

Note
  • Lorsque vous élaborez votre plan de dimensionnement WorkSpaces des pools, assurez-vous que la configuration de votre réseau répond à vos exigences.

  • Lorsque vous utilisez le dimensionnement, vous travaillez avec l'Application Auto ScalingAPI. Pour que WorkSpaces Pools Auto Scaling fonctionne correctement, Application Auto Scaling a besoin d'une autorisation pour décrire et mettre à jour vos WorkSpaces pools et décrire vos CloudWatch alarmes Amazon, ainsi que des autorisations pour modifier la capacité de votre pool en votre nom.

Les rubriques suivantes fournissent des informations qui vous aideront à comprendre et à utiliser WorkSpaces Pools Auto Scaling.

Concepts de dimensionnement

WorkSpaces Le dimensionnement des pools est assuré par Application Auto Scaling. Pour plus d'informations, consultez l'Application Auto Scaling API Reference.

Pour utiliser WorkSpaces Pools Auto Scaling de manière efficace, vous devez comprendre les termes et concepts suivants.

Capacité minimale/nombre minimal de sessions utilisateur pour le pool

Le nombre minimum d'instances. Le nombre d'instances ne peut pas être inférieur à cette valeur, et les politiques de dimensionnement ne redimensionneront pas votre pool en dessous de cette valeur. Par exemple, si vous définissez la capacité minimale d'un pool sur 2, votre pool ne comportera jamais moins de 2 instances.

Capacité maximale/nombre maximum de sessions utilisateur pour le pool

Le nombre maximum d'instances. Le nombre d'instances ne peut pas être supérieur à cette valeur, et les politiques de dimensionnement ne redimensionneront pas votre pool au-dessus de cette valeur. Par exemple, si vous définissez la capacité maximale d'un pool sur 10, votre pool ne comportera jamais plus de 10 instances.

Capacité souhaitée

Nombre total d’instances en cours d’exécution ou en attente. Cette valeur représente le nombre total de sessions de streaming simultanées que votre pool peut prendre en charge en régime permanent.

Étendre l'action politique

Action que les politiques de dimensionnement exécutent sur votre pool lorsque la condition de politique de dimensionnement est remplie. Vous pouvez choisir une action basée sur % capacity ou number of instance(s). Par exemple, si Capacité souhaitée est 4 et que la valeur de Action de stratégie de dimensionnement est définie sur « Ajouter 25 % de capacité », Capacité souhaitée est augmentée de 25 % jusqu’à 5 lorsque la Condition de la stratégie de dimensionnement est remplie.

Condition de la politique de dimensionnement

Condition qui déclenche l’action définie dans Action de stratégie de dimensionnement. Cette condition comprend une métrique de la stratégie de dimensionnement, un opérateur de comparaison et un seuil. Par exemple, pour redimensionner un pool si son utilisation est supérieure à 50 %, votre condition de politique de dimensionnement doit être « Si l'utilisation de la capacité est supérieure à 50 % ».

Mesure de la politique de dimensionnement

Votre stratégie de dimensionnement est basée sur cette métrique. Les métriques suivantes sont disponibles pour les stratégies de dimensionnement :

Utilisation de la capacité

Pourcentage d'instances utilisées dans un pool. Vous pouvez utiliser cette métrique pour dimensionner votre pool en fonction de son utilisation. Par exemple, Condition de la stratégie de dimensionnement : « Si Utilisation de la capacité < 25 % », exécuter Action de stratégie de dimensionnement : « Supprimer 25 % de la capacité ».

Capacité disponible

Le nombre d'instances de votre pool qui sont disponibles pour les utilisateurs. Vous pouvez utiliser cette métrique pour conserver un tampon dans votre capacité disponible afin que les utilisateurs lancent des sessions de streaming. Par exemple, Scaling Policy Condition : « Si Capacité disponible < 5 », exécuter Scaling Policy Action : « Ajouter 5 instance(s) ».

Erreur de capacité insuffisante

Nombre de demandes de session rejetées par manque de capacité. Vous pouvez utiliser cette métrique pour allouer de nouvelles instances aux utilisateurs qui ne sont pas en mesure de démarrer des sessions de streaming en raison d'un manque de capacité. Par exemple, Scaling Policy Condition : « Si Erreur de capacité insuffisante > 0 », exécuter Scaling Policy Action : « Ajouter 1 instance(s) ».

Gestion du dimensionnement du pool à l'aide de la console

Vous pouvez configurer et gérer le dimensionnement à l'aide de la console WorkSpaces Pools de l'une des deux manières suivantes : lors de la création du pool, ou à tout moment, en utilisant l'onglet Pools. Après avoir créé des pools, accédez à l'onglet Scaling Policies pour ajouter de nouvelles politiques de dimensionnement pour votre pool. Pour de plus amples informations, veuillez consulter Création d'un WorkSpaces pool.

Pour les environnements utilisateur dont le nombre d'utilisateurs varie, définissez des stratégies de dimensionnement pour contrôler l'ajustement du dimensionnement en fonction de la demande. Si vous prévoyez un nombre fixe d'utilisateurs ou si vous avez d'autres raisons de désactiver le dimensionnement, vous pouvez configurer votre pool avec un nombre fixe d'instances pour les sessions utilisateur.

Pour définir une politique de dimensionnement du pool à l'aide de la console
  1. Ouvrez la WorkSpaces console à l'adresse https://console.aws.amazon.com/workspaces/.

  2. Dans le panneau de navigation, choisissez Pools (Groupes).

  3. Sélectionnez le pool.

  4. Sur la page de ce pool, faites défiler la page vers le bas jusqu'à Capacité et mise à l'échelle.

  5. Choisissez Modifier.

  6. Modifiez les politiques existantes, définissez les valeurs souhaitées dans leur champ, puis choisissez Enregistrer. Les modifications apportées aux stratégies prennent effet dans un délai de quelques minutes.

  7. Vous pouvez également ajouter de nouvelles politiques de capacité et de dimensionnement en choisissant Ajouter une nouvelle capacité de planification, Ajouter une nouvelle politique de scalabilité ou Ajouter une nouvelle politique d'échelonnement.

Voici un exemple de graphique d'utilisation de l'activité de dimensionnement lorsque cinq utilisateurs se connectent au pool puis se déconnectent. Cet exemple provient d'un pool utilisant les valeurs de politique de dimensionnement suivantes :

  • Capacité minimale = 10

  • Capacité maximale = 50

  • Scaler = Si l'utilisation de la capacité de mon pool est supérieure à 75 %, ajoutez 5 instances

  • Scale in = Si l'utilisation de la capacité de mon pool est inférieure à 25 %, supprimez 6 instances

    Note

    Au cours de la session, 5 nouvelles instances seront lancées lors d'un événement de réduction progressive, et 4 instances seront récupérées lors de l'événement de réduction. Lors d’un événement de mise à l’échelle horizontale, les services récupéreront le nombre arrondi au chiffre supérieur d’instances (suppression de 6 sessions utilisateur/nombre maximal de sessions par instance 4) = 2 instances. Les instances comportant des sessions utilisateur en cours d’exécution ne seront pas récupérées. Seules les instances pour lesquelles aucune session utilisateur n’est en cours d’exécution seront récupérées.

Gestion du dimensionnement du pool à l'aide du AWS CLI

Vous pouvez configurer et gérer le dimensionnement du pool à l'aide de AWS Command Line Interface (AWS CLI). Pour des fonctionnalités plus avancées, telles que la configuration de plusieurs politiques de dimensionnement ou la définition de temps de recharge d'évolutivité initiale ou descendante, utilisez le. AWS CLI Avant d'exécuter des commandes de politique de dimensionnement, vous devez enregistrer votre pool en tant que cible évolutive. Pour ce faire, utilisez la register-scalable-targetcommande suivante :

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

Exemple 1 : appliquer une politique de dimensionnement basée sur l'utilisation des capacités

Cet AWS CLI exemple définit une politique de dimensionnement qui augmente un pool de 25 % si le taux d'utilisation est supérieur ou égal à 75 %.

La put-scaling-policycommande suivante définit une politique de dimensionnement basée sur l'utilisation :

aws application-autoscaling put-scaling-policy -- cli-input-json file://scale-out-utilization.json

Le contenu du fichier scale-out-utilization.json est le suivant :

{ "PolicyName": "policyname", "ServiceNamespace": "workspaces", "ResourceId": "workspacespool/PoolId", "ScalableDimension": "workspaces:workspacespool:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "PercentChangeInCapacity", "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 25 } ], "Cooldown": 120 } }

Si la commande est réussie, la sortie est similaire à ce qui suit, bien que certains détails soient uniques pour votre compte et votre région. Dans cet exemple, l’identificateur de la stratégie est 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"}

Maintenant, configurez une CloudWatch alarme pour cette politique. Utilisez les noms, la région, le numéro de compte et l’identificateur de stratégie qui s’appliquent à votre cas. Vous pouvez utiliser la politique ARN renvoyée par la commande précédente pour le -- alarm-actions paramètre.

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"

Exemple 2 : application d'une politique de dimensionnement basée sur des erreurs de capacité insuffisante

Cet AWS CLI exemple définit une politique de dimensionnement qui augmente le pool de 1 si le pool renvoie une InsufficientCapacityError erreur.

La commande suivante définit une stratégie de dimensionnement basée sur une capacité insuffisante :

aws application-autoscaling put-scaling-policy -- cli-input-json file://scale-out-capacity.json

Le contenu du fichier scale-out-capacity.json est le suivant :

{ "PolicyName": "policyname", "ServiceNamespace": "workspaces", "ResourceId": "workspacespool/PoolId", "ScalableDimension": "workspaces:workspacespool:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "ChangeInCapacity", "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 1 } ], "Cooldown": 120 } }

Si la commande est réussie, la sortie est similaire à ce qui suit, bien que certains détails soient uniques pour votre compte et votre région. Dans cet exemple, l’identificateur de la stratégie est 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"}

Maintenant, configurez une CloudWatch alarme pour cette politique. Utilisez les noms, la région, le numéro de compte et l’identificateur de stratégie qui s’appliquent à votre cas. Vous pouvez utiliser la politique ARN renvoyée par la commande précédente pour le --alarm-actions paramètre.

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"

Exemple 3 : appliquer une politique de dimensionnement basée sur une faible utilisation des capacités

Cet AWS CLI exemple définit une politique de dimensionnement qui évolue dans le pool afin de réduire la capacité réelle en cas CapacityUtilization de faible capacité.

La commande suivante définit une stratégie de dimensionnement basée sur une capacité en excès :

aws application-autoscaling put-scaling-policy -- cli-input-json file://scale-in-capacity.json

Le contenu du fichier scale-in-capacity.json est le suivant :

{ "PolicyName": "policyname", "ServiceNamespace": "workspaces", "ResourceId": "workspacespool/PoolId", "ScalableDimension": "workspaces:workspacespool:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "PercentChangeInCapacity", "StepAdjustments": [ { "MetricIntervalUpperBound": 0, "ScalingAdjustment": -25 } ], "Cooldown": 360 } }

Si la commande est réussie, la sortie est similaire à ce qui suit, bien que certains détails soient uniques pour votre compte et votre région. Dans cet exemple, l’identificateur de la stratégie est 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"}

Maintenant, configurez une CloudWatch alarme pour cette politique. Utilisez les noms, la région, le numéro de compte et l’identificateur de stratégie qui s’appliquent à votre cas. Vous pouvez utiliser la politique ARN renvoyée par la commande précédente pour le --alarm-actions paramètre.

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"

Exemple 4 : modifier la capacité du pool en fonction d'un calendrier

La modification de la capacité de votre piscine selon un calendrier vous permet d'adapter la capacité de votre piscine en fonction de l'évolution prévisible de la demande. Par exemple, au début d'une journée, vous pouvez prévoir qu'un certain nombre d'utilisateurs vont demander simultanément des connexions de streaming. Pour modifier la capacité de votre pool en fonction d'un calendrier, vous pouvez utiliser l'PutScheduledActionAPIaction Application Auto Scaling ou la put-scheduled-action AWS CLIcommande.

Avant de modifier la capacité de votre pool, vous pouvez répertorier votre capacité actuelle à l'aide de la describe-workspaces-pools AWS CLIcommande WorkSpaces Pools.

aws workspaces describe-workspaces-pools --name PoolId

La capacité actuelle du pool apparaîtra de la même manière que la sortie suivante (présentée au JSON format) :

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

Utilisez ensuite la put-scheduled-action commande pour créer une action planifiée afin de modifier la capacité de votre pool. Par exemple, la commande suivante modifie la capacité minimale à 3 et la capacité maximale à 5 chaque jour à 9h00UTC.

Note

Pour les expressions cron, spécifiez quand effectuer l'action dansUTC. Pour plus d'informations consultez Expressions Cron.

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

Pour vérifier que l'action planifiée visant à modifier la capacité de votre pool a bien été créée, exécutez la describe-scheduled-actionscommande.

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

Si l'action planifiée a été créée avec succès, la sortie apparaît comme suit.

{ "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" } ] }

Pour plus d’informations, consultez Mise à l’échelle planifiée dans le Guide de l’utilisateur Application Auto Scaling..

Exemple 5 : application d'une politique de dimensionnement pour le suivi des cibles

Grâce au dimensionnement du suivi des cibles, vous pouvez spécifier un niveau d'utilisation de la capacité pour votre pool.

Lorsque vous créez une politique de dimensionnement pour le suivi des cibles, Application Auto Scaling crée et gère automatiquement les CloudWatch alarmes qui déclenchent la politique de dimensionnement. La stratégie de dimensionnement ajoute ou supprime de la capacité si nécessaire pour maintenir l'utilisation de la capacité à la valeur cible spécifiée ou proche de celle-ci. Pour garantir la disponibilité des applications, votre pool évolue proportionnellement à la métrique aussi vite que possible, mais de manière plus progressive.

La put-scaling-policycommande suivante définit une politique de dimensionnement du suivi des cibles qui tente de maintenir une utilisation de la capacité de 75 % pour un WorkSpaces pool.

aws application-autoscaling put-scaling-policy -- cli-input-json file://config.json

Le contenu du fichier config.json est le suivant :

{ "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 } }

Si la commande est réussie, la sortie est similaire à ce qui suit, bien que certains détails soient uniques pour votre compte et votre région. Dans cet exemple, l'identificateur de stratégie est 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" } ] }

Pour plus d’informations, consultez Stratégies de dimensionnement Suivi de cible dans le Guide de l’utilisateur Application Auto Scaling.

Ressources supplémentaires

Pour en savoir plus sur l'utilisation des AWS CLI commandes ou API actions Application Auto Scaling, consultez les ressources suivantes :