REL 7: Comment concevez-vous votre charge de travail pour s'adapter aux changements de demande ?
Une charge de travail évolutive fournit l'élasticité nécessaire pour ajouter ou supprimer automatiquement des ressources de telle sorte qu'elles correspondent étroitement à tout moment à la demande en cours.
Ressources
AWS Auto Scaling: How Scaling Plans Work
What Is Amazon EC2 Auto Scaling?
Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
What is Amazon CloudFront?
Distributed Load Testing on AWS: simulate thousands of connected users
Telling Stories About Little's Law
AWS Marketplace: products that can be used with auto scaling
APN Partner: partners that can help you create automated compute solutions
Bonnes pratiques:
-
Utiliser l'automatisation lors de l'obtention des ressources ou de leur mise à l'échelle: Lorsque vous remplacez des ressources compromises ou 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 SDK AWS pour automatiser la mise à l'échelle.
-
Obtenir des ressources après la détection d'un problème sur une charge de travail: Si la disponibilité est affectée, mettez à l'échelle les ressources de manière réactive si nécessaire, afin de restaurer la disponibilité de la charge de travail.
-
Obtenir des ressources après avoir réalisé qu'un plus grand nombre de ressources est nécessaire pour une charge de travail: Mettez à l'échelle les ressources de manière proactive pour répondre à la demande et éviter l'impact sur la disponibilité.
-
Test de charge de votre charge de travail: Adoptez une méthodologie de test de charge pour déterminer si la mise à l'échelle répond aux exigences de la charge de travail.
Plan d'amélioration
Utiliser l'automatisation lors de l'obtention des ressources ou de leur mise à l'échelle
What is 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.
Managing throughput capacity automatically with DynamoDB Auto Scaling- Utiliser 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
What is Elastic Load Balancing?
- Les équilibreurs de charge d'application peuvent répartir la charge par chemin d'accès.
What is an Application Load Balancer?- Configurer un équilibreur de charge d'application pour répartir le trafic sur différentes charges de travail selon le chemin d'accès du nom de domaine
- Les équilibreurs de charge d'application peuvent être utilisés pour répartir la charge
de travail d'une manière qui s'intègre à AWS Auto Scaling pour gérer la demande.
Using a load balancer with an Auto Scaling group
- Les Network Load Balancers peuvent répartir la charge de travail par connexion.
What is a 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.
- Utilisez Amazon Route 53 ou un fournisseur DNS de confiance
What is Amazon Route 53? - Utilisez Route 53 pour gérer vos distributions CloudFront et vos équilibreurs de charge.
- Déterminer 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.
Working with records
- 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 équilibreurs
de charge d'application, vos Network Load Balancers ou vos instances Amazon EC2.
What Is AWS Global Accelerator?
What is 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 politiques d'accès des points de terminaison.
Obtenir des ressources après la détection d'un problème sur une charge de travail
- Utilisez des plans de mise à l'échelle qui constituent le composant principal d'AWS
Auto Scaling. C'est là que vous configurez un ensemble d'instructions pour mettre
à l'échelle vos ressources. Si vous travaillez avec AWS CloudFormation ou ajoutez
des balises aux ressources AWS, vous pouvez configurer pour chaque application des
plans de mise à l'échelle pour différents ensembles de ressources. AWS Auto Scaling
fournit des recommandations pour les stratégies de mise à l'échelle personnalisées
pour chaque ressource. Une fois que vous avez créé votre plan de mise à l'échelle,
AWS Auto Scaling combine les méthodes de mise à l'échelle dynamique et prédictive
pour prendre en charge votre stratégie de mise à l'échelle.
AWS Auto Scaling: How Scaling Plans Work - Amazon EC2 Auto Scaling vous permet de vous assurer que vous disposez du bon nombre
d'instances Amazon EC2 disponibles pour gérer la charge de votre application. Vous
créez des collections d'instances EC2 appelées groupes Auto Scaling. Vous pouvez spécifier
le nombre minimal d'instances dans chaque groupe Auto Scaling. Amazon EC2 Auto Scaling
garantit alors que votre groupe ne passe jamais en dessous de cette taille. Vous pouvez
spécifier le nombre maximal d'instances dans chaque groupe Auto Scaling, et Amazon
EC2 Auto Scaling garantit que votre groupe ne dépasse jamais cette taille.
What Is Amazon EC2 Auto Scaling? - La mise à l'échelle automatique d'Amazon DynamoDB utilise le service AWS Application
Auto Scaling pour ajuster de manière dynamique la capacité de débit alloué en votre
nom, en fonction des modèles de trafic réels. Cela permet à une table ou à un index
secondaire global d'augmenter sa capacité de lecture et d'écriture allouée afin de
gérer sans limitations les augmentations soudaines du trafic.
Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
Obtenir des ressources après avoir réalisé qu'un plus grand nombre de ressources est
nécessaire pour une charge de travail
- Calculer le nombre de ressources de calcul dont vous aurez besoin (simultanéité de
calcul) pour gérer un débit de demandes donné
Telling Stories About Little's Law - Configurer la mise à l'échelle planifiée pour Amazon EC2 Auto Scaling lorsque vous
disposez d'un modèle d'utilisation historique
Scheduled Scaling for Amazon EC2 Auto Scaling - Utiliser la mise à l'échelle prédictive AWS
Predictive Scaling for EC2, Powered by Machine Learning
Test de charge de votre charge de travail
Distributed Load Testing on AWS: simulate thousands of connected users
- Identifier le mélange de demandes: Comme vous pouvez avoir divers mélanges de demandes, vous devez examiner les différentes périodes lors de l'identification de la combinaison de trafic.
- Implémenter un pilote de charge: Vous pouvez utiliser un code personnalisé, un logiciel open source ou un logiciel commercial pour implémenter un pilote de charge.
- Test de charge initial avec une faible capacité: Vous constatez des effets immédiats en entraînant une charge moindre, éventuellement aussi petite qu'une instance ou un conteneur.
- Test de charge par rapport à une capacité plus importante: Étant donné que les effets seront différents sur une charge distribuée, vous devez procéder à des essais dans un environnement aussi proche que possible de celui du produit.