Mise à l'échelle et équilibrage de la charge de votre architecture
Présentation de l'atelier Au cours de cet atelier, vous allez utiliser Elastic Load Balancing (ELB) et Amazon EC2 Auto Scaling pour assurer l'équilibrage de charge et la mise à l'échelle automatique de votre infrastructure. ELB répartit automatiquement le trafic d'application entrant entre plusieurs instances Amazon Elastic Compute Cloud (Amazon EC2). ELB fournit la capacité d'équilibrage de charge nécessaire à l'acheminement du trafic d'application pour vous permettre de conférer à vos applications une plus grande tolérance aux pannes. Auto Scaling vous permet de maintenir la disponibilité de vos applications et vous donne la possibilité d'augmenter ou de diminuer automatiquement votre capacité Amazon EC2 selon les conditions que vous définissez. Vous pouvez utiliser Auto Scaling pour vous assurer que vous exécutez le nombre d'instances EC2 souhaité. Auto Scaling peut également augmenter automatiquement le nombre d'instances EC2 pendant les pics de demande pour maintenir le niveau de performance, mais également diminuer la capacité en période de faible activité afin de réduire les coûts. Auto Scaling est tout indiqué pour les applications qui se caractérisent par une demande stable ou dont l'utilisation connaît des variations horaires, journalières ou hebdomadaires. L'architecture de départ est la suivante : Architecture de départ illustrant l'infrastructure AWS avec l'instance Web Server 1 dans le sous-réseau public. L'architecture finale est la suivante : Architecture finale illustrant les instances ELB et EC2 dans un groupe Auto Scaling dans des sous-réseaux privés répartis entre 2 zones de disponibilité Objectifs À la fin de cet atelier, vous serez en mesure d'effectuer les tâches suivantes : Créer une AMI à partir d'une instance EC2 Créer un équilibreur de charge Créer un modèle de lancement et un groupe Auto Scaling Configurer un groupe Auto Scaling pour mettre à l'échelle les nouvelles instances au sein de sous-réseaux privés Utiliser des alarmes Amazon CloudWatch pour surveiller les performances de votre infrastructure Tâche 1 : création d'une AMI pour Auto Scaling Au cours de cette tâche, vous allez créer une AMI à partir de l'instance Web Server 1 existante. Cette action enregistre le contenu du disque de démarrage afin que les nouvelles instances puissent être lancées avec le même contenu. Dans la barre de recherche de la Console de gestion AWS, saisissez et sélectionnez EC2 pour ouvrir la Console de gestion Amazon EC2. Dans le volet de navigation de gauche, recherchez la section Instances, puis choisissez Instances. L'instance Web Server 1 est répertoriée. Vous allez à présent créer une AMI à partir de cette instance. Choisissez l'instance Web Server 1 qui devrait être à l'état En cours d'exécution. À partir de la liste déroulante Actions , choisissez Image et modèles > Créer une image, puis configurez les options suivantes : Pour Nom de l'image, entrez Web Server AMI. Pour Description de l'image - facultatif, entrez Lab AMI for Web Server. Choisissez Créer une image. L'écran de confirmation affiche l'ID de votre nouvelle AMI. Vous allez utiliser cette AMI lors du lancement du groupe Auto Scaling, plus tard dans cet atelier. Tâche 2 : création d'un équilibreur de charge Au cours de cette tâche, vous allez créer un équilibreur de charge capable d'équilibrer le trafic entre plusieurs instances EC2 et zones de disponibilité. Dans le volet de navigation de gauche, recherchez la section Équilibrage de charge, puis choisissez Équilibreurs de charge. Choisissez Créer un équilibreur de charge. Dans la section Types d'équilibreurs de charge, sous Application Load Balancer, choisissez Créer. Sur la page Créer un Application Load Balancer, dans la section Configuration de base, configurez l'option suivante : Pour Nom de l'équilibreur de charge, entrez LabELB. Dans la section Mappage réseau, configurez les options suivantes : Pour VPC, choisissez Lab VPC. Pour Mappages, choisissez les deux zones de disponibilité répertoriées. Pour la première zone de disponibilité, choisissez Public Subnet 1. Pour la seconde zone de disponibilité, choisissez Public Subnet 2. Ces options permettent de configurer l'équilibreur de charge de sorte qu'il fonctionne sur plusieurs zones de disponibilité. Dans la section Groupes de sécurité, cliquez sur X en regard du groupe de sécurité default (par défaut) pour le supprimer. Dans la liste déroulante Groupes de sécurité, choisissez Web Security Group (Groupe de sécurité web). Le Web Security Group (groupe de sécurité web) autorisant l'accès HTTP a déjà été créé pour vous. Dans la section Écouteurs et routage, cliquez sur le lien Créer un groupe cible. Remarque : ce lien permet d'ouvrir un nouvel onglet de navigateur avec les options de configuration Créer un groupe cible. Dans le nouvel onglet de navigateur Groupes cibles, dans la section Configuration de base, configurez les options suivantes : Pour Choisir un type de cible,

Présentation de l'atelier
Au cours de cet atelier, vous allez utiliser Elastic Load Balancing (ELB) et Amazon EC2 Auto Scaling pour assurer l'équilibrage de charge et la mise à l'échelle automatique de votre infrastructure.
ELB répartit automatiquement le trafic d'application entrant entre plusieurs instances Amazon Elastic Compute Cloud (Amazon EC2). ELB fournit la capacité d'équilibrage de charge nécessaire à l'acheminement du trafic d'application pour vous permettre de conférer à vos applications une plus grande tolérance aux pannes.
Auto Scaling vous permet de maintenir la disponibilité de vos applications et vous donne la possibilité d'augmenter ou de diminuer automatiquement votre capacité Amazon EC2 selon les conditions que vous définissez. Vous pouvez utiliser Auto Scaling pour vous assurer que vous exécutez le nombre d'instances EC2 souhaité. Auto Scaling peut également augmenter automatiquement le nombre d'instances EC2 pendant les pics de demande pour maintenir le niveau de performance, mais également diminuer la capacité en période de faible activité afin de réduire les coûts. Auto Scaling est tout indiqué pour les applications qui se caractérisent par une demande stable ou dont l'utilisation connaît des variations horaires, journalières ou hebdomadaires.
L'architecture de départ est la suivante :
Architecture de départ illustrant l'infrastructure AWS avec l'instance Web Server 1 dans le sous-réseau public.
L'architecture finale est la suivante :
Architecture finale illustrant les instances ELB et EC2 dans un groupe Auto Scaling dans des sous-réseaux privés répartis entre 2 zones de disponibilité
Objectifs
À la fin de cet atelier, vous serez en mesure d'effectuer les tâches suivantes :
Créer une AMI à partir d'une instance EC2
Créer un équilibreur de charge
Créer un modèle de lancement et un groupe Auto Scaling
Configurer un groupe Auto Scaling pour mettre à l'échelle les nouvelles instances au sein de sous-réseaux privés
Utiliser des alarmes Amazon CloudWatch pour surveiller les performances de votre infrastructure
Tâche 1 : création d'une AMI pour Auto Scaling
Au cours de cette tâche, vous allez créer une AMI à partir de l'instance Web Server 1 existante. Cette action enregistre le contenu du disque de démarrage afin que les nouvelles instances puissent être lancées avec le même contenu.
Dans la barre de recherche de la Console de gestion AWS, saisissez et sélectionnez EC2 pour ouvrir la Console de gestion Amazon EC2.
Dans le volet de navigation de gauche, recherchez la section Instances, puis choisissez Instances.
L'instance Web Server 1 est répertoriée. Vous allez à présent créer une AMI à partir de cette instance.
Choisissez l'instance Web Server 1 qui devrait être à l'état En cours d'exécution.
À partir de la liste déroulante Actions , choisissez Image et modèles > Créer une image, puis configurez les options suivantes :
Pour Nom de l'image, entrez Web Server AMI.
Pour Description de l'image - facultatif, entrez Lab AMI for Web Server.
Choisissez Créer une image.
L'écran de confirmation affiche l'ID de votre nouvelle AMI. Vous allez utiliser cette AMI lors du lancement du groupe Auto Scaling, plus tard dans cet atelier.
Tâche 2 : création d'un équilibreur de charge
Au cours de cette tâche, vous allez créer un équilibreur de charge capable d'équilibrer le trafic entre plusieurs instances EC2 et zones de disponibilité.
Dans le volet de navigation de gauche, recherchez la section Équilibrage de charge, puis choisissez Équilibreurs de charge.
Choisissez Créer un équilibreur de charge.
Dans la section Types d'équilibreurs de charge, sous Application Load Balancer, choisissez Créer.
Sur la page Créer un Application Load Balancer, dans la section Configuration de base, configurez l'option suivante :
Pour Nom de l'équilibreur de charge, entrez LabELB.
Dans la section Mappage réseau, configurez les options suivantes :
Pour VPC, choisissez Lab VPC.
Pour Mappages, choisissez les deux zones de disponibilité répertoriées.
Pour la première zone de disponibilité, choisissez Public Subnet 1.
Pour la seconde zone de disponibilité, choisissez Public Subnet 2.
Ces options permettent de configurer l'équilibreur de charge de sorte qu'il fonctionne sur plusieurs zones de disponibilité.
Dans la section Groupes de sécurité, cliquez sur X en regard du groupe de sécurité default (par défaut) pour le supprimer.
Dans la liste déroulante Groupes de sécurité, choisissez Web Security Group (Groupe de sécurité web).
Le Web Security Group (groupe de sécurité web) autorisant l'accès HTTP a déjà été créé pour vous.
Dans la section Écouteurs et routage, cliquez sur le lien Créer un groupe cible.
Remarque : ce lien permet d'ouvrir un nouvel onglet de navigateur avec les options de configuration Créer un groupe cible.
Dans le nouvel onglet de navigateur Groupes cibles, dans la section Configuration de base, configurez les options suivantes :
Pour Choisir un type de cible, choisissez Instances.
Pour Nom du groupe cible, entrez lab-target-group.
Au bas de la page, choisissez Suivant.
Sur la page Enregistrer les cibles, choisissez Créer un groupe cible.
Une fois que le groupe cible a été créé avec succès, fermez l'onglet de navigateur Groupes cibles.
Revenez à l'onglet de navigateur Équilibreurs de charge. Dans la section Écouteurs et routage, choisissez Actualiser à droite de la liste déroulante Réacheminer vers pour Action par défaut.
Dans la liste déroulante Réacheminer vers, choisissez lab-target-group.
Au bas de la page, choisissez Créer un équilibreur de charge.
Vous devriez recevoir un message similaire à ce qui suit :
Équilibreur de charge créé avec succès : LabELB
Pour afficher l'équilibreur de charge LabELB que vous venez de créer, choisissez Afficher l'équilibreur de charge.
Pour copier le Nom du DNS de l'équilibreur de charge, utilisez l'option de copie et collez le nom DNS dans un éditeur de texte.
Vous aurez besoin de ces informations plus tard au cours de l'atelier.
Tâche 3 : création d'un modèle de lancement
Au cours de cette tâche, vous allez créer un modèle de lancement pour votre groupe Auto Scaling. Un modèle de lancement est un modèle utilisé par un groupe Auto Scaling pour lancer des instances EC2. Lorsque vous créez un modèle de lancement, vous spécifiez des informations sur les instances, telles que l'AMI, le type d'instance, la paire de clés, le groupe de sécurité et les disques.
En haut de la console de gestion AWS, dans la barre de recherche, entrez et choisissez EC2.
Dans le volet de navigation de gauche, recherchez la section Instances, puis choisissez Modèles de lancement.
Choisissez Créer un modèle de lancement.
Sur la page Créer un modèle de lancement, dans la section Nom et description du modèle de lancement, configurez les options suivantes :
Pour Nom du modèle de lancement - obligatoire, entrez lab-app-launch-template.
Pour Description de la version du modèle, entrez A web server for the load test app.
Pour Conseils Auto Scaling, choisissez Provide guidance to help me set up a template that I can use with EC2 Auto Scaling (M'aider à configurer un modèle que je peux utiliser avec EC2 Auto Scaling).
Dans la section Application and OS Images (Amazon Machine Image) - required (Images d'application et de système d'exploitation (Amazon Machine Image) - obligatoire), cliquez sur l'onglet Mes AMI. Notez que Web Server AMI est déjà choisi.
Dans la section Type d'instance, cliquez sur la liste déroulante Type d'instance, puis choisissez t3.micro.
Dans la section Paire de clés (connexion), vérifiez que la liste déroulante Nom de la paire de clés est définie sur Ne pas inclure dans le modèle de lancement.
Amazon EC2 utilise le chiffrement à clé publique pour chiffrer et déchiffrer les informations de connexion. Pour vous connecter à votre instance, vous devez créer une paire de clés, spécifier le nom de la paire de clés lorsque vous lancez l'instance, puis fournir la clé privée lorsque vous vous connectez à l'instance.
Remarque : dans cet atelier, vous n'avez pas besoin de vous connecter à l'instance.
Dans la section Paramètres réseau, cliquez sur la liste déroulante Groupes de sécurité, puis choisissez Web Security Group (Groupe de sécurité web).
Lorsque vous lancez une instance, vous pouvez transmettre des données utilisateur à l'instance. Les données peuvent être utilisées pour exécuter des tâches et des scripts de configuration.
Choisissez Créer un modèle de lancement.
Vous devriez recevoir un message similaire à ce qui suit :
Création réussie de lab-app-launch-template.
Choisissez Afficher les modèles de lancement.
Tâche 4 : création d'un groupe Auto Scaling
Au cours de cette tâche, vous allez utiliser votre modèle de lancement pour créer un groupe Auto Scaling.
Choisissez lab-app-launch-template, puis dans la liste déroulante Actions , choisissez Créer un groupe Auto Scaling.
Sur la page Choisir un modèle ou une configuration de lancement, dans la section Nom, pour Nom du groupe Auto Scaling, entrez Lab Auto Scaling Group.
Choisissez Suivant.
Sur la page Choisir les options de lancement d'instance, dans la section Réseau, configurez les options suivantes :
Dans la liste déroulante VPC, choisissez Lab VPC.
Dans la liste déroulante Zones de disponibilité et sous-réseaux, choisissez Private Subnet 1 (10.0.1.0/24) et Private Subnet 2 (10.0.3.0/24).
Choisissez Suivant.
Sur la page Configurer les options avancées – facultatif, configurez les options suivantes :
Dans la section Équilibrage de charge – facultatif, choisissez Attacher à un équilibreur de charge existant.
Dans la section Attacher à un équilibreur de charge existant, configurez les options suivantes :
Choisissez Choisir parmi les groupes cibles de votre équilibreur de charge.
Dans la liste déroulante Groupes cibles d'équilibreur de charge existants, choisissez lab-target-group | HTTP.
Dans la section Vérifications de l'état – facultatif, pour Type de vérification de l'état, choisissez ELB.
Choisissez Suivant.
Sur la page Configurer la taille du groupe et les stratégies de mise à l'échelle – facultatif, configurez les options suivantes :
Dans la section Taille du groupe – facultatif, entrez les valeurs suivantes :
Capacité souhaitée :2
Capacité minimale : 2
Capacité maximale : 4
Dans la section Stratégies de mise à l'échelle – facultatif, configurez les options suivantes :
Choisissez Stratégie de mise à l'échelle avec suivi de la cible.
Pour Type de métrique, choisissez Utilisation moyenne du CPU.
Redéfinissez Valeur cible sur 50.
Cette nouvelle valeur indique à Auto Scaling de maintenir une utilisation moyenne du CPU de 50 % sur toutes les instances. Auto Scaling ajoute ou supprime automatiquement de la capacité en fonction des besoins pour maintenir la métrique à la valeur cible spécifiée ou à un niveau proche. Il s'ajuste aux fluctuations de la métrique causées par les variations du modèle de charge.
Choisissez Suivant.
Sur la page Ajouter des notifications – facultatif, choisissez Suivant.
Sur la page Ajouter des balises – facultatif, choisissez Ajouter une balise et configurez les options suivantes :
Clé : saisissez Name.
Valeur - facultatif : entrez Lab Instance.
Choisissez Suivant.
Choisissez Créer un groupe Auto Scaling.
Ces options permettent de lancer les instances EC2 dans les sous-réseaux privés sur les deux zones de disponibilité.
Votre groupe Auto Scaling affiche initialement un nombre d'Instances égal à zéro, mais les nouvelles instances seront lancées de manière à atteindre le nombre souhaité de deux instances.
Remarque : si vous rencontrez une erreur liée à l'indisponibilité du type d'instance t3.micro, réexécutez cette tâche en choisissant le type d'instance t2.micro à la place.
Tâche 5 : vérification du fonctionnement de l'équilibrage de charge
Au cours de cette tâche, vous allez vérifier le bon fonctionnement de l'équilibrage de charge.
Dans le volet de navigation de gauche, recherchez la section Instances, puis choisissez Instances.
Vous devriez voir deux nouvelles instances nommées Lab Instance (Instance d'atelier). Ces instances ont été lancées par Auto Scaling. Si les instances ou leurs noms ne s'affichent pas, patientez 30 secondes, puis choisissez Actualiser .
Dans un premier temps, vous allez vérifier que les nouvelles instances ont passé le test de vérification de l'état avec succès.
Dans le volet de navigation de gauche, dans la section Équilibrage de charge, choisissez Groupes cibles.
Choisissez lab-target-group.
Dans la section Cibles enregistrées, deux cibles Lab Instance doivent être répertoriées pour ce groupe cible.
Attendez que la valeur de État de santé des deux instances passe à Sain. Pour vérifier les mises à jour, choisissez Actualiser .
Le statut Sain indique qu'une instance a réussi la vérification de l'état de l'équilibreur de charge. Cette vérification signifie que l'équilibreur de charge enverra du trafic à l'instance.
Vous pouvez désormais accéder aux instances lancées dans le groupe Auto Scaling à l'aide de l'équilibreur de charge.
Ouvrez un nouvel onglet de navigateur web, collez le nom DNS que vous venez de copier, puis appuyez sur Entrée.
L'application Load Test devrait s'afficher dans votre navigateur, ce qui signifie que l'équilibreur de charge a reçu la demande, l'a envoyée à l'une des instances EC2, puis a retourné le résultat.
Tâche 6 : test d'Auto Scaling
Vous avez créé un groupe Auto Scaling contenant deux instances au minimum et quatre au maximum. Actuellement, les instances en cours d'exécution sont au nombre de deux, car la taille minimale est de deux et le groupe n'est actuellement soumis à aucune charge. Vous allez maintenant accroître la charge pour conduire Auto Scaling à ajouter des instances supplémentaires.
Revenez dans la console de gestion AWS sans fermer l'onglet de l'application Load Test. Vous allez bientôt revenir à cet onglet.
Dans la console de gestion AWS, dans la barre de recherche, entrez et choisissez CloudWatch.
Dans le volet de navigation de gauche, dans la section Alarmes, choisissez Toutes les alarmes.
Deux alarmes s'affichent. Le groupe Auto Scaling a créé automatiquement ces deux alarmes. Elles maintiennent automatiquement la charge moyenne du CPU aux environs de 50 %, tout en restant dans la limite de 2 à 4 instances.
Choisissez l'alarme dont le nom comporte AlarmHigh. Son État doit être défini sur OK.
Si l'État de l'alarme n'indique pas OK, patientez une minute, puis choisissez Actualiser jusqu'à ce que l'État change.
L'état OK indique que l'alarme n'a pas été initiée. Il s'agit de l'alarme Utilisation de la CPU > 50, qui ajoute des instances lorsque l'utilisation moyenne du CPU est élevée. Pour l'instant, le graphique devrait afficher de très faibles niveaux d'utilisation du CPU.
Vous allez à présent demander à l'application d'effectuer des calculs qui devraient augmenter le niveau d'utilisation du CPU.
Revenez à l'onglet de navigateur où l'application Load Test est ouverte.
En regard du logo AWS, choisissez Load Test.
Cette étape conduit l'application à générer des charges élevées. La page du navigateur est automatiquement actualisée de sorte que toutes les instances du groupe Auto Scaling génèrent des charges. Ne fermez pas cet onglet.
Revenez à l'onglet de navigateur où la console de gestion CloudWatch est ouverte.
En moins de 5 minutes, l'état d'alarme AlarmLow doit passer à OK et l'état d'alarme AlarmHigh doit passer à In alarm (En état d'alarme).
Pour mettre à jour l'affichage, choisissez Actualiser toutes les 60 secondes.
Vous devriez voir le graphique AlarmHigh qui indique un pourcentage d'utilisation du CPU en hausse. Une fois la ligne des 50 % dépassée pendant plus de 3 minutes, Auto Scaling ajoute des instances supplémentaires.
Attendez que l'alarme AlarmHigh passe à l'état In alarm (En état d'alarme).
Vous pouvez maintenant voir la ou les instances supplémentaires qui ont été lancées.
Dans la console de gestion AWS, dans la barre de recherche, entrez et choisissez EC2.
Dans le volet de navigation de gauche, recherchez la section Instances, puis choisissez Instances.
À présent, plus de deux instances nommées Lab Instance doivent être en cours d'exécution. Auto Scaling a créé de nouvelles instances en réponse à l'alarme.
Tâche 7 : résiliation de l'instance Web Server 1
Au cours de cette tâche, vous allez résilier l'instance Web Server 1. Cette instance a servi à créer l'AMI que votre groupe Auto Scaling a utilisée, mais elle n'est plus nécessaire.
Choisissez Web Server 1 et vérifiez que c'est la seule instance sélectionnée.
Dans le menu déroulant État de l'instance, choisissez Résilier l'instance.
Choisissez Résilier.
Conclusion
Félicitations ! Vous avez réussi à effectuer les tâches suivantes :
Créer une AMI à partir d'une instance EC2
Créer un équilibreur de charge
Créer un modèle de lancement et un groupe Auto Scaling
Configurer un groupe Auto Scaling pour mettre à l'échelle les nouvelles instances au sein de sous-réseaux privés
Utiliser des alarmes CloudWatch pour surveiller les performances de votre infrastructure
Fin de l'atelier
Félicitations ! Vous avez terminé l'atelier.