

# Gérer la demande et les sources d'approvisionnement
<a name="a-manage-demand-and-supply-resources"></a>

**Topics**
+ [COST 9  Comment gérer les ressources de demande et d'offre ?](w2aac19c13c11b5.md)

# COST 9  Comment gérer les ressources de demande et d'offre ?
<a name="w2aac19c13c11b5"></a>

Pour une charge de travail dont les dépenses et les performances sont équilibrées, assurez-vous que tout ce que vous payez est utilisé et évitez une sous-utilisation importante des instances. Une métrique d'utilisation faussée dans un sens ou dans l'autre a un impact négatif sur votre organisation, que ce soit en termes de coûts d'exploitation (dégradation des performances due à une sur-utilisation) ou de gaspillage de dépenses AWS (en raison d'une sur-allocation).

**Topics**
+ [COST09-BP01 Effectuer une analyse de la demande de charge de travail](cost_manage_demand_resources_cost_analysis.md)
+ [COST09-BP02 Mettre en œuvre une mémoire tampon ou une limitation pour gérer la demande](cost_manage_demand_resources_buffer_throttle.md)
+ [COST09-BP03 Fournir dynamiquement les ressources](cost_manage_demand_resources_dynamic.md)

# COST09-BP01 Effectuer une analyse de la demande de charge de travail
<a name="cost_manage_demand_resources_cost_analysis"></a>

 Analysez la demande sur la charge de travail au fil du temps. Veillez à ce que l'analyse couvre les tendances saisonnières et représente avec précision les conditions d'exploitation pendant toute la durée de la charge de travail. L'effort d'analyse doit refléter les avantages potentiels : par exemple, le temps passé est proportionnel au coût de la charge de travail. 

 **Niveau d’exposition au risque si cette bonne pratique n'est pas respectée :** Débit 

## Directives d'implémentation
<a name="implementation-guidance"></a>

Ayez connaissance des exigences de la charge de travail. Les exigences de l'organisation doivent indiquer les délais de réponse de la charge de travail aux demandes. Le temps de réponse peut être utilisé pour déterminer si la demande est gérée, ou si l'offre de ressources va changer pour répondre à la demande.

L'analyse doit inclure la prévisibilité et la répétabilité de la demande ainsi que le taux et l'ampleur de variation de la demande. Assurez-vous que l'analyse est effectuée sur une période suffisamment longue pour intégrer toute variance saisonnière, telle que le traitement en fin de mois ou les pics de vacances.

Assurez-vous que l'effort d'analyse reflète les avantages potentiels de l'implémentation de la mise à l'échelle. Examinez le coût total attendu du composant, ainsi que les augmentations ou diminutions d'utilisation et de coût au cours de la durée de vie de la charge de travail.

Vous pouvez utiliser [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) ou [Amazon Quick](https://aws.amazon.com/quicksight/) avec le AWS Cost and Usage Report (CUR) ou les journaux de votre application pour effectuer une analyse graphique de la demande de charge de travail.

**Étapes d'implémentation**
+ ** Analyser les données de charge de travail existantes : **Analysez les données de la charge de travail existante, des versions précédentes de la charge de travail ou des modèles d'utilisation prévus. Utilisez les fichiers journaux et les données de suivi pour mieux comprendre comment les clients utilisent la charge de travail. Les métriques types sont la demande réelle, en demandes par seconde, les moments où le taux de demande change ou lorsqu'il est à des niveaux différents, et le taux de variation de la demande. Veillez à analyser un cycle complet de la charge de travail, en vous assurant de recueillir des données pour tout changement saisonnier tel que les événements de fin de mois ou de fin d'année. L'effort reflété dans l'analyse doit refléter les caractéristiques de la charge de travail. L'effort le plus important doit porter sur les charges de travail à forte valeur ajoutée qui subissent les plus grandes variations dans la demande. Le moindre effort doit porter sur les charges de travail de faible valeur ajoutée qui subissent des variations minimes dans la demande. Les métriques courantes de la valeur ajoutée sont le risque, la notoriété de la marque, le chiffre d’affaires ou le coût de la charge de travail. 
+ ** Prévoir l'influence extérieure : **Rencontrez les membres des équipes de toute l'organisation qui peuvent influencer ou modifier la demande dans la charge de travail. Les équipes communes sont celles des ventes, du marketing ou du développement commercial. Collaborez avec elles pour connaître les cycles qu’elles appliquent et déterminer s'il existe des événements susceptibles de modifier la demande de la charge de travail. Prévoyez la demande de la charge de travail à l'aide de ces données. 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [AWS Instance Scheduler](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  [Démarrer avec Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+ [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/)
+ [Amazon Quick](https://aws.amazon.com/quicksight/)

# COST09-BP02 Mettre en œuvre une mémoire tampon ou une limitation pour gérer la demande
<a name="cost_manage_demand_resources_buffer_throttle"></a>

 La mise en mémoire tampon et la limitation modifient la charge de travail en atténuant les pics éventuels. Mettez en œuvre une limitation lorsque vos clients effectuent de nouveaux essais. Mettez en œuvre une mémoire tampon pour stocker la demande et reporter le traitement. Veillez à ce que vos limitations et mémoires tampon soient conçues de manière à ce que les clients reçoivent une réponse dans les délais requis. 

 **Niveau d’exposition au risque si cette bonne pratique n'est pas respectée :** Faible 

## Directives d'implémentation
<a name="implementation-guidance"></a>

**Limitation :** Si la source de la demande peut exécuter de nouvelles tentatives, alors vous pouvez mettre en place une limitation. La limitation indique à la source que si elle ne peut répondre à la demande actuellement, elle doit réessayer ultérieurement. La source attend un certain temps, puis réessaie la demande. L'implémentation de la limitation a l'avantage de limiter la quantité maximale de ressources et les coûts maximaux de la charge de travail. Sur AWS, vous pouvez utiliser [Amazon API Gateway](https://aws.amazon.com/api-gateway/) pour mettre en place une limitation. Reportez-vous au [livre blanc du pilier Fiabilité du cadre Well-Architected](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html) pour plus d'informations sur la mise en place de la limitation.

**Mise en mémoire tampon : **Tout comme la limitation, un tampon diffère le traitement des demandes, ce qui permet aux applications qui s'exécutent à différents débits de communiquer efficacement. La mise en mémoire tampon utilise une file d'attente pour accepter les messages (unités de travail) envoyés par les producteurs. Les messages sont lus par les consommateurs et traités, ce qui permet aux messages de fonctionner au rythme qui répond aux besoins des entreprises. Vous n'avez pas à vous soucier des problèmes de limitation des producteurs, tels que la durabilité des données et l’ajustement (lorsque les producteurs ralentissent parce que leur consommateur est lent).

Dans AWS, vous pouvez choisir parmi plusieurs services pour mettre en place une approche de mise en mémoire tampon. [Amazon Simple Queue Service(Amazon SQS)](https://aws.amazon.com/sqs/) est un service géré qui fournit des files d'attente permettant à un seul consommateur de lire des messages individuels. [Amazon Kinesis](https://aws.amazon.com/kinesis/) fournit un flux de données qui permet à de nombreux consommateurs de lire les mêmes messages.

Lorsque vous utilisez une approche basée sur la mémoire tampon, veillez à ce que votre charge de travail soit conçue de manière à répondre à la demande dans les délais requis et assurez-vous que vous êtes en mesure de traiter les demandes de travail en double.

**Étapes d'implémentation**
+ ** Analyser les besoins du client : **Analysez les demandes des clients afin de déterminer s'ils sont capables d'effectuer de nouveaux essais. Pour les clients qui ne peuvent pas effectuer de nouveaux essais, des mémoires tampon doivent être mises en œuvre. Analysez la demande globale, le taux de variation et le temps de réponse requis pour déterminer la taille de limitation ou de mémoire tampon nécessaire. 
+ ** Mettre en œuvre une mémoire tampon ou une limitation :** Mettez en œuvre une mémoire tampon ou une limitation dans la charge de travail. Une file d'attente comme Amazon Simple Queue Service (Amazon SQS) peut fournir une mémoire tampon à vos composants de charge de travail. Amazon API Gateway peut fournir une limitation pour vos composants de charge de travail. 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [AWS Instance Scheduler](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  [Amazon API Gateway](https://aws.amazon.com/api-gateway/) 
+  [Amazon Simple Queue Service](https://aws.amazon.com/sqs/) 
+  [Démarrer avec Amazon SQS](https://aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+  [Amazon Kinesis](https://aws.amazon.com/kinesis/) 

# COST09-BP03 Fournir dynamiquement les ressources
<a name="cost_manage_demand_resources_dynamic"></a>

 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
<a name="implementation-guidance"></a>

Vous pouvez utiliser [AWS Auto Scaling](https://aws.amazon.com/autoscaling/), ou intégrer la mise à l'échelle dans votre code avec l' ['API ou les kits SDK AWS](https://aws.amazon.com/developer/tools/). 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](https://aws.amazon.com/autoscaling/) 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](https://aws.amazon.com/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 ](https://aws.amazon.com/elasticloadbalancing/)(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](https://aws.amazon.com/elasticloadbalancing/) 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](https://aws.amazon.com/developer/tools/) et [AWS CloudFormation](https://aws.amazon.com/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
<a name="resources"></a>

 **Documents connexes :** 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [AWS Instance Scheduler](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  [Démarrer avec Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html) 
+  [Démarrer avec Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+  [Mise à l'échelle planifiée pour Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html) 