Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous créez un groupe identique, vous définissez le nombre d’instances de machine virtuelle que vous souhaitez exécuter. À mesure que la demande de votre application change, vous pouvez augmenter ou diminuer automatiquement le nombre d’instances de machine virtuelle. La capacité de mise à l’échelle automatique vous permet de suivre la demande du client ou de répondre aux changements de performances de votre application tout au long de son cycle de vie. Ce didacticiel vous montre comment effectuer les opérations suivantes :
- Utiliser la mise à l’échelle automatique avec un groupe identique
- Créer et utiliser des règles de mise à l’échelle automatique
- Simuler la charge du processeur pour déclencher des règles de mise à l’échelle automatique
- Surveiller les actions de mise à l’échelle automatique à mesure que la demande change
Si vous n’avez pas de compte Azure, créez un compte gratuit avant de commencer.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour obtenir plus d’informations, consultez Démarrage d’Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir d’autres options de connexion, consultez S’authentifier auprès d’Azure à l’aide d’Azure CLI.
Quand vous y êtes invité, installez l’extension Azure CLI à la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser et gérer des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
- Ce tutoriel nécessite Azure CLI version 2.0.32 ou ultérieure. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.
Créer un groupe identique
Créez un groupe de ressources avec la commande az group create.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="WestUS2"
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION
Créez à présent un groupe de machines virtuelles identiques avec az vmss create. L’exemple suivant crée un ensemble de mise à l’échelle avec un nombre d’instances de 2, génère des clés SSH s'il n'en existe pas et utilise une image Ubuntu2204 valide.
export MY_SCALE_SET_NAME="myScaleSet$RANDOM_SUFFIX"
az vmss create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--instance-count 2 \
--admin-username azureuser \
--generate-ssh-keys
Définir un profil de mise à l’échelle automatique
Pour activer la mise à l’échelle automatique sur un groupe identique, vous devez d’abord définir un profil de mise à l’échelle automatique. Ce profil définit les capacités par défaut, minimale et maximale du groupe identique. Ces limites vous permettent de contrôler le coût en évitant de créer continuellement des instances de machine virtuelle et d’équilibrer les performances acceptables sur un nombre minimal d’instances qui restent dans un événement de diminution du nombre d’instances. Créez un profil de mise à l’échelle automatique az monitor autoscale create. L’exemple suivant définit la capacité par défaut et minimale de 2 instances de machine virtuelle, et un maximum de 10 :
az monitor autoscale create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--resource $MY_SCALE_SET_NAME \
--resource-type Microsoft.Compute/virtualMachineScaleSets \
--name autoscale \
--min-count 2 \
--max-count 10 \
--count 2
Créer une règle pour le scale-out automatique
Si la demande de votre application augmente, la charge sur les instances de machine virtuelle dans votre groupe identique augmente. Si cette charge accrue est cohérente, au lieu d’une courte demande, vous pouvez configurer des règles de mise à l’échelle automatique pour augmenter le nombre d’instances de machine virtuelle. Lorsque ces instances sont créées et que votre application est déployée, l'ensemble de mise à l'échelle commence à distribuer le trafic vers elles via l'équilibreur de charge. Vous contrôlez les métriques à surveiller, la durée pendant laquelle la charge doit respecter un seuil donné et le nombre d’instances de machine virtuelle à ajouter.
Créez une règle avec az monitor autoscale rule create qui augmente le nombre d’instances de machine virtuelle lorsque la charge moyenne du processeur est supérieure à 70% sur une période de 5 minutes. Lorsque la règle se déclenche, le nombre d’instances de machine virtuelle est majoré de trois unités.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU > 70 avg 5m" \
--scale out 3
Créer une règle pour le scale-in automatique
Lorsque la demande d’application diminue, la charge sur les instances de machine virtuelle diminue. Si cette diminution de la charge persiste pendant un certain temps, vous pouvez configurer des règles de mise à l’échelle automatique pour réduire le nombre d’instances de VM dans l’ensemble de mise à l’échelle. Cette action de mise à l’échelle permet de réduire les coûts en exécutant uniquement le nombre nécessaire d’instances requises pour répondre à la demande actuelle.
Créez une autre règle avec az monitor autoscale rule create qui réduit le nombre d’instances de machine virtuelle lorsque la charge moyenne du processeur tombe en dessous de 30% sur une période de 5 minutes. L’exemple suivant illustre un scale-in du nombre d’instances de machine virtuelle d’une unité.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU < 30 avg 5m" \
--scale in 1
Simuler une charge d’UC sur un groupe identique
Pour tester les règles de mise à l’échelle automatique, vous devez simuler une charge processeur soutenue sur les instances de machine virtuelle dans l'ensemble de mise à l'échelle. Dans cette approche minimaliste, nous évitez d’installer des packages supplémentaires à l’aide de la commande intégrée yes pour générer la charge du processeur. La commande suivante démarre 3 processus en arrière-plan qui génèrent en continu des données /dev/null pendant 60 secondes, puis les terminent.
for i in {1..3}; do
yes > /dev/null &
done
sleep 60
pkill yes
Cette commande simule la charge du processeur sans introduire d’erreurs d’installation de package.
Surveiller les règles actives de mise à l’échelle automatique
Pour surveiller le nombre d’instances de machine virtuelle dans votre jeu d'échelles, utilisez la commande watch. Il peut prendre jusqu’à 5 minutes pour que les règles de mise à l’échelle automatique commencent le processus de scale-out en réponse à la charge du processeur. Toutefois, une fois qu’il se produit, vous pouvez quitter la montre avec les touches Ctrl + C .
À ce moment-là, l'ensemble de mise à l'échelle augmentera automatiquement le nombre d'instances de machines virtuelles pour répondre à la demande. La commande suivante affiche la liste des instances de machine virtuelle dans le groupe de mise à l'échelle :
az vmss list-instances \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--output table
Une fois que le seuil de l’UC est atteint, les règles de mise à l’échelle automatique augmentent le nombre d’instances de machine virtuelle au sein du groupe identique. La sortie affiche la liste des instances de machine virtuelle à mesure que de nouvelles instances sont créées.
InstanceId LatestModelApplied Location Name ProvisioningState ResourceGroup VmId
------------ -------------------- ---------- --------------- ------------------- -------------------- ------------------------------------
1 True WestUS2 myScaleSet_1 Succeeded myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2 True WestUS2 myScaleSet_2 Succeeded myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4 True WestUS2 myScaleSet_4 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
5 True WestUS2 myScaleSet_5 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
6 True WestUS2 myScaleSet_6 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Une fois que la charge du processeur diminue, la charge moyenne du processeur revient à la normale. Lorsque 5 autres minutes ont passé, les règles de mise à l’échelle automatique effectuent un scale-in du nombre d’instances de machine virtuelle. Les actions de mise à l’échelle suppriment d’abord les instances de machine virtuelle avec les ID les plus élevés. Lorsqu'un ensemble de machines virtuelles utilise des ensembles de disponibilité ou des zones de disponibilité, les actions de réduction sont réparties uniformément entre les instances de machine virtuelle. L’exemple de sortie suivant montre une instance de machine virtuelle supprimée lors d’un scale-in automatique du groupe identique :
6 True WestUS2 myScaleSet_6 Deleting myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Nettoyer les ressources
Pour supprimer votre ensemble d'échelles et les ressources associées, supprimez manuellement le groupe de ressources à l’aide de votre méthode préférée.
Étapes suivantes
Dans ce tutoriel, vous avez appris à effectuer automatiquement un scale-in ou un scale-out d’un groupe identique avec Azure CLI :
- Utiliser la mise à l’échelle automatique avec un groupe identique
- Créer et utiliser des règles de mise à l’échelle automatique
- Simuler la charge du processeur pour déclencher des règles de mise à l’échelle automatique
- Surveiller les actions de mise à l’échelle automatique à mesure que la demande change