Mise à l’échelle des hôtes de session à l’aide d’Azure Automation et d’Azure Logic Apps pour Azure Virtual Desktop
Vous pouvez réduire le coût total de déploiement de Azure Virtual Desktop en procédant à la mise à l'échelle de vos machines virtuelles. Cela implique l'arrêt et la libération des machines virtuelles hôtes de session aux heures creuses, puis leur réactivation et leur réallocation aux heures de pointe.
Cet article présente l’outil de mise à l’échelle intégré avec le compte Azure Automation et Azure Logic Apps, qui met automatiquement à l’échelle des machines virtuelles hôtes de session dans un environnement Azure Virtual Desktop. Pour savoir comment utiliser l’outil de mise à l’échelle, consultez Configuration de la mise à l’échelle des hôtes de session à l’aide d’Azure Automation et d’Azure Logic Apps.
Remarque
La solution de mise à l’échelle automatique native d’Azure Virtual Desktop est généralement disponible pour les pools d’hôtes groupés et personnels et effectue automatiquement un scale-in ou un scale-out des machines virtuelles hôtes de session en fonction de la planification de mise à l’échelle. Nous vous recommandons d’utiliser la mise à l’échelle automatique pour faciliter la configuration. Pour plus d’informations, consultez Plans de mise à l’échelle automatique.
Fonctionnement de l'outil de mise à l'échelle
L'outil de mise à l'échelle fournit une option d'automatisation à faible coût pour les clients qui souhaitent optimiser les coûts de leurs machines virtuelles hôtes de session.
Vous pouvez utiliser l'outil de mise à l'échelle pour :
- Planifier le démarrage et l’arrêt des machines virtuelles en fonction des heures de pointe et des heures creuses.
- Effectuez un scale-out des machines virtuelles en fonction du nombre de sessions par cœur de processeur.
- Effectuez un scale-in des machines virtuelles pendant les heures creuses, en continuant à exécuter le nombre minimum de machines virtuelles hôtes de session.
L’outil de mise à l’échelle fonctionne à l’aide d’une combinaison de compte Azure Automation, de runbook PowerShell, de webhook et d’application Logic Apps. Lorsque l’outil s’exécute, l’application Logic Apps appelle un webhook pour lancer le runbook. Le runbook crée ensuite un travail.
Les heures de pointe et les heures creuses sont définies comme suit :
- Pic : heure à laquelle la concurrence maximale des sessions utilisateur est censée être atteinte.
- Non pic : heure à laquelle la concurrence minimale des sessions utilisateur est censée être atteinte.
Aux heures de pointe, le travail vérifie le nombre de sessions actives et la capacité en machines virtuelles de l'hôte de session en cours d'exécution pour chaque pool d'hôtes. Il utilise ces informations pour déterminer si les machines virtuelles hôtes de session en cours d’exécution peuvent prendre en charge les sessions existantes en fonction du paramètre SessionThresholdPerCPU défini dans le fichier CreateOrUpdateAzLogicApp.ps1. Si les machines virtuelles hôtes de session ne peuvent pas prendre en charge les sessions existantes, le travail lance des machines virtuelles hôtes de session supplémentaires dans le pool d’hôtes.
Notes
SessionThresholdPerCPU ne limite pas le nombre de sessions sur la machine virtuelle. Ce paramètre détermine uniquement quand de nouvelles machines virtuelles doivent être démarrées pour équilibrer la charge des connexions. Pour limiter le nombre de sessions, vous devez suivre les instructions configurer le paramètre MaxSessionLimit en conséquence.
Aux heures creuses, le travail détermine combien de machines virtuelles hôtes de session doivent être arrêtées, conformément au paramètre MinimumNumberOfRDSH. Si vous affectez une valeur positive différente de zéro au paramètre LimitSecondsToForceLogOffUser, le travail configure les machines virtuelles hôtes de session en mode maintenance pour empêcher les nouvelles sessions de se connecter aux hôtes. Le travail envoie une notification aux utilisateurs actuellement connectés pour leur demander d’enregistrer leur travail, attend le laps de temps configuré, puis force les utilisateurs à se déconnecter. Une fois que toutes les sessions utilisateur ont été déconnectées sur la machine virtuelle hôte de session, le travail arrête la machine virtuelle. Une fois la machine virtuelle arrêtée, le travail réinitialise le mode maintenance de son hôte de session.
Notes
Si vous configurez manuellement la machine virtuelle hôte de session en mode maintenance, le travail ne gère pas la machine virtuelle hôte de session. Si la machine virtuelle hôte de session est en cours d’exécution et configurée en mode maintenance, elle est considérée comme non disponible, et le travail démarrera des machines virtuelles supplémentaires pour gérer la charge. Nous vous recommandons d’étiqueter les machines virtuelles Azure avant de les configurer manuellement en mode maintenance. Vous pouvez nommer l’étiquette avec le paramètre MaintenanceTagName lors de la création du planificateur d’application logiques Azure. Les étiquettes vous aideront à distinguer ces machines virtuelles de celles gérées par l’outil de mise à l’échelle. La définition de l’étiquette de maintenance empêche également l’outil de mise à l’échelle d’apporter des modifications à la machine virtuelle jusqu’à ce que vous supprimiez l’étiquette.
Si vous affectez la valeur zéro au paramètre LimitSecondsToForceLogOffUser, le travail autorise le paramètre de configuration de session des stratégies de groupe spécifiées à gérer la déconnexion des sessions utilisateur. Pour afficher ces stratégies de groupe, accédez à Configuration ordinateur>Stratégies>Modèles d’administration>Composants Windows>Services Bureau à distance>Hôte de session Bureau à distance>Délais d’expiration des sessions. S'il reste des sessions en cours sur une machine virtuelle hôte de session, le travail laisse la machine virtuelle hôte de session s'exécuter. S’il ne reste aucune session en cours, le travail arrête la machine virtuelle hôte de session.
À tout moment, le travail prend également en compte le paramètre MaxSessionLimit du pool d’hôtes pour déterminer si le nombre actuel de sessions est supérieur à 90 % de la capacité maximale. Le cas échéant, il lance des machines virtuelles hôtes de session supplémentaires.
Le travail s'exécute périodiquement sur la base d'un intervalle de périodicité défini. Vous pouvez modifier cet intervalle en fonction de la taille de votre environnement Azure Virtual Desktop, mais n’oubliez pas que le démarrage et l’arrêt des machines virtuelles peuvent prendre un certain temps donc vous devez tenir compte. Nous vous recommandons de définir l'intervalle de périodicité sur : Toutes les 15 minutes.
Cela dit, l'outil présente également les limitations suivantes :
- Cette solution s’applique uniquement aux machines virtuelles hôtes de sessions multiples mises en pool.
- Cette solution permet de gérer les machines virtuelles de toutes les régions, mais ne peut être utilisée qu’au sein du même abonnement que votre compte Azure Automation et l’application logique Azure.
- La durée d’exécution maximale d’un travail dans le runbook est de trois heures. Si le démarrage ou l’arrêt des machines virtuelles dans le pool d’hôtes prend plus de temps, le travail échoue. Pour plus d’informations, consultez Ressources partagées.
- Au moins une machine virtuelle ou un hôte de session doit être activé pour que l’algorithme de mise à l’échelle fonctionne correctement.
- L’outil de mise à l’échelle ne prend pas en charge la mise à l’échelle en fonction du processeur ou de la mémoire.
- La mise à l’échelle ne fonctionne qu’avec les hôtes existants dans le pool d’hôtes. L’outil de mise à l’échelle ne prend pas en charge la mise à l’échelle des nouveaux hôtes de session.
Notes
L’outil de mise à l’échelle contrôle le mode d’équilibrage de charge du pool d’hôtes qu’il met actuellement à l’échelle. L’outil utilise le mode d’équilibrage de charge à largeur prioritaire pour les heures de pointe et les heures creuses.