REL07-BP01 Utiliser l’automatisation lors de l’obtention des ressources ou de leur mise à l’échelle
Lorsque vous remplacez des ressources compromises ou que vous mettez à l’échelle votre charge de travail, automatisez le processus à l’aide de services AWS gérés comme Amazon S3 et AWS Auto Scaling. Vous pouvez également utiliser des outils tiers et les kits AWS SDK pour automatiser la mise à l’échelle.
Les services AWS gérés incluent Amazon S3, Amazon CloudFront, AWS Auto Scaling, AWS Lambda, Amazon DynamoDB, AWS Fargate et Amazon Route 53.
AWS Auto Scaling vous permet de détecter et de remplacer les instances dégradées. Il offre également la possibilité de créer des plans de mise à l’échelle pour les ressources, notamment les instances Amazon EC2
Lors de la mise à l’échelle d’instances EC2, veillez à utiliser plusieurs zones de disponibilité (de préférence au moins trois) et à ajouter ou supprimer de la capacité pour maintenir l’équilibre entre ces zones de disponibilité. Les tâches ECS ou les pods Kubernetes (lors de l’utilisation d’Amazon Elastic Kubernetes Service) doivent également être répartis sur plusieurs zones de disponibilité.
Lorsque vous utilisez AWS Lambda, la mise à l’échelle des instances est automatique. Chaque fois qu’une notification d’événement est reçue pour votre fonction, AWS Lambda localise rapidement la capacité disponible dans son parc de calcul et exécute votre code jusqu’à la simultanéité allouée. Vous devez vous assurer que la simultanéité nécessaire est configurée sur la fonction Lambda spécifique et dans Service Quotas.
Amazon S3 se met automatiquement à l’échelle pour gérer des débits de requêtes élevés. Par exemple, votre application peut atteindre au moins 3 500 demandes PUT/COPY/POST/DELETE ou 5 500 demandes GET/HEAD par seconde par préfixe dans un compartiment. Il n’existe aucune limite au nombre de préfixes dans un compartiment. Vous pouvez augmenter vos performances de lecture et d’écriture en effectuant une mise en parallèle des lectures. Par exemple, si vous créez 10 préfixes dans un compartiment Amazon S3 pour paralléliser les lectures, vous pouvez mettre à l’échelle vos performances de lecture à 55 000 demandes de lecture par seconde.
Configurez et utilisez Amazon CloudFront ou un réseau de diffusion de contenu (CDN) de confiance. Un CDN fournit des temps de réponse plus rapides à l’utilisateur final et répond aux demandes de contenu à partir du cache, ce qui vous évite (dans une certaine mesure) de devoir mettre à l’échelle votre charge de travail.
Anti-modèles courants :
-
Implémentation de groupes Auto Scaling pour la réparation automatique sans implémentation de l’élasticité.
-
Utilisation de la mise à l’échelle automatique pour répondre aux pics importants du trafic.
-
Déploiement d’applications hautement dynamiques avec élimination de l’option d’élasticité.
Avantages du respect de cette bonne pratique : l’automatisation élimine le risque d’erreur manuelle lors du déploiement et de la mise hors service des ressources. Elle élimine aussi le risque de dépassement de coûts et de déni de service en raison d’une réponse lente aux besoins de déploiement ou de mise hors service.
Niveau d’exposition au risque si cette bonne pratique n’est pas respectée : élevé
Directives d’implémentation
Configurer et utiliser AWS Auto Scaling. Il permet de surveiller vos applications et d’ajuster automatiquement la capacité pour maintenir des performances stables et prévisibles au coût le plus bas possible. Avec AWS Auto Scaling, vous pouvez configurer la mise à l’échelle des applications pour plusieurs ressources sur plusieurs services.
-
Présentation de AWS Auto Scaling
-
Configurez Auto Scaling sur vos instances Amazon EC2 et vos parcs d’instances Spot, vos tâches Amazon ECS, vos tables et index Amazon DynamoDB, vos réplicas Amazon Aurora et vos appliances AWS Marketplace, le cas échéant.
-
Gestion automatique de la capacité de débit avec l’autoscaling de DynamoDB
-
Utilisez les opérations d’API de service pour spécifier les alarmes, les stratégies de mise à l’échelle, ainsi que les temps de montée et de baisse de charge.
-
-
-
-
Utilisez Elastic Load Balancing. Les équilibreurs de charge peuvent répartir la charge par chemin d’accès ou par connectivité réseau.
-
Qu’est-ce qu’Elastic Load Balancing ?
-
Les Application Load Balancers peuvent répartir la charge par chemin d’accès.
-
Qu’est-ce qu’un équilibreur de charge Application Load Balancer ?
-
Configurer un Application Load Balancer pour répartir le trafic sur différentes charges de travail selon le chemin d’accès du nom de domaine.
-
Les Application Load Balancers peuvent être utilisés pour répartir les charges d’une manière qui s’intègre à AWS Auto Scaling pour gérer la demande.
-
-
-
Les Network Load Balancers peuvent répartir la charge de travail par connexion.
-
Qu’est-ce qu’un équilibreur de charge Network Load Balancer ?
-
Configurer un Network Load Balancer pour répartir le trafic sur différentes charges de travail à l’aide du TCP ou disposer constamment d’un jeu d’adresses IP pour votre charge de travail.
-
Les Network Load Balancers peuvent être utilisés pour répartir les charges d’une manière qui s’intègre à AWS Auto Scaling pour gérer la demande.
-
-
-
-
Utiliser un fournisseur DNS à haut niveau de disponibilité. Les noms DNS permettent à vos utilisateurs de saisir des noms plutôt que des adresses IP pour accéder à vos charges de travail et distribuer ces informations sur une portée précise, en général mondiale, pour les utilisateurs de ces charges de travail.
-
Utilisez Amazon Route 53 ou un fournisseur DNS de confiance.
-
Utilisez Route 53 pour gérer vos distributions CloudFront et vos équilibreurs de charge.
-
Déterminez les domaines et les sous-domaines que vous allez gérer.
-
Créez des jeux d’enregistrements appropriés à l’aide d’enregistrements ALIAS ou CNAME.
-
-
Utilisez le réseau mondial AWS pour optimiser le chemin entre vos utilisateurs et vos applications. AWS Global Accelerator surveille en permanence l’état des points de terminaison de votre application et redirige le trafic vers des points de terminaison sains en moins de 30 secondes.
-
AWS Global Accelerator est un service qui améliore la disponibilité et les performances de vos applications auprès d’utilisateurs locaux ou internationaux. Il fournit des adresses IP statiques qui font office de point d’entrée fixe aux points de terminaison de votre application dans une ou plusieurs Régions AWS, tels que vos Application Load Balancers, vos Network Load Balancers ou vos instances Amazon EC2.
-
-
Configurez et utilisez Amazon CloudFront ou un réseau de diffusion de contenu (CDN) de confiance. Un réseau de diffusion de contenus peut fournir des temps de réponse des utilisateurs finaux plus rapides et traiter les requêtes de contenu susceptibles de causer une mise à l’échelle inutile de vos charges de travail.
-
Qu’est-ce qu’Amazon CloudFront ?
-
Configurez les distributions d’Amazon CloudFront pour vos charges de travail ou utilisez un CDN tiers.
-
Vous pouvez limiter l’accès à vos charges de travail de sorte qu’elles ne soient accessibles qu’à partir de CloudFront. Pour ce faire, vous pouvez utiliser les plages d’adresses IP pour CloudFront dans vos groupes de sécurité ou vos stratégies d’accès des points de terminaison.
-
-
-
Ressources
Documents connexes :
-
Partenaire APN : partenaires pouvant vous aider à créer des solutions de calcul automatisées
-
AWS Auto Scaling : Fonctionnement des plans de dimensionnement
-
Gestion automatique de la capacité de débit avec l’autoscaling de DynamoDB
-
Utiliser un équilibreur de charge avec un groupe Auto Scaling
-
Qu’est-ce qu’un équilibreur de charge Network Load Balancer ?
-
Qu’est-ce qu’un équilibreur de charge Application Load Balancer ?