COST09-BP03 Fournir dynamiquement les ressources - Pilier Optimisation des coûts

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

Les clients AWS peuvent augmenter les ressources disponibles pour leurs applications et fournir des ressources pour répondre à la demande de plusieurs manières. L'une de ces options consiste à utiliser AWS Instance Scheduler, qui automatise le démarrage et l'arrêt des instances Amazon Elastic Compute Cloud (Amazon EC2) et Amazon Relational Database Service (Amazon RDS). L'autre option consiste à utiliser AWS Auto Scaling, ce qui vous permet de dimensionner automatiquement vos ressources informatiques en fonction de la demande de votre application ou de votre service. La fourniture de ressources en fonction de la demande vous permettra de payer uniquement les ressources que vous utilisez, de réduire les coûts en lançant des ressources lorsqu'elles sont nécessaires et d'y mettre fin lorsqu'elles ne le sont pas.

AWS Instance Scheduler vous permet de configurer l'arrêt et le redémarrage de vos instances Amazon EC2 et Amazon RDS à des moments précis afin que vous puissiez répondre à la demande pour les mêmes ressources au sein d'un modèle de temps constant, comme le fait que des utilisateurs quotidiens accèdent à des instances Amazon EC2 à 8 h pour ne plus en avoir besoin après 18 h. Cette solution permet de réduire les coûts opérationnels en arrêtant des ressources qui ne sont pas utilisées et en les redémarrant quand il le faut.

Schéma illustrant l'optimisation des coûts à l'aide d'AWS Instance Scheduler.

Optimisation des coûts avec AWS Instance Scheduler.

Vous pouvez également configurer facilement les planifications pour vos instances Amazon EC2 sur l'ensemble de vos comptes et régions avec une interface utilisateur (UI) simple à l'aide de la configuration AWS Systems Manager rapide. Vous pouvez planifier des instances Amazon EC2 ou Amazon RDS avec AWS Instance Scheduler et vous pouvez arrêter et démarrer des instances existantes. Cependant, vous ne pouvez pas arrêter et démarrer des instances qui font partie de votre groupe Auto Scaling (ASG) ou qui gèrent des services comme Amazon Redshift ou Amazon OpenSearch Service. Les groupes Auto Scaling disposent de leur propre planification pour les instances du groupe et ces instances sont créées.

AWS Auto Scaling vous 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é permettant de mettre à l'échelle la capacité de votre application et qui s'intègre avec les instances Amazon EC2 et les parc d'instances Spot, 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.

Plusieurs options de mise à l'échelle sont disponibles pour redimensionner votre groupe Auto Scaling :

  • Maintien des niveaux d'instance actuels à tout moment

  • Mise à l'échelle manuelle

  • Mise à l'échelle basée sur un calendrier

  • Mise à l'échelle basée sur la demande

  • Utilisation de la mise à l'échelle prédictive

Les politiques Auto Scaling diffèrent et peuvent être classées dans la catégorie des politiques de mise à l'échelle dynamiques et planifiées. Les politiques dynamiques sont une mise à l'échelle manuelle ou dynamique, une mise à l'échelle planifiée ou prédictive. Vous pouvez utiliser des politiques de mise à l'échelle pour une mise à l'échelle dynamique, planifiée et prédictive. 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. Nous vous recommandons d'utiliser des modèles de lancement, qui vous permettent d'accéder aux dernières fonctionnalités et améliorations. Toutes les fonctionnalités Auto Scaling ne sont pas disponibles lorsque vous utilisez les configurations de lancement. Par exemple, vous ne pouvez pas créer de groupe Auto Scaling qui lance à la fois des instances Spot et à la demande ou qui spécifie plusieurs types d'instances. Vous devez utiliser un modèle de lancement pour configurer ces fonctionnalités. Lorsque vous utilisez des modèles de lancement, nous vous recommandons de créer une version pour chacun d'entre eux. La gestion des versions des modèles de lancement vous permet de créer un sous-ensemble de l'ensemble complet de paramètres. Vous pouvez ensuite le réutiliser pour créer d'autres versions du même modèle de lancement.

Vous pouvez utiliser AWS Auto Scaling ou intégrer la mise à l'échelle dans votre code avec les API ou kits AWS SDK. 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 les modifications peuvent être réalisées beaucoup plus rapidement. Cela adapte également les ressources de votre charge de travail à votre demande à tout moment. Afin de suivre cette bonne pratique et de fournir des ressources de façon dynamique à votre organisation, vous devez comprendre la mise à l'échelle horizontale et verticale dans le AWS Cloud, ainsi que la nature des applications exécutées sur des instances Amazon EC2. Il est préférable que votre équipe de gestion financière du cloud travaille avec les équipes techniques afin de suivre cette bonne pratique.

Elastic Load Balancing (Elastic Load Balancing) vous aide à mettre à l'échelle en répartissant la demande sur plusieurs ressources. En utilisant ASG et Elastic Load Balancing, vous pouvez gérer les demandes entrantes en acheminant le trafic de manière optimale afin qu'aucune instance ne soit surchargée au sein d'un groupe Auto Scaling. Les demandes seraient réparties entre toutes les cibles d'un groupe cible selon une procédure circulaire sans tenir compte de la capacité ou de l'utilisation.

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 par Elastic Load Balancing. 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. Pour expliquer comment répondre à la demande de manière dynamique dans ce document, nous allons les regrouper en deux catégories Auto Scaling, à savoir les modèles d'approvisionnement basés sur la demande et les modèles d'approvisionnement basés sur le temps, et nous allons approfondir chacune d'entre elles.

Offre basée sur la demande : tirez parti de l'élasticité du cloud pour fournir les ressources nécessaires à l'évolution de la demande en vous appuyant sur l'état de la demande en temps quasi réel. Pour l'offre basée sur la demande, utilisez 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, d'augmenter 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.

Schéma décrivant les politiques de mise à l'échelle basées sur la demande, telles que la mise à l'échelle simple/par étapes et le suivi des cibles.

Politiques de mise à l'échelle dynamique basées sur la demande

  • Mise à l'échelle simple/par étapes : surveille les métriques et ajoute/supprime des instances selon les étapes définies manuellement par les clients.

  • Suivi des cibles : mécanisme de contrôle semblable à un thermostat qui ajoute ou supprime automatiquement des instances afin de maintenir les métriques à un objectif défini par le client.

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 comprendre à 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.

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.

Schéma décrivant les politiques de mise à l'échelle basées sur le temps, telles que la mise à l'échelle planifiée et prédictive.

Politiques de mise à l'échelle basées sur le temps

Vous pouvez utiliser l'autoscaling planifié pour mettre en place une approche basée sur le temps. 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 rend les ressources disponibles lorsque les utilisateurs arrivent ou que la demande augmente. La mise à l'échelle prédictive utilise des modèles pour monter en puissance, tandis que la mise à l'échelle planifiée utilise des heures prédéfinies pour monter en puissance. Vous pouvez également utiliser la stratégie de sélection du type d'instance basée sur les attributs (ABS) dans les groupes Auto Scaling, ce qui vous permet d'exprimer les besoins de votre instance sous la forme d'un ensemble d'attributs, tels que le processeur virtuel, la mémoire et le stockage. Cela vous permet d'utiliser automatiquement les types d'instance de nouvelle génération lorsqu'ils sont disponibles et d'accéder à une plus large gamme de capacités avec les instances Spot Amazon EC2. La flotte Amazon EC2 et Amazon EC2 Auto Scaling sélectionnent et lancent les instances qui correspondent aux attributs spécifiés, en éliminant le besoin de sélectionner manuellement les types d'instance.

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 EBS Elastic, qui peuvent être modifiés 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

  • Configurez la mise à l'échelle planifiée : 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. Pour configurer une planification temporelle, vous pouvez utiliser la mise à l'échelle prédictive ou la mise à l'échelle planifiée pour augmenter le nombre d'instances Amazon EC2 dans votre groupe Auto Scaling à l'avance en fonction des changements de charge attendus ou prévisibles.

  • Configurez la mise à l'échelle prédictive : la mise à l'échelle prédictive vous permet d'augmenter le nombre d'instances Amazon EC2 dans votre groupe Auto Scaling avant les modèles quotidiens ou hebdomadaires dans les flux de trafic. Si vous avez des pics de trafic réguliers et des applications lentes au démarrage, vous devez envisager la mise à l'échelle prédictive. La mise à l'échelle prédictive vous permet d'évoluer plus rapidement en initialisant de la capacité avant d'atteindre la charge projetée par comparaison avec la mise à l'échelle dynamique seule, qui est réactive par nature. Par exemple, si les utilisateurs commencent à utiliser votre charge de travail au début des heures de bureau mais pas pendant les heures qui suivent, la mise à l'échelle prédictive peut ajouter de la capacité avant le début des heures de bureau, ce qui supprime le retard lié au fait d'attendre que la mise à l'échelle dynamique réagisse au changement de trafic.

  • Configurez la mise à l'échelle automatique dynamique : pour configurer la mise à l'échelle en fonction des métriques de charge de travail actives, utilisez Auto Scaling. Utilisez l'analyse et configurez Auto Scaling pour déclencher les bons niveaux de ressources, et vérifiez que la charge de travail est mise à l'échelle dans les délais requis. Vous pouvez lancer et mettre à l'échelle automatiquement une flotte d'instances à la demande et d'instances Spot au sein d'un seul groupe Auto Scaling. En plus de recevoir des remises pour l'utilisation d'instances Spot, vous pouvez utiliser des instances réservées ou un Savings Plan qui vous permettront de bénéficier de taux réduits par rapport à la tarification standard des instances à la demande. Tous ces facteurs combinés vous aident à optimiser vos économies de coûts pour les instances Amazon EC2 et à obtenir l'échelle et les performances souhaitées pour votre application.

Ressources

Documents connexes :

Vidéos connexes :

Exemples connexes :