Êtes-vous fatigué de surveiller la charge de vos instances AWS et du trafic qu’elles reçoivent ? Pourquoi ne pas automatiser tout en déployant les groupes Auto Scaling de Terraform ? Le scaling automatique permet à certains serveurs de se mettre en veille pendant les périodes de faible charge et d’ajouter davantage de serveurs en cas de charge élevée, ce qui permet aux entreprises d’économiser sur les coûts d’électricité.
Dans ce tutoriel, vous apprendrez à créer et exécuter une configuration Terraform pour construire des groupes Auto Scaling et les déployer avec Terraform.
Lisez la suite et atteignez une disponibilité de zéro sur vos instances!
Prérequis
Ce post sera un tutoriel étape par étape. Si vous souhaitez suivre, assurez-vous d’avoir les éléments suivants en place :
- Un compte Amazon Web Service (AWS).
- A code editor – Even though you can use any text editor to work with Terraform configuration files, consider using Visual Studio (VS) Code as it understands the HCL Terraform language well.
- Terraform – Ce tutoriel utilise Terraform v1.1.5 fonctionnant sous Ubuntu 20.04 LTS, mais tout système d’exploitation avec Terraform devrait fonctionner.
Construction de la configuration Terraform pour un groupe Auto Scaling AWS
Avant d’exécuter les commandes Terraform pour construire et déployer l’infrastructure, vous devez créer les fichiers de configuration Terraform. Vous allez créer une configuration Terraform pour créer un groupe Autoscaling AWS dans votre compte AWS.
1. Connectez-vous à votre machine en utilisant votre client SSH préféré.
2. Ensuite, créez un dossier nommé ~/terraform-autoscaling-demo, puis changez (cd
) le répertoire de travail vers ce dossier. Ce dossier contiendra tous les fichiers de configuration sur lesquels vous travaillerez dans ce tutoriel.
3. Ouvrez votre éditeur de code préféré, copiez/collez la configuration suivante et enregistrez le fichier sous le nom de main.tf dans le répertoire ~/terraform-autoscaling-demo. Ce fichier main.tf est la configuration Terraform pour le groupe Autoscaling.
Le code ci-dessous crée une configuration de lancement autoscaling (web_config
) et provisionne un groupe Autoscaling (autoscalegroup
). Le groupe Autoscaling est également accompagné de ses composants (aws_autoscaling_schedule
et aws_autoscaling_policy
).
4. Créez un autre fichier dans ~/terraform-autoscaling-demo appelé provider.tf, et remplissez le contenu ci-dessous. Le fichier provider.tf définit des fournisseurs tels que AWS, Oracle, Azure, etc. Ce fichier de configuration vous permet de connecter Terraform aux services cloud appropriés.
Le tutoriel créera des ressources dans la région us-east-1. Mais vous pouvez trouver la liste des régions prises en charge par AWS.
5. Enfin, exécutez la commande tree
ci-dessous pour vérifier que tous les fichiers requis sont présents dans le dossier de votre projet (~/terraform-autoscaling-demo
).

Création du groupe Autoscaling AWS avec une configuration Terraform
Maintenant que vous avez correctement configuré le fichier de configuration Terraform et les fichiers de variables, il est temps d’initialiser Terraform et de créer le groupe Autoscaling AWS.
Pour provisionner le groupe Autoscaling AWS, comme pour toutes les autres configurations Terraform, Terraform utilise trois commandes en séquence (terraform init
, terraform plan
, et terraform apply
).
1. Exécutez la commande terraform init
dans le répertoire ~/terraform-autoscaling-demo. La commande initialise les plugins et les fournisseurs nécessaires pour travailler avec les ressources.
Si tout se passe bien, vous verrez le message indiquant que Terraform a été initialisé avec succès dans la sortie, comme indiqué ci-dessous.

2. Ensuite, exécutez la commande terraform plan
pour vous assurer que votre syntaxe des fichiers de configuration est correcte et vous donne un plan des ressources qui seront provisionnées dans votre infrastructure.
En cas de succès, vous devriez voir un message indiquant le plan comme celui ci-dessous.

3. Enfin, exécutez la commande terraform apply
pour retirer les stabilisateurs de formation et invoquer Terraform pour créer le groupe AWS AutoScaling.
La commande indique à Terraform de lire chaque configuration (*.tf) dans le répertoire actuel pour compiler un état envoyé à AWS. Terraform construit ensuite le groupe AWS Autoscaling et d’autres composants.
Il n’y a pas de frais supplémentaires pour AWS Auto Scaling. Vous ne payez que pour les ressources AWS nécessaires à l’exécution de vos applications.

Vérification du groupe AWS Autoscaling dans le Cloud AWS
À ce stade, vous devriez avoir créé le groupe AWS Autoscaling et les composants associés avec Terraform. Mais comment savez-vous qu’ils existent dans votre nuage AWS ? Vérifiez le groupe Autoscaling en vérifiant manuellement dans la Console de gestion AWS.
1. Ouvrez votre navigateur Web préféré et connectez-vous à la Console de gestion AWS.
2. Sur la page d’accueil de la console, cliquez sur la barre de recherche, recherchez et cliquez sur ‘EC2’ pour accéder au tableau de bord EC2.
Cliquez sur l’élément de menu Groupe de mise à l’échelle automatique AWS dans le tableau de bord EC2 pour gérer vos groupes de mise à l’échelle automatique.
Le nombre souhaité d’instances AWS EC2 sera lancé dans le Cloud AWS dans le tableau de bord EC2 avec les éléments suivants de mise à l’échelle automatique.

3. Enfin, cliquez sur Configuration de lancement AWS Auto Scaling dans le tableau de bord EC2. Vous verrez votre configuration de lancement de mise à l’échelle automatique (web_config) comme indiqué ci-dessous.

Mise à l’échelle automatique de l’instance EC2 avec des tests de charge
Maintenant que vous avez vérifié que le groupe/politique de mise à l’échelle automatique et les composants associés sont correctement configurés, il est temps de tester si les fonctionnalités de mise à l’échelle automatique fonctionnent. Comment ? En ajoutant une charge à l’instance récemment lancée avec le groupe de mise à l’échelle automatique.
1. Ouvrez l’instance AWS EC2 lancée avec le groupe de mise à l’échelle automatique à l’aide d’un client SSH.
2. Ensuite, lancez le terminal et exécutez la commande ci-dessous pour installer
l’outil de test de charge (stress-ng
). L’outil de stress vous permet de définir et de générer du stress sur la machine Ubuntu.
Vous pouvez également trouver d’autres outils de test de charge disponibles sur le marché.

3. Exécutez la commande stress-ng
ci-dessous pour générer la charge de stress sur l’instance.
Le commandement ci-dessous contient les drapeaux suivants :
--cpu
– Indique le nombre de cœurs sur lesquels la charge sera générée.
-v
– Active le mode verbeux.
--timeout
– Spécifie la durée pendant laquelle la charge doit être générée.

4. Exécutez maintenant la commande top
ci-dessous dès que vous générez la charge pour afficher les processus Linux.
Vous pouvez voir que le CPU augmente après la génération de la charge sur l’instance.

5. Accédez au service AWS CloudWatch sur AWS Cloud. Vous remarquerez qu’une alarme est générée lorsque le CPU dépasse (10%). L’alarme a notifié au groupe de mise à l’échelle automatique de faire passer le nombre d’instances de un à deux, comme spécifié dans le groupe de mise à l’échelle automatique.

6. Enfin, accédez à vos Instances dans le tableau de bord EC2 pour vérifier les instances EC2 AWS.
Vous verrez qu’une instance de plus a été lancée, ce qui confirme la configuration réussie du groupe de mise à l’échelle automatique AWS et de ses composants.

Vous pouvez également vérifier les activités de mise à l’échelle automatique dans les activités du groupe AWS AutoScale, comme indiqué ci-dessous.

Conclusion
Dans ce tutoriel, vous avez appris comment utiliser Terraform pour déployer un groupe de mise à l’échelle automatique AWS et ses composants. Construire une application de mise à l’échelle automatique avec le groupe de mise à l’échelle automatique AWS vous permet de mettre à l’échelle en cas de besoin et est une tâche rapide.
Maintenant, avec ces connaissances nouvellement acquises, laissez-vous aller et mettez en œuvre le dimensionnement automatique avec d’autres services AWS sans vous soucier de la charge sur les serveurs!
Source:
https://adamtheautomator.com/terraform-autoscaling-group/