Agence web » Actualités du digital » Premiers pas avec AWS Autoscaling

Premiers pas avec AWS Autoscaling

La mise à l'échelle automatique est un concept très simple: lorsque vos serveurs commencent à être surchargés de trafic, les systèmes de mise à l'échelle automatique d'AWS lancent de nouveaux serveurs pour répondre à la demande. Cela peut vous aider à réduire les coûts et à évoluer rapidement.

Auto Scaling vous permet d'économiser de l'argent

La mise à l'échelle automatique vous permet d'évoluer pour répondre aux besoins de trafic, mais corrige également un problème avec l'hébergement de serveur traditionnel; vous devez construire vos serveurs aux heures de pointe, mais ce serveur peut rester en grande partie inactif pendant les heures creuses. Cependant, vous paierez toujours le prix horaire de ce serveur, même si vous ne l'utilisez pas. C'est mauvais pour votre portefeuille, et aussi mauvais pour AWS, car ils pourraient vendre cette capacité supplémentaire à quelqu'un d'autre.

Supposons que votre application nécessite une puissance de 16 vCPU pendant les pics de charge. Vous pouvez accomplir cela avec un c5.4xlarge exemple, qui coûte environ 500 $ par mois. Vous pouvez l'obtenir pour environ 200 USD par mois si vous achetez des instances réservées à l'avance avec des contrats de 3 ans, mais vous paierez toujours le prix total pour une instance conçue autour de votre capacité maximale. Et si vos besoins changent pendant la période de votre contrat, vous serez bloqué avec cette instance jusqu'à la fin du contrat.

Mais si la charge de votre application change au cours de la journée, la mise à l'échelle automatique peut aider à optimiser les coûts. Vous pouvez à la place utiliser plusieurs c5.xlarge avec 4 processeurs virtuels et en créer de nouveaux lorsque vous devez répondre à la demande. Avec les instances ponctuelles EC2, vous pouvez également demander à votre groupe de calage automatique d'acheter une capacité de calcul supplémentaire à des remises énormes.

AWS propose plusieurs services de mise à l'échelle automatique pour différents produits; vous pouvez mettre à l'échelle automatiquement les réplicas de lecture Aurora et DynamoDB, et mettre à l'échelle automatiquement Elastic Container Service (ECS) d'Amazon. Dans cet article, nous aborderons EC2 Auto Scaling, car c'est ce que vous voudrez probablement faire évoluer de toute façon.

Construire votre infrastructure autour de l'automatisation

Pour que la mise à l'échelle automatique fonctionne, vous devez automatiser l'ensemble du cycle de vie de votre serveur. Le processus de création d'un serveur, d'installation de toutes les dépendances dont votre application a besoin pour s'exécuter, l'installation de votre code, l'exécution de votre code au démarrage – tout doit être géré correctement pour que la mise à l'échelle automatique ait un sens.

Il existe deux façons simples de le faire, et les deux ont des cas d'utilisation différents.

Le premier est Amazon Machine Images, ou AMI. Votre serveur EC2 fonctionne probablement déjà sur une AMI, telle qu'Amazon Linux 2. Mais l'AMI est plus qu'un système d'exploitation; Les AMI sont des images qui contiennent le système d'exploitation, les programmes, les données utilisateur et la configuration, le tout dans une seule image. Vous pouvez créer votre propre AMI personnalisée contenant tous vos programmes (tels que Nginx, WordPress, PHP, etc.) et la configuration associée, et créer une copie carbone de votre serveur existant.

Cette méthode est très utile si vous atteignez simplement les limites d'un seul serveur et que vous souhaitez évoluer, ou si vous souhaitez simplement réduire les coûts en faisant évoluer vos serveurs tout au long de la journée. Le principal problème est que la gestion des versions est pénible; vous devrez créer une nouvelle AMI à chaque fois que vous souhaiterez apporter des modifications ou automatiser un moyen d'extraire le code et la configuration mis à jour à partir d'un outil tel que git.

La deuxième méthode consiste à utiliser des conteneurs. Les conteneurs sont un concept Unix qui permet aux applications d'être regroupées et exécutées dans un environnement virtualisé isolé, tout en conservant les avantages de la vitesse ou en fonctionnant sur du métal nu. Vous pouvez penser à cela comme avoir tout ce dont votre application a besoin pour fonctionner sur un CD; vous pouvez graver plusieurs copies de ce CD et les exécuter sur plusieurs serveurs.

Chaque fois que vous devez effectuer une mise à jour, il vous suffit de mettre à jour le CD et de redistribuer la version mise à jour. Avec le fonctionnement de Docker, cela rend la gestion des versions assez simple. Toutefois, le déplacement d'une application existante vers Docker peut nécessiter une configuration initiale plus importante que ce que vous êtes à l'aise de faire, car cela nécessite un changement important dans la façon dont vous développez et exploitez vos systèmes.

Nous aborderons la méthode AMI dans cet article, car elle est beaucoup plus simple; mais, si vous empruntez la route des conteneurs, vous ferez mieux d'utiliser les services de conteneurs gérés d'Amazon plutôt que la mise à l'échelle automatique EC2. Vous pouvez lire notre guide sur la mise en route d'AWS ECS pour en savoir plus.

Comment commencer

Vous aurez besoin de quelques éléments pour commencer. Le premier est l'AMI personnalisée. Ils sont relativement simples à créer; à partir de la console de gestion EC2, cliquez avec le bouton droit sur votre serveur actuel et sélectionnez Image> Créer une image. Cela ouvrira une boîte de dialogue qui fera un instantané de votre serveur et créera une AMI à partir de cet instantané; donnez-lui un nom et une description et sélectionnez "Créer une image".

Une fois l'AMI créée (cela peut prendre quelques minutes), faites défiler vers le bas de la barre latérale EC2 et sélectionnez «Lancer la configuration» sous l'onglet «Auto Scaling». Créez une nouvelle configuration de lancement et sélectionnez votre AMI personnalisée comme base.

Vous devez choisir le type d'instance que vous souhaitez utiliser comme incrément. Par exemple, si vous souhaitez effectuer une mise à l'échelle par incréments de 2 vCPU, choisissez une instance de 2 vCPU. Vous allez faire plus d'évolutivité, mais vos coûts peuvent être mieux optimisés.

Ensuite, vous allez configurer les détails du lancement. Vous voudrez vous assurer de demander des instances ponctuelles, en particulier si vous prévoyez de les augmenter pendant la journée et de les réduire la nuit. Les instances Spot peuvent fonctionner jusqu'à 6 heures. Vous devrez spécifier un prix maximum; vous pouvez le définir sur le coût horaire de la version à la demande de l'instance, et elle s'exécutera toujours.

Vous pouvez également spécifier un script de configuration ici, sous les paramètres avancés. Vous pouvez le coller sous forme de texte ou de fichier à exécuter.

Ensuite, vous allez ajouter du stockage, sélectionner un groupe de sécurité et sélectionner une paire de clés, comme vous le feriez habituellement lors de la création d'une instance EC2 (bien qu'il ne s'agisse que d'un modèle).

À la fin, choisissez de créer un groupe de mise à l'échelle automatique avec la configuration de lancement nouvellement créée. Définissez un nom pour le groupe, la taille initiale et sélectionnez votre sous-réseau.

Ensuite, vous allez configurer vos politiques de dimensionnement. Vous souhaiterez choisir une plage entre laquelle évoluer et une métrique à utiliser pour mettre à l'échelle les instances, comme l'utilisation moyenne du processeur ou le trafic réseau moyen. Vous pouvez également configurer des alarmes CloudWatch pour mettre à l'échelle des instances en fonction d'autres métriques.

Vous devrez également spécifier le temps en secondes dont les instances ont besoin pour se réchauffer. si vous utilisez des AMI, ce temps sera beaucoup plus court, mais vous devrez encore faire des tests pour déterminer combien de temps cela prend.

Ensuite, vous pouvez configurer les notifications et les balises, et revoir votre configuration avant le lancement. Notez que la création de ce groupe de mise à l'échelle automatique fournira des serveurs pour vous, alors soyez prêt à les payer.

À partir de l'onglet «Groupes Auto Scaling» de la console EC2, vous pouvez afficher l'activité de votre groupe, comme les instances en cours d'exécution ou les échecs de lancement. Votre groupe doit maintenant augmenter et diminuer, en fonction de la charge. Vous voudrez garder un œil attentif sur son comportement pendant les premiers jours, pour vous assurer que tout est en ordre.

Lorsque vous devez mettre à jour vos serveurs, vous devez créer une nouvelle configuration de lancement avec une nouvelle AMI et sélectionner la nouvelle configuration comme configuration pour votre groupe de mise à l'échelle automatique.

★★★★★