Exécuter un site web ou une application ne doit pas nécessairement être coûteux. En fait, il existe des moyens d’économiser de l’argent sur les ressources tout en offrant aux utilisateurs une excellente expérience. Un exemple est l’utilisation de l’autoscaling AWS EC2.
EC2 Auto Scaling est un service qui peut aider à ajuster automatiquement la capacité de votre Amazon EC2 à la hausse ou à la baisse selon les conditions que vous définissez. Et dans ce tutoriel, vous apprendrez comment configurer et appliquer une configuration de base d’autoscaling EC2 sur AWS pour vos applications.
Suivez et assurez-vous que votre application dispose toujours des ressources nécessaires sans payer plus que nécessaire!
Prérequis
Ce tutoriel comprend des démonstrations pratiques. Pour suivre, vous aurez besoin d’un compte AWS, et un compte gratuit serait suffisant.
Création d’un modèle de lancement
Avant de vous lancer dans l’autoscaling AWS EC2, vous avez d’abord besoin d’un moyen de lancer une instance EC2, un modèle de lancement (similaire à la configuration de lancement). Un modèle de lancement contient toutes les informations nécessaires pour lancer une instance EC2, telles que le type d’instance, le sous-réseau et les groupes de sécurité.
AWS recommande l’utilisation d’un modèle de lancement, offrant plus de flexibilité et de fonctionnalités avancées qu’une configuration de lancement. EC2 Auto Scaling utilise un modèle de lancement pour lancer de nouvelles instances lors de l’ajout de capacité.
Pour créer un modèle de lancement :
1. Ouvrez votre navigateur Web préféré et connectez-vous à la Console de gestion AWS.
2. Recherchez les modèles de lancement EC2 dans la barre de recherche et sélectionnez « Modèles de lancement » dans les résultats sous « Fonctionnalités ». Cela ouvre la page des modèles de lancement EC2.

3. Ensuite, sélectionnez une région dans la liste déroulante (en haut à droite) et cliquez sur « Créer un modèle de lancement » pour commencer la création d’un modèle de lancement.
Vous pouvez utiliser l’auto-scaling dans n’importe quelle région prenant en charge l’auto-scaling EC2, mais ce tutoriel utilise US East (N. Virginia).

4. Maintenant, configurez le nom et la description du nouveau modèle de lancement comme suit :
- Nom du modèle de lancement – requis – Fournissez un nom pour votre modèle de lancement (ec2-autoscaling-template-demo). Le nom doit être unique dans la région, ne pas dépasser 128 caractères et ne contenir que des caractères spéciaux autres que des tirets (-), des tirets bas (_), et des points (.).
- Description de la version du modèle – Saisissez une description pour votre modèle de lancement (ec2 autoscaling template demo), et ne dépassez pas 255 caractères.
- Conseils sur l’Auto Scaling – Cochez l’option Fournir des conseils pour m’aider à configurer un modèle que je peux utiliser avec EC2 Auto Scaling pour activer les conseils d’auto-scaling. Cette option facilite la création d’un modèle de lancement compatible avec EC2 Auto Scaling.

5. Faites défiler jusqu’à la section Contenu des modèles de lancement, et choisissez des images d’application et de système d’exploitation pour votre modèle de lancement avec les éléments suivants :
- Images d’application et de système d’exploitation (Amazon Machine Image) – Sélectionnez une image d’amorçage pour votre modèle, mais ce tutoriel utilise une Amazon Linux 2 AMI. Vos instances EC2 seront lancées en fonction de l’image d’amorçage sélectionnée.
Vous pouvez choisir n’importe quelle image d’amorçage, mais une Amazon Linux 2 AMI est recommandée car elle est éligible pour le niveau gratuit.
- Architecture – Sélectionnez une architecture pour votre modèle, mais ce tutoriel utilise x86-64 (64 bits).

6. Ensuite, définissez le type d’instance et la paire de clés (connexion) pour votre modèle de lancement comme suit :
- Type d’instance – Sélectionnez le type d’instance pour votre modèle. Mais le choix de ce tutoriel est t2.micro car il est éligible pour le niveau gratuit.
Considérez d’autres facteurs lors du choix d’un type d’instance, tels que les besoins en CPU et en mémoire, car certains types d’instances sont plus coûteux que d’autres.
- Paire de clés (connexion) – Sélectionnez Ne pas inclure dans le modèle de lancement car cela n’est pas nécessaire pour l’auto-scaling.
Lorsqu’une paire de clés est spécifiée, EC2 Auto Scaling lance vos instances avec la paire de clés.

7. Sous Paramètres réseau, choisissez l’option Sélectionner un groupe de sécurité existant et spécifiez un paramètre de groupes de sécurité pour vos instances EC2. Ceci permet à EC2 Auto Scaling de lancer vos instances avec ce groupe de sécurité.
Notez que vous pouvez choisir l’option Créer un groupe de sécurité si vous souhaitez créer un nouveau groupe de sécurité pour vos instances EC2.

8. Conservez les autres paramètres par défaut, et cliquez sur Créer un modèle de lancement (en bas à droite) sous la liste déroulante Résumé pour créer votre modèle de lancement.

9. Enfin, cliquez sur Créer un groupe de mise à l’échelle automatique sous la section Créer un groupe de mise à l’échelle automatique à partir de votre modèle pour continuer.
Ne fermez pas la page du modèle de lancement car vous allez créer votre groupe de mise à l’échelle automatique dans la section suivante, un à la fois.

Création d’un groupe de mise à l’échelle automatique AWS EC2
Maintenant que vous avez un modèle de lancement EC2, vous devrez créer un groupe de mise à l’échelle automatique AWS EC2 pour contenir votre instance EC2. AWS EC2 Auto Scaling propose des fonctionnalités qui vous permettent d’utiliser des remplacements de vérification d’état et des stratégies de mise à l’échelle.
Vous pouvez créer un groupe de mise à l’échelle automatique avec plusieurs instances si vous le souhaitez. Mais dans ce tutoriel, vous allez créer un groupe de mise à l’échelle automatique à instance unique pour démontrer comment fonctionne le dimensionnement automatique.
1. Configurez le groupe de mise à l’échelle automatique avec les éléments suivants tout en restant sur la page Créer un modèle de lancement:
- Nom du groupe Auto Scaling – Entrez un nom pour votre groupe Auto Scaling (ec2-autoscaling-group-demo). Le nom doit être unique dans votre région AWS et ne pas dépasser 255 caractères de longueur.
- Modèle de lancement – Sélectionnez votre modèle de lancement EC2 dans la liste déroulante (ec2-autoscaling-template-demo).
- Cliquez sur Suivant pour continuer.

2. Ensuite, laissez tous les paramètres par défaut tels qu’ils sont, mais sélectionnez un VPC et un sous-réseau existants pour votre groupe Auto Scaling, puis cliquez sur Suivant pour continuer.
La spécification de ces paramètres permet à votre groupe Auto Scaling de savoir où lancer vos instances EC2.

3. Gardez les paramètres par défaut et cliquez sur Suivant pour continuer.

4. Maintenant, configurez la taille du groupe de votre groupe Auto Scaling comme suit :
Capacity | Limit | Details |
Desired | 1 | Set the number of instances you want in your Auto Scaling group. The desired capacity must be greater than or equal to the minimum capacity and less than or equal to the maximum capacity. |
Minimum | 1 | Set the minimum number of instances in your Auto Scaling group. The value must be greater than or equal to 1 and less than or equal to the maximum capacity. |
Maximum | 1 | Set the maximum number of instances you want in your Auto Scaling group. |

5. Faites défiler vers le bas, gardez les paramètres par défaut, et cliquez sur Passer en revue pour continuer.
- Politiques de mise à l’échelle – Gardez l’option Aucune sélectionnée car vous utiliserez une politique de mise à l’échelle simple. Cette politique augmente la capacité désirée de votre groupe Auto Scaling d’une instance EC2 lorsque l’ancienne instance du groupe a été terminée.
- Protection contre la réduction de l’échelle des instances – Gardez cette option désactivée car vous n’en avez pas besoin dans ce tutoriel. Activer cette option vous permet de contrôler si votre groupe Auto Scaling peut terminer votre instance lors de la réduction de l’échelle.

6. Enfin, passez en revue les paramètres de votre groupe Auto Scaling et cliquez sur Créer un groupe de mise à l’échelle automatique (en bas à droite) pour créer votre groupe Auto Scaling.

Une fois créé, vous verrez votre groupe de mise à l’échelle automatique répertorié, comme indiqué ci-dessous.

Test d’un groupe de mise à l’échelle automatique AWS EC2
Génial! Vous avez réussi à créer un groupe de mise à l’échelle automatique AWS EC2 pour contenir votre instance EC2. Mais comment savez-vous que votre groupe de mise à l’échelle automatique fonctionne?
Vous vérifierez que votre groupe de mise à l’échelle automatique AWS EC2 a lancé une instance EC2. Cette instance est celle que vous avez spécifiée (capacité souhaitée) à l’étape quatre de la section « Création d’un groupe de mise à l’échelle automatique AWS EC2 ».
1. Cochez la case à côté de votre groupe de mise à l’échelle automatique nouvellement créé et cliquez sur l’onglet Activité pour voir toutes les activités de votre groupe de mise à l’échelle automatique.
Sous la section Historique des activités en bas, vous verrez la Description de l’événement le plus récent dans votre groupe de mise à l’échelle automatique. Dans ce cas, la description indique le lancement d’une nouvelle instance EC2, avec le statut Réussi et l’ID de l’instance (i-09b699064f6e06070).
Copiez l’ID de l’instance, car vous en aurez besoin pour vérifier votre instance à l’étape suivante.

2. Accédez au tableau de bord EC2 et comparez l’ID de l’instance que vous avez copié à l’étape un avec les instances en cours d’exécution.
Voir que les deux ID d’instances correspondent indique que votre groupe de mise à l’échelle automatique a lancé avec succès une instance EC2.

3. De retour dans la page du groupe de mise à l’échelle automatique, cliquez sur l’onglet Gestion des instances, et vous verrez toutes les informations sur vos instances EC2 en un seul endroit. La pièce la plus critique d’informations sur cet onglet sont:
- La colonne Lifecycle – Vous pouvez voir que l’instance EC2 dans votre groupe de mise à l’échelle automatique est dans l’état InService, ce qui signifie que l’instance est disponible pour traiter les demandes.
- La colonne Health status – Vous pouvez voir que l’état de vérification de la santé de votre instance EC2 est Healthy, ce qui indique que l’instance réussit toutes les vérifications de santé.
Terminer une instance EC2
Maintenant que vous avez vérifié que votre groupe de mise à l’échelle automatique fonctionne, vous pouvez tester davantage le groupe de mise à l’échelle automatique en terminant manuellement l’instance EC2 à l’intérieur. N’oubliez pas que la terminaison d’une instance dans le groupe amène le groupe de mise à l’échelle automatique à lancer automatiquement une nouvelle instance EC2 en remplacement.
Dans des cas réels, vous utiliseriez un groupe de mise à l’échelle automatique pour augmenter automatiquement en réponse à des conditions changeantes. Quand ? Par exemple, l’un de vos serveurs web NGINX est surchargé de demandes et risque de tomber en panne.
Mais pour l’instant, vous testerez votre groupe de mise à l’échelle automatique en terminant manuellement l’instance EC2 pour simuler ce qui se passerait si une instance échouait.
1. Accédez à vos instances et cochez la case à côté de l’instance pour la sélectionner.
Une fois sélectionné, cliquez sur le menu déroulant État de l’instance → Terminer l’instance pour mettre fin à l’instance sélectionnée.

2. Ensuite, cliquez sur Terminer lorsqu’on vous demande de confirmer la terminaison de l’instance.

Ci-dessous, vous pouvez voir un message indiquant que l’instance EC2 a été arrêtée avec succès.
La période de refroidissement par défaut pour un groupe de mise à l’échelle automatique est de 300 secondes (5 minutes), ce qui signifie que le groupe de mise à l’échelle automatique mettra au moins cinq minutes pour lancer une nouvelle instance après que vous ayez arrêté l’ancienne.

Enfin, vérifiez l’historique des activités dans le groupe de mise à l’échelle automatique en attendant que la nouvelle instance soit lancée.
Comme le montre ci-dessous, vous verrez qu’une nouvelle instance EC2 a été lancée automatiquement. Cette sortie confirme que votre groupe de mise à l’échelle automatique fonctionne comme prévu.

Conclusion
La gestion de la charge pour votre application est une partie essentielle pour maintenir son bon fonctionnement. Heureusement, avec AWS EC2 Auto Scaling, vous pouvez vous assurer que votre application dispose toujours des ressources nécessaires pour gérer les fluctuations de trafic.
Et dans ce tutoriel, vous avez appris comment créer un groupe de mise à l’échelle automatique, lancer des instances dans le groupe et ajuster le groupe en réponse aux conditions changeantes. À ce stade, vous pouvez maintenant créer en toute confiance des groupes de mise à l’échelle automatique AWS EC2 pour vos applications.
Avec cette connaissance nouvellement acquise, pourquoi ne pas créer des groupes de mise à l’échelle automatique avec AWS CloudFormation pour encore plus de commodité ? Vous vous remercierez plus tard lorsque votre charge augmentera, et que vous n’aurez pas à vous soucier de provisionner manuellement plus de ressources !