View a markdown version of this page

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 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 streamer 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 des configurations de votre pool et des politiques de dimensionnement automatique, 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 la mise à l'échelle automatique et de faire fonctionner le pool à une taille fixe.

Note
  • Lors de l'élaboration de votre plan de mise à l'échelle des WorkSpaces pools, assurez-vous que la configuration de votre réseau répond à vos exigences.

  • Lorsque vous utilisez la mise à l’échelle, vous utilisez l’API Application Auto Scaling. Pour qu'Auto Scaling fonctionne correctement avec les WorkSpaces pools, Application Auto Scaling nécessite l'autorisation de décrire et de mettre à jour vos pools et de 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 Auto Scaling for WorkSpaces Pools.

Concepts de dimensionnement

WorkSpaces La mise à l'échelle des pools est assurée par Application Auto Scaling. Pour plus d'informations, consultez la Référence de l'API Application Auto Scaling.

Pour utiliser efficacement Auto Scaling with WorkSpaces Pools, vous devez comprendre les termes et concepts suivants.

Nombre minimal de sessions capacity/minimum 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 feront pas évoluer votre pool en dessous de cette valeur. Par exemple, si vous définissez la capacité minimale d'un pool sur 2, celui-ci ne comptera jamais moins de 2 instances.

Nombre maximum de sessions capacity/maximum 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 feront pas évoluer votre pool au-delà de cette valeur. Par exemple, si vous définissez la capacité maximale d'un pool sur 10, celui-ci ne comptera jamais plus de 10 instances.

Capacité de session utilisateur souhaitée

Le nombre total de sessions en cours ou en attente. Cela représente le nombre total de sessions de streaming simultanées que votre pool peut prendre en charge en mode stable.

Élargir l'action politique

L'action que les politiques de dimensionnement effectuent 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 la capacité de session utilisateur souhaitée est de 4 et que l'action de stratégie de mise à l'échelle est définie sur « Ajouter 25 % de capacité », la capacité de session utilisateur souhaitée est augmentée de 25 % à 5 lorsque la condition de politique de dimensionnement est remplie.

Condition de 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 %, la condition de votre politique de dimensionnement doit être « Si l'utilisation de la capacité est supérieure à 50 % ».

Métrique de 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é

Le pourcentage d'instances d'un pool qui sont utilisées. 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 la mise à l'échelle à l'aide de la WorkSpaces console de l'une des deux manières suivantes : lors de la création du pool, ou à tout moment, à l'aide de l'onglet Pools. Après avoir créé des pools, accédez à l'onglet Politiques de dimensionnement pour ajouter de nouvelles politiques de dimensionnement pour votre pool. Pour plus d’informations, consultez Créer 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 vous attendez à un nombre fixe d'utilisateurs ou si vous avez d'autres raisons pour désactiver la mise à l'échelle, vous pouvez configurer votre pool avec un nombre fixe d'instances pour les sessions utilisateur.

Pour ce faire, définissez la capacité minimale en fonction du nombre d'instances souhaité. Réglez la capacité maximale pour qu'elle corresponde au moins à la valeur de la capacité minimale. Cela permet d'éviter les erreurs de validation, mais la capacité maximale sera finalement ignorée car le pool ne sera pas redimensionné. Supprimez ensuite toutes les politiques de dimensionnement pour ce pool.

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/v2/home.

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

  3. Sélectionnez la piscine.

  4. Sur la page de ce pool, faites défiler la page jusqu'à Capacité et évolutivité.

  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é planifiée, Ajouter une nouvelle politique de dimensionnement ou Ajouter une nouvelle échelle à la politique.

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

  • Scaling out = 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 mise à l'échelle. Lors d'un événement d'échelle, 6 instances seront récupérées, s'il y a suffisamment d'instances sans sessions utilisateur actives et si le nombre total d'instances ne descend pas en dessous de la capacité minimale de 10 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.

Gérer le dimensionnement du pool à l'aide du AWS INTERFACE DE LIGNE DE COMMANDE (CLI)

Vous pouvez configurer et gérer la mise à l'échelle du pool à l'aide de la AWS Command Line Interface (AWS CLI). Pour des fonctionnalités plus avancées telles que la définition des temps de recharge d'entrée et de sortie d'échelle, utilisez l'interface de ligne de commande. AWS Avant d'exécuter les commandes de politique de dimensionnement, vous devez enregistrer votre pool en tant que cible évolutive. Pour ce faire, utilisez la commande register-scalable-target suivante :

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

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

Cet exemple de AWS CLI met en place une politique de dimensionnement qui permet de redimensionner un pool de 25 % si l'utilisation est supérieure ou égale à 75 %.

La commande put-scaling-policy suivante définit une stratégie 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:DesiredUserSessions", "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"}

À présent, 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 l’ARN de stratégie renvoyé par la commande précédente pour le paramètre -- alarm-actions.

aws cloudwatch put-metric-alarm --alarm-name alarmname \ --alarm-description "Alarm when Available User Session Capacity exceeds 75 percent" \ --metric-name AvailableUserSessionCapacity \ --namespace AWS/WorkSpaces \ --statistic Average \ --period 300 \ --threshold 75 \ --comparison-operator GreaterThanOrEqualToThreshold \ --dimensions "Name=WorkSpaces pool ID,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 : appliquer une politique de dimensionnement en fonction d'erreurs de capacité insuffisante

Cet exemple de AWS CLI met en place une politique de dimensionnement qui redimensionne 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:DesiredUserSessions", "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"}

À présent, 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 l’ARN de stratégie renvoyé par la commande précédente pour le paramètre --alarm-actions.

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 de la capacité

Cet AWS CLI exemple met en place une politique de dimensionnement qui évolue dans le pool afin de réduire la capacité réelle lorsqu'elle UserSessionsCapacityUtilization est faible.

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:DesiredUserSessions", "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"}

À présent, 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 l’ARN de stratégie renvoyé par la commande précédente pour le paramètre --alarm-actions.

aws cloudwatch put-metric-alarm --alarm-name alarmname \ --alarm-description "Alarm when Capacity Utilization is less than or equal to 25 percent" \ --metric-name UserSessionsCapacityUtilization \ --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 pool en fonction d'un calendrier vous permet d'augmenter la capacité de votre pool 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'action de l'PutScheduledActionAPI Application Auto Scaling ou la commande CLI https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html AWS put-scheduled-action.

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

aws workspaces describe-workspaces-pools --name PoolId

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

{ "CapacityStatus": { "AvailableUserSessions": 1, "DesiredUserSessions": 1, "ActualUserSessions": 1, "ActiveUserSessions": 0 }, }

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

Note

Pour les expressions cron, spécifiez quand effectuer l'action en heure UTC. 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:DesiredUserSessions

Pour vérifier que l'action planifiée visant à modifier la capacité de votre pool a bien été créée, exécutez la commande https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html describe-scheduled-actions.

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:DesiredUserSessions", "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 du suivi des cibles

Grâce à la mise à l'échelle 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 du suivi des cibles, Application Auto Scaling crée et gère automatiquement CloudWatch les 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 évolue plus progressivement.

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

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:DesiredUserSessions", "PolicyType":"TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration":{ "TargetValue":75.0, "PredefinedMetricSpecification":{ "PredefinedMetricType":"WorkSpacesAverageUserSessionsCapacityUtilization" }, "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 commandes de l' AWS interface de ligne de commande Application Auto Scaling ou des actions d'API, consultez les ressources suivantes :