

# Efficacité en matière de performance
<a name="performance-efficiency"></a>

 Le pilier Efficacité des performances comprend la capacité à utiliser efficacement les ressources de calcul pour répondre aux exigences du système et à maintenir cette efficacité à mesure que la demande change et les technologies évoluent. 

 Le pilier Efficacité des performances fournit une vue d'ensemble des principes de conception, des bonnes pratiques et des questions. Vous trouverez des recommandations sur l'implémentation dans le [Livre blanc du pilier Efficacité des performances](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp). 

**Topics**
+ [Principes de conception](perf-dp.md)
+ [Définition](perf-def.md)
+ [Bonnes pratiques](perf-bp.md)
+ [Ressources](perf-resources.md)

# Principes de conception
<a name="perf-dp"></a>

 Il existe cinq principes de conception pour l'efficacité des performances dans le cloud : 
+  **Démocratiser les technologies avancées** : facilitez la mise en œuvre de technologies avancées pour votre équipe en déléguant les tâches complexes à votre fournisseur de cloud. Plutôt que de demander à votre équipe informatique de s'informer sur l'hébergement et l'exploitation de nouvelles technologies, envisagez de consommer les technologies en tant que service. Par exemple, les bases de données NoSQL, le transcodage multimédia et le machine learning sont trois technologies qui requièrent des compétences spécialisées. Dans le cloud, ces technologies deviennent des services que votre équipe peut consommer, ce qui lui permet de se dédier au développement de produits plutôt qu’à l’allocation et à la gestion des ressources. 
+  **Envergure mondiale en quelques minutes** : en déployant votre charge de travail dans plusieurs régions AWS à travers le monde, vous pouvez offrir une latence plus faible et une meilleure expérience à vos clients à un coût minimal. 
+  **Utiliser des architectures sans serveur** : grâce aux architectures sans serveur, vous n'avez plus besoin de faire fonctionner et de gérer des serveurs physiques pour les activités de calcul traditionnelles. Par exemple, les services de stockage sans serveur peuvent agir comme des sites Web statiques (éliminant le besoin de serveurs Web), et les services d'événements peuvent héberger du code. Ainsi, vous supprimez la charge opérationnelle de gestion des serveurs physiques et réduisez les coûts des transactions, car les services gérés fonctionnent à l'échelle du cloud. 
+  **Expérimenter plus fréquemment** : avec des ressources virtuelles et automatisables, vous pouvez rapidement exécuter des tests comparatifs à l'aide de différents types d'instances, de stockages ou de configurations. 
+  **Tenir compte de la « sympathie mécanique »** : comprenez comment les services cloud sont consommés et utilisez toujours l'approche technologique qui correspond le mieux à vos objectifs de charges de travail. Par exemple, tenez compte des modèles d'accès aux données lorsque vous sélectionnez les approches de stockage ou de base de données. 

# Définition
<a name="perf-def"></a>

 Les bonnes pratiques en matière d'efficacité des performances dans le cloud sont au nombre de quatre : 
+  **Sélection** 
+  **Vérification** 
+  **Surveillance** 
+  **Compromis** 

 Optez pour une approche orientée données lors de la création d’une architecture hautes performances. Collectez des données sur tous les aspects de l'architecture, depuis la conception générale jusqu'à la sélection et la configuration des types de ressources. 

 En réexaminant vos choix régulièrement, vous faites en sorte de tirer parti de l’évolution constante du cloud AWS. La surveillance vous offre la garantie d'être informé de tout écart par rapport aux performances attendues. Effectuez des compromis dans votre architecture pour améliorer les performances, comme l'utilisation de la compression, la mise en cache ou l'abaissement des exigences de cohérence. 

# Bonnes pratiques
<a name="perf-bp"></a>

**Topics**
+ [Sélection](perf-sel.md)
+ [Vérification](perf-review.md)
+ [Surveillance](perf-monitoring.md)
+ [Compromis](perf-tradeoffs.md)

# Sélection
<a name="perf-sel"></a>

 La solution optimale pour une charge de travail peut varier, et les solutions combinent souvent plusieurs approches. Les charges de travail bien architecturées utilisent plusieurs solutions et permettent d'utiliser différentes fonctionnalités pour améliorer les performances. 

 Les ressources AWS sont disponibles dans de nombreux types et configurations, ce qui permet de trouver plus facilement une approche qui répond étroitement aux besoins de votre charge de travail. Vous pouvez également rechercher des options qui ne sont pas facilement accessibles avec une infrastructure sur site. Par exemple, un service géré tel que Amazon DynamoDB fournit une base de données NoSQL entièrement gérée avec une latence de moins de dix millisecondes, quelle que soit l'échelle. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. (Pour obtenir la liste des questions et bonnes pratiques en matière d'efficacité des performances, consultez l' [Annexe](a-performance-efficiency.md).) 


| PERF 1 : Comment sélectionner l'architecture la plus performante ? | 
| --- | 
|  Plusieurs approches sont souvent nécessaires pour obtenir des performances optimales sur une charge de travail. Les systèmes à l'architecture well-architected utilisent plusieurs solutions et fonctions pour améliorer les performances.  | 

 Utilisez une approche basée sur les données pour sélectionner les modèles et la mise en œuvre de votre architecture et obtenir une solution rentable. Les partenaires AWS Solutions Architects, AWS Reference Architectures et AWS Partner Network (APN) peuvent vous aider à choisir une architecture basée sur les connaissances du secteur, mais des données obtenues par la définition de points de référence ou les tests de charge seront nécessaires pour optimiser votre architecture. 

 Votre architecture combinera probablement un certain nombre d'approches architecturales différentes (par exemple, événementiel, ETL ou pipeline). La mise en œuvre de votre architecture utilisera les services AWS qui sont spécifiques à l'optimisation des performances de votre architecture. Dans les sections suivantes, nous abordons les quatre principaux types de ressources à prendre en compte (calcul, stockage, base de données et réseau). 

# Calcul
<a name="perf-compute"></a>

 La sélection de ressources de calcul qui répondent à vos exigences, à vos besoins de performance et qui offrent une grande efficacité en termes de coûts et d'efforts vous permettra d'accomplir davantage avec le même nombre de ressources. Lorsque vous évaluez des options de calcul, tenez compte de vos besoins en matière de performances et de coûts de la charge de travail et utilisez-les pour prendre des décisions éclairées. 

 Dans AWS, les capacités de calcul sont disponibles sous trois formes, à savoir les instances, les conteneurs et les fonctions : 
+  **Instances** sont des serveurs virtualisés, ce qui vous permet de modifier leurs fonctionnalités à l'aide d'un bouton ou d'un appel d'API. Comme les décisions relatives aux ressources dans le cloud sont pas figées, vous pouvez expérimenter avec différents types de serveurs. Dans AWS, ces instances de serveurs virtuels se déclinent en différentes familles et tailles, et elles offrent une grande variété de fonctionnalités, notamment des disques Solid-State Drives (SSD) et des unités de traitement graphique (GPU). 
+  **Conteneurs** sont une méthode de virtualisation du système d'exploitation vous permettant d'exécuter une application et ses dépendances dans des processus isolés par les ressources. AWS Fargate est un système de calcul serverless pour les conteneurs, ou Amazon EC2 peut être utilisé si vous avez besoin de contrôler l'installation, la configuration et la gestion de votre environnement de calcul. Vous pouvez également choisir parmi plusieurs plates-formes d'orchestration de conteneurs : Amazon Elastic Container Service (ECS) ou Amazon Elastic Kubernetes Service (EKS). 
+  **fonctions ;** permettent d'extraire l'environnement d'exécution du code que vous voulez exécuter. Par exemple, AWS Lambda vous permet d'exécuter du code sans exécuter d'instance. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. 


| PERF 2 : Comment sélectionner votre solution de calcul ? | 
| --- | 
| La solution de calcul optimale pour une charge de travail peut varier en fonction des trois facteurs suivants : la conception de l'application, les modèles d'utilisation et les paramètres de configuration. Les architectures peuvent utiliser différentes solutions de calcul pour divers composants et activer différentes fonctions pour améliorer les performances. La sélection d'une solution de calcul inadaptée à une architecture peut nuire à ses performances. | 

 Lors de la conception architecturale de votre solution de calcul, vous devez tirer parti des mécanismes d'élasticité disponibles pour disposer de la capacité suffisante pour soutenir les performances lorsque les besoins changent. 

# Stockage
<a name="perf-storage"></a>

 Le stockage dans le cloud est un élément essentiel du cloud computing, car il contient les informations utilisées par votre charge de travail. Le stockage dans le cloud est généralement plus fiable, plus évolutif et plus sûr que les systèmes traditionnels de stockage sur site. Choisissez parmi les services de stockage d'objets, par blocs et de fichiers, et les options de migration des données dans le cloud pour votre charge de travail. 

 Dans AWS, le stockage est disponible sous trois formes : par objet, par bloc ou par fichier. 
+  **Stockage des objets** fournit une plate-forme scalable et durable pour rendre les données accessibles depuis n'importe quel emplacement Internet pour le contenu généré par l'utilisateur, l'archivage actif, le calcul sans serveur, le stockage Big Data ou la sauvegarde et la restauration. Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets qui offre une scalabilité, une disponibilité des données, une sécurité et des performances de pointe. Amazon S3 est conçu pour offrir une durabilité de 99,999999999 % (à 11 9) et stocke les données de millions d'applications pour des entreprises du monde entier. 
+  **Le stockage par blocs** fournit un stockage par blocs hautement disponible, cohérent et à faible latence pour chaque hôte virtuel. Il est analogue au stockage à connexion directe (DAS) ou à un réseau SAN (Storage Area Network). Amazon Elastic Block Store (Amazon EBS) est conçu pour les charges de travail qui nécessitent un stockage permanent accessible par les instances EC2, ce qui vous aide à ajuster les applications avec la capacité de stockage, les performances et le coût appropriés. 
+  **Le stockage de fichiers** permet d'accéder à un système de fichiers partagés sur plusieurs systèmes. Les solutions de stockage de fichiers comme Amazon Elastic File System (EFS) sont idéales pour les cas d'utilisation tels que les référentiels de contenu volumineux, les environnements de développement, les magasins multimédias ou les répertoires de base d'utilisateurs. Amazon FSx facilite et rentabilise le lancement et l'exécution de systèmes de fichiers populaires. Vous pouvez ainsi tirer parti des ensembles de fonctionnalités riches et des performances rapides des systèmes open source et sous licence commerciale très répandus. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. 


| PERF 3 : Comment sélectionner votre solution de stockage ? | 
| --- | 
|  La solution de stockage optimale pour un système varie en fonction du type de méthode d'accès (bloc, fichier ou objet), des modèles d'accès (aléatoire ou séquentiel), du débit requis, de la fréquence d'accès (en ligne, hors ligne, l'archivage), de la fréquence de mise à jour (WORM, dynamique), et de la disponibilité et la durabilité des contraintes. Les systèmes bien architecturés utilisent plusieurs solutions de stockage et autorisent différentes fonctions pour améliorer les performances et utiliser efficacement les ressources.  | 

 Lorsque vous choisissez une solution de stockage, il est essentiel de s'assurer qu'elle est conforme à vos habitudes d'accès afin d’obtenir les performances que vous souhaitez. 

# Base de données
<a name="perf-db"></a>

 Le cloud offre des services de base de données dédiées qui répondent aux différents problèmes posés par votre charge de travail. Vous pouvez choisir parmi de nombreux moteurs de base de données dédiés, y compris des bases de données relationnelles, de valeurs-clés, de documents, en mémoire, graphiques, de séries chronologiques et de registre. En choisissant la meilleure base de données pour résoudre un problème spécifique (ou un groupe de problèmes), vous pouvez vous affranchir des bases de données monolithiques restrictives à taille unique et vous concentrer sur la création d'applications répondant aux besoins de performance de vos clients. 

 Dans AWS, vous pouvez choisir parmi plusieurs moteurs de base de données dédiés, y compris des bases de données relationnelles, de valeurs-clés, de documents, en mémoire, graphique, de séries chronologiques et de registre. Avec les bases de données AWS, vous n'avez pas à vous soucier des tâches de gestion des bases de données telles que le dimensionnement des serveurs, des correctifs, de la configuration, des sauvegardes ou la récupération. AWS surveille en permanence vos clusters pour maintenir vos charges de travail avec un stockage auto-réparateur et une mise à l'échelle automatisée, afin que vous puissiez vous concentrer sur le développement d'applications à plus forte valeur métier. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. 


| PERF 4 : Comment sélectionner votre solution de base de données ? | 
| --- | 
|  La solution de base de données optimale pour un système varie en fonction des exigences de cohérence, de disponibilité, de tolérance des partitions, de latence, de durabilité, d'évolutivité et de capacités de requête. De nombreux systèmes utilisent des solutions de base de données différentes pour divers sous-systèmes et activent des fonctionnalités distinctes pour améliorer les performances. La sélection d'une solution de base de données et de fonctionnalités incorrectes pour un système peut conduire à une efficacité moindre des performances.  | 

 L'approche de la base de données de votre charge de travail a un impact significatif sur les performances. Il s'agit souvent d'un domaine choisi en fonction des valeurs par défaut de l'entreprise plutôt que par le biais d'une approche axée sur les données. Comme pour le stockage, il est essentiel de tenir compte des schémas d'accès à votre charge de travail, et d'examiner également si d'autres solutions autres que les bases de données pourraient résoudre le problème plus efficacement (comme l'utilisation de graphiques, de séries chronologiques ou de bases de données de stockage en mémoire). 

# Réseau
<a name="perf-network"></a>

 Étant donné que le réseau se trouve entre tous les composants de la charge de travail, il peut avoir un impact positif et négatif sur les performances et le comportement de la charge de travail. Il existe également des applications qui dépendent fortement des performances réseau, telles que le calcul hautes performances (HPC), pour lesquelles une compréhension approfondie du réseau est importante pour améliorer les performances du cluster. Vous devez déterminer les besoins de la charge de travail pour la bande passante, la latence, l'instabilité et le débit. 

 Dans AWS, la mise en réseau est virtualisée et disponible dans plusieurs types et configurations. Il est ainsi plus facile d'adapter vos méthodes de mise en réseau à vos besoins. AWS propose des fonctionnalités de produit (par exemple, la mise en réseau améliorée, les instances optimisées pour Amazon EBS, Amazon S3 Transfer Acceleration et Amazon CloudFront dynamique) pour optimiser le trafic réseau. AWS propose également des fonctionnalités de mise en réseau (par exemple, le routage de latence Amazon Route 53, les points de terminaison Amazon VPC, AWS Direct Connect et AWS Global Accelerator) pour réduire l'instabilité ou la distance du réseau. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. 


| PERF 5 : Comment configurer votre solution de mise en réseau ? | 
| --- | 
|  La solution réseau optimale pour une charge de travail varie en fonction des exigences de latence, de bande passante, de registre et de débit. Le choix des options d'emplacement est tributaire des contraintes physiques telles que les ressources pour utilisateur ou sur site. Ces contraintes peuvent être compensées avec les emplacements périphériques ou le placement des ressources.  | 

 Vous devez prendre en compte l'emplacement lors du déploiement de votre réseau. vous pouvez choisir de placer des ressources à proximité de l'endroit où elles seront utilisées pour réduire la distance. Utilisez les métriques de mise en réseau pour apporter des modifications à la configuration de mise en réseau à mesure que la charge de travail évolue. En tirant parti des régions, des groupes de placement et des emplacements périphériques, vous pouvez améliorer les performances de façon notable. Les réseaux basés sur le cloud peuvent être rapidement recréés. L'évolution de votre architecture réseau au fil du temps est donc nécessaire pour maintenir de hautes performances. 

# Vérification
<a name="perf-review"></a>

 Les technologies cloud évoluent rapidement et vous devez vous assurer que les composants de la charge de travail utilisent les dernières technologies et approches pour améliorer continuellement les performances. Vous devez constamment évaluer et prendre en compte les modifications apportées aux composants de votre charge de travail afin d’atteindre ses objectifs de performance et de coût. Les nouvelles technologies, telles que le machine learning et l'intelligence artificielle (IA), peuvent vous permettre de réimaginer les expériences client et d'innover dans l'ensemble de vos charges de travail métier. 

 Profitez des innovations constantes d'AWS, motivées par les besoins des clients. Nous ajoutons régulièrement des régions, des emplacements périphériques, des services et des fonctionnalités. Chaque ajout peut considérablement améliorer l'efficacité des performances de votre architecture. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. 


| PERF 6 : Comment faire évoluer votre charge de travail pour tirer parti des nouvelles versions ? | 
| --- | 
|  Lors de la conception architecturale des charges de travail fini, il existe des options que vous pouvez choisir. Au fil du temps, cependant, de nouvelles technologies et approches entrent en scène et permettent d'améliorer les performances de votre architecture.  | 

 Les architectures qui présentent des performances médiocres sont généralement le résultat d'un processus de vérification des performances inexistant ou interrompu. Si les performances de votre architecture ne sont pas satisfaisantes, la mise en œuvre d’un processus d'examen des performances permet d'appliquer le cycle de Deming (planifier, développer, contrôler, ajuster, ou PDCA) pour favoriser une amélioration itérative. 

# Surveillance
<a name="perf-monitoring"></a>

 Une fois votre charge de travail mise en œuvre, vous devez surveiller ses performances afin de pouvoir corriger les problèmes avant qu'ils n'affectent vos clients. Utilisez des métriques de surveillance pour déclencher des alarmes lorsque des seuils sont franchis. 

 Amazon CloudWatch est un service de surveillance et d'observabilité qui vous fournit des données et des informations exploitables pour surveiller votre charge de travail, répondre aux changements de performances à l'échelle du système, optimiser l'utilisation des ressources et obtenir un aperçu unifié de l'état opérationnel. CloudWatch collecte des données de surveillance et d'opérations sous la forme de journaux, de métriques et d'événements à partir de charges de travail exécutées sur AWS et des serveurs sur site. AWS X-Ray aide les développeurs à analyser et déboguer les applications distribuées en production. Avec AWS X-Ray, vous pouvez obtenir des informations sur les performances de votre application, découvrir les causes racines et identifier les goulots d'étranglement au niveau des performances. Vous pouvez utiliser ces éléments pour réagir rapidement et faire en sorte que votre charge de travail continue de fonctionner sans heurt. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. 


| PERF 7 : Comment surveiller vos ressources pour vous assurer qu'elles fonctionnent ? | 
| --- | 
|  Les performances du système peuvent se dégrader au fil du temps. Surveillez-les afin d'identifier cette dégradation et corriger les facteurs internes ou externes tels que le système d'exploitation ou le chargement des applications.  | 

 Une solution de contrôle efficace qui ne produit pas de faux positif est essentielle. Les déclencheurs automatisés permettent d'éviter les erreurs humaines et d’accélérer la résolution des problèmes. Prévoyez les jours où des simulations sont effectuées dans l'environnement de production pour tester votre solution d'alarme et vous assurer qu'elle identifie correctement les problèmes. 

# Compromis
<a name="perf-tradeoffs"></a>

 Lorsque vous concevez l'architecture des solutions, pensez à faire des compromis afin d'assurer une approche optimale. En fonction de votre situation, vous pouvez privilégier la cohérence, la durabilité et l'espace par rapport au temps ou à la latence pour offrir de meilleures performances. 

 Avec AWS, vous pouvez atteindre une portée mondiale en quelques minutes et déployer des ressources à plusieurs emplacements à travers le monde pour vous rapprocher de vos utilisateurs finaux. Vous pouvez aussi ajouter dynamiquement des réplicas en lecture seule aux banques d'informations, comme les systèmes de bases de données, afin de réduire la charge sur la base de données principale. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. 


| PERF 8 : Comment utiliser les compromis pour améliorer les performances ? | 
| --- | 
|  Lors de la conception architecturale de solutions, identifier les compromis permet de sélectionner une approche optimale. En règle générale, vous pouvez améliorer les performances en faisant un compromis sur la cohérence, la durabilité et l'espace en faveur du temps et de la latence.  | 

 Lorsque vous apportez des modifications à la charge de travail, collectez et évaluez les métriques pour déterminer l'impact de ces modifications. Mesurez les impacts sur le système, ainsi que sur l'utilisateur final pour comprendre la façon dont vos compromis affectent votre charge de travail. Utilisez une approche systématique, telle que des tests de charge, pour déterminer si le compromis améliore les performances. 

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

 Consultez les ressources suivantes pour en savoir plus sur nos bonnes pratiques relatives à l'efficacité des performances. 

## Documentation
<a name="perf-doc"></a>
+  [Amazon S3 Optimisation des performances](https://docs.aws.amazon.com/AmazonS3/latest/dev/PerformanceOptimization.html?ref=wellarchitected-wp) 
+  [Amazon EBS Performances des volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSPerformance.html?ref=wellarchitected-wp) 

## Livre blanc
<a name="perf-wp"></a>
+  [Pilier Efficacité des performances](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp) 

## Vidéo
<a name="perf-video"></a>
+  [AWS re:Invent 2019: Amazon EC2 foundations (CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Leadership session: Storage state of the union (STG201-L)](https://www.youtube.com/watch?v=39vAsGi6eEI&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Leadership session: AWS purpose-built databases (DAT209-L)](https://www.youtube.com/watch?v=q81TVuV5u28&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Connectivity to AWS and hybrid AWS network architectures (NET317-R1)](https://www.youtube.com/watch?v=eqW6CPb58gs&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Powering next-gen Amazon EC2: Deep dive into the Nitro system (CMP303-R2)](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Scaling up to your first 10 million users (ARC211-R)](https://www.youtube.com/watch?v=kKjm4ehYiMs&ref=wellarchitected-wp) 