COST09-BP03 Fournir dynamiquement les ressources - AWS Well-Architected Framework

COST09-BP03 Fournir dynamiquement les ressources

Les ressources sont allouées de façon planifiée. Cela peut reposer sur la demande, par exemple, via une mise à l'échelle automatique, ou sur le temps, lorsque la demande est prévisible et que les ressources sont fournies en fonction de la durée. Ces méthodes permettent de réduire au minimum la sur- ou sous-allocation.

Niveau de risque exposé si cette bonne pratique n'est pas respectée : Faible

Directives d'implémentation

Vous pouvez utiliser AWS Auto Scaling, ou intégrer la mise à l'échelle dans votre code avec l' 'API ou les kits SDK AWS. Cela réduit le coût global de votre charge de travail en supprimant le coût opérationnel lié à la modification manuelle de votre environnement, et peut être réalisé beaucoup plus rapidement. Cela permet de s'assurer que les ressources de la charge de travail correspondent le mieux à la demande à tout moment.

Offre basée sur la demande : Exploitez l'élasticité du cloud pour fournir des ressources et répondre à l'évolution de la demande. Exploitez des API ou des fonctions de service pour faire varier par programmation et de façon dynamique la quantité de ressources cloud dans votre architecture. Cela vous permet de mettre à l’échelle les composants de votre architecture, et d'augmenter automatiquement le nombre de ressources pendant les pics de demande pour maintenir les performances, et de diminuer la capacité lorsque la demande diminue pour réduire les coûts.

AWS Auto Scaling permet d'ajuster votre capacité pour maintenir des performances stables et prévisibles au coût le plus bas possible. Il s'agit d'un service gratuit et entièrement géré qui s'intègre avec les instances  Amazon Elastic Compute Cloud (Amazon EC2) et les parcs d'instances Spot, Amazon Elastic Container Service (Amazon ECS), Amazon DynamoDB et Amazon Aurora.

Auto Scaling permet de découvrir automatiquement les ressources de votre charge de travail qui peuvent être configurées. Le service est doté de stratégies de mise à l'échelle intégrées pour optimiser les performances, les coûts ou un équilibre entre les deux et offre une mise à l'échelle prédictive pour faire face aux pics réguliers.

Auto Scaling peut implémenter une mise à l'échelle manuelle, planifiée ou basée sur la demande. Vous pouvez également utiliser les métriques et les alarmes d' Amazon CloudWatch pour déclencher des événements de mise à l'échelle pour votre charge de travail. Les métriques types peuvent être des métriques Amazon EC2 standard, telles que l'utilisation du processeur, le débit réseau et la latence de demande/réponse observée Elastic Load Balancing (ELB). Dans la mesure du possible, vous devez utiliser une métrique qui indique l'expérience du client, généralement une métrique personnalisée qui peut provenir du code d'application au sein de votre charge de travail.

Lorsque vous concevez une architecture en adoptant une approche basée sur la demande, gardez à l'esprit deux considérations clés. Premièrement, vous devez comprend à quelle vitesse vous devez fournir de nouvelles ressources. Deuxièmement, vous devez comprendre que l'importance de la marge entre l'offre et la demande variera. Vous devez être prêt à faire face au taux de variation de la demande, ainsi qu'aux défaillances de ressources.

ELB vous aide à mettre à l'échelle en répartissant la demande sur plusieurs ressources. Lorsque vous mettez en œuvre plus de ressources, vous les ajoutez à l'équilibreur de charge afin de soutenir la demande. Elastic Load Balancing prend en charges les instances Amazon EC2, les conteneurs, les adresses IP et les fonctions AWS Lambda.

Offre basée sur le temps : Une approche basée sur le temps aligne la capacité des ressources avec une demande prévisible ou bien définie en fonction du temps. Cette approche ne dépend généralement pas des niveaux d'utilisation des ressources. Une approche basée sur le temps garantit que les ressources sont disponibles au moment précis où elles sont nécessaires et peuvent être fournies sans aucun retard dû à des procédures de démarrage et aux vérifications du système ou de la cohérence. Grâce à une approche basée sur le temps, vous pouvez fournir des ressources supplémentaires ou augmenter la capacité pendant les périodes de pointe.

Vous pouvez utiliser Auto Scaling planifié pour mettre en place une approche basée sur la durée. Les charges de travail peuvent être programmées de manière à être réduites ou augmentées à des moments définis (par exemple, au début des heures de travail), ce qui permet de garantir que les ressources sont disponibles lorsque les utilisateurs ou la demande arrivent.

Vous pouvez également tirer parti des API et des kits SDK AWS et AWS CloudFormation pour automatiquement mettre en service ou hors service des environnements complets, selon vos besoins. Cette approche est idéale pour les environnements de développement ou de test qui s'exécutent uniquement pendant des heures ou des périodes de travail définies.

Vous pouvez utiliser les API pour mettre à l'échelle la taille des ressources au sein d'un environnement (mise à l'échelle verticale). Par exemple, vous pouvez monter en charge une charge de travail de production en modifiant la taille ou la catégorie d'instance. Cela peut être réalisé en arrêtant et en redémarrant l'instance, puis en sélectionnant une taille ou une catégorie différente. Cette technique peut être également appliquée à d'autres ressources, telles que les volumes Amazon Elastic Block Store (Amazon EBS) Elastic, qui peuvent être modifiées pour augmenter la taille, ajuster les performances (IOPS) ou changer le type de volume en cours d'utilisation.

Lorsque vous concevez une architecture en adoptant une approche basée sur le temps, gardez à l'esprit deux considérations clés. Premièrement, dans quelle mesure le modèle d'utilisation est-il cohérent ? Deuxièmement, quel est l'impact d'un changement de modèle ? Vous pouvez augmenter la précision des prédictions en surveillant vos charges de travail et en utilisant l'informatique décisionnelle. Si vous constatez des modifications importantes dans le modèle d'utilisation, vous pouvez ajuster les heures pour vous assurer que la couverture est fournie.

Étapes d'implémentation

  • Configurer la planification temporelle : Pour des changements prévisibles de la demande, une mise à l'échelle temporelle peut fournir le nombre correct de ressources en temps utile. Elle est également utile si la création et la configuration des ressources ne sont pas assez rapides pour répondre à l'évolution de la demande. À l'aide de l'analyse de la charge de travail, configurez la mise à l'échelle programmée via AWS Auto Scaling.

  • Configurer Auto Scaling : Pour configurer la mise à l'échelle en fonction des mesures de la charge de travail active, utilisez Amazon Auto Scaling. Utilisez l'analyse et configurez Auto Scaling pour déclencher les bons niveaux de ressources, et assurez-vous que la charge de travail se met à l’échelle dans le temps requis.

Ressources

Documents connexes :