Piliers de fiabilité et d’efficacité des performances
Concevez une récupération automatique, une mise à l’échelle horizontale et une gestion de la capacité ; choisissez les types de ressources adaptés et surveillez-les pour maintenir les performances dans le temps.
Piliers de fiabilité et d’efficacité des performances est une leçon AWS Solutions Architect gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AWS Solutions Architect, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AWS Solutions Architect comprend 4 leçons au total.
Vue d’ensemble du pilier Reliability
Le pilier Reliability du Well-Architected Framework garantit qu’une charge de travail exécute correctement et systématiquement la fonction prévue, au moment attendu. Reliability couvre trois domaines : les fondations (limites des services, topologie réseau), l’architecture de la charge de travail (systèmes distribués, évitement des points uniques de défaillance) et la gestion des modifications et des défaillances (surveillance, mise à l’échelle et reprise après défaillance). L’objectif est de concevoir des systèmes qui se rétablissent automatiquement après des interruptions de l’infrastructure ou des services.
# Reliability design principles:
# 1. Automatically recover from failure
# 2. Test recovery procedures
# 3. Scale horizontally to increase availability
# 4. Stop guessing capacity (use auto scaling)
# 5. Manage change in automation (IaC + CI/CD)
# Key AWS services for reliability:
# - Auto Scaling Groups
# - Elastic Load Balancing
# - Route 53 health checks
# - AWS BackupLimites et quotas des services
AWS applique des quotas de service (anciennement appelés limites) aux ressources afin de protéger tous les clients. Il existe par exemple des limites par défaut pour les instances EC2 par région, pour les VPC et pour les exécutions simultanées Lambda. Si votre charge de travail atteint soudainement un quota, les demandes sont limitées ou rejetées, ce qui provoque des problèmes de fiabilité. Utilisez la console Service Quotas ou le CLI pour consulter les limites actuelles et demander leur augmentation avant d’en avoir besoin. Surveillez les métriques d’utilisation afin de détecter que vous approchez des limites avant qu’elles n’affectent la disponibilité.
# List service quotas for EC2
aws service-quotas list-service-quotas \
--service-code ec2 \
--query 'Quotas[?QuotaName==`Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances`]'
# Request quota increase
aws service-quotas request-service-quota-increase \
--service-code ec2 \
--quota-code L-1216C47A \
--desired-value 500Récupération automatique après une défaillance
Le pilier Reliability met l’accent sur la récupération automatique, sans intervention humaine. AWS fournit plusieurs mécanismes d’auto-rétablissement : EC2 Auto Recovery restaure automatiquement une instance sur le même matériel ou la déplace vers un matériel sain lorsque les vérifications sous-jacentes échouent. Les vérifications d’état ASG arrêtent les instances défaillantes et lancent des remplacements. RDS Multi-AZ bascule automatiquement vers l’instance de secours. Concevez votre architecture de façon à ce que la plupart des scénarios de défaillance déclenchent des actions de récupération automatique enregistrées dans les alarmes CloudWatch.
# CloudWatch alarm to auto-recover a specific EC2 instance
aws cloudwatch put-metric-alarm \
--alarm-name EC2-auto-recover \
--metrics '[{"Id":"m1","MetricStat":{"Metric":{"Namespace":"AWS/EC2","MetricName":"StatusCheckFailed_System","Dimensions":[{"Name":"InstanceId","Value":"i-12345"}]},"Period":60,"Stat":"Maximum"}}]' \
--comparison-operator GreaterThanThreshold \
--threshold 0 \
--evaluation-periods 2 \
--alarm-actions 'arn:aws:automate:us-east-1:ec2:recover'Mise à l’échelle horizontale pour la fiabilité
Le pilier Reliability recommande la mise à l’échelle horizontale (ajouter davantage de petites instances) plutôt que verticale (augmenter la taille des instances) afin d’améliorer la fiabilité. Une seule grande instance constitue un point unique de défaillance. De nombreuses petites instances derrière un répartiteur de charge signifient que la défaillance d’une instance donnée a un impact minimal. AWS Auto Scaling ajuste automatiquement la taille du parc pour répondre à la demande, afin de garantir que vous disposez d’une capacité suffisante sans payer de ressources inactives pendant les périodes creuses.
# Horizontal scaling: 10 t3.medium vs 1 r5.4xlarge
# 10 t3.medium:
# - Failure of 1 = loss of 10% capacity
# - ASG launches replacement automatically
# - 9 instances absorb load during replacement
# 1 r5.4xlarge:
# - Failure = 100% downtime until instance recovered
# - Much higher RTO (new instance launch: 1-3 min)
# Prefer horizontal scaling for stateless tiersTests de fiabilité
Le pilier Reliability exige de tester les procédures de récupération et de ne pas supposer qu’elles fonctionnent. Utilisez AWS Fault Injection Simulator (FIS) pour injecter des défaillances dans votre système de manière contrôlée : arrêtez des instances EC2 aléatoires, limitez les appels d’API ou injectez de la latence réseau. Exécutez ces expériences en production, avec des mesures de protection, afin de vérifier que votre surveillance détecte les défaillances, que la mise à l’échelle automatique réagit et que la récupération s’achève dans votre RTO. Les procédures de récupération non testées échouent souvent sous la pression d’un incident réel.
# AWS FIS experiment: terminate random instance
aws fis create-experiment-template \
--description 'Chaos: terminate 1 of 5 instances' \
--targets '{"instanceTargets":{"resourceType":"aws:ec2:instance","selectionMode":"COUNT(1)","resourceTags":{"Env":"production"}}}' \
--actions '{"terminateInstance":{"actionId":"aws:ec2:terminate-instances","targets":{"Instances":"instanceTargets"}}}' \
--stop-conditions '[{"source":"aws:cloudwatch:alarm","value":"arn:aws:cloudwatch::123:alarm:high-error-rate"}]'Vue d’ensemble du pilier Performance Efficiency
Le pilier Performance Efficiency vise à utiliser efficacement les ressources de calcul pour répondre aux exigences du système et à maintenir cette efficacité lorsque la demande évolue et que les technologies progressent. Principes clés de conception : Démocratiser les technologies avancées — utilisez des services gérés (RDS, SageMaker) plutôt que de tout développer vous-même. Passer à l’échelle mondiale en quelques minutes — déployez dans plusieurs régions avec CloudFormation. Utiliser des architectures sans serveur — éliminez la gestion de l’infrastructure. Expérimenter plus souvent — testez différents types et différentes configurations d’instances.
# Performance Efficiency areas:
# Selection: Right compute, storage, database, network
# Review: Continuously evaluate new services
# Monitoring: CloudWatch metrics guide decisions
# Trade-offs: Consistency vs performance, latency vs cost
# Example: choosing between services
# RDS vs DynamoDB vs Aurora vs ElastiCache
# → depends on access patterns, consistency needs, scaleSélectionner le bon type de calcul
Performance Efficiency commence par la sélection du type de calcul adapté à votre charge de travail. EC2 propose des dizaines de familles d’instances optimisées pour différents cas d’utilisation : les séries c pour les charges intensives en calcul (encodage vidéo, traitement par lots), les séries r pour les charges intensives en mémoire (bases de données en mémoire, mise en cache), les séries i pour les charges intensives en stockage (NoSQL, entreposage de données) et les séries p/g pour les charges GPU (entraînement ML). Utiliser un type d’instance inadapté signifie payer une capacité inutilisable ou subir une dégradation des performances.
# AWS Compute Optimizer: get right-size recommendations
aws compute-optimizer get-ec2-instance-recommendations \
--instance-arns arn:aws:ec2:us-east-1:123:instance/i-12345
# Output shows:
# - Current instance utilisation (CPU, memory, network)
# - Recommended instance type
# - Estimated monthly savings
# - Performance risk of changing
# Lambda: match memory to actual usage
# Use Lambda Power Tuning tool for memory optimisationMise en cache pour Performance Efficiency
La mise en cache est une technique fondamentale de Performance Efficiency qui réduit la latence et la charge des bases de données. ElastiCache (Redis/Memcached) met en cache en mémoire les résultats des requêtes de base de données, pour un accès en quelques millisecondes. CloudFront met en cache les réponses HTTP dans des emplacements périphériques proches des utilisateurs. La mise en cache d’API Gateway réduit les invocations Lambda en mettant en cache les réponses d’API. DAX (DynamoDB Accelerator) ajoute un cache en mémoire accessible en microsecondes devant DynamoDB. Choisissez la couche de mise en cache adaptée selon l’emplacement du goulot d’étranglement : base de données, API ou diffusion périphérique.
# DAX cluster for DynamoDB microsecond latency
aws dax create-cluster \
--cluster-name my-dax \
--node-type dax.r6g.large \
--replication-factor 3 \
--iam-role-arn arn:aws:iam::123:role/DAXRole \
--subnet-group my-dax-subnet-group
# Application connects to DAX endpoint
# Cache hits: microseconds
# Cache misses: fetches from DynamoDB and caches resultLe bon stockage pour les performances
Le choix du stockage a un impact considérable sur les performances. io2 Block Express EBS fournit jusqu’à 256 000 IOPS pour les bases de données hautes performances. gp3 est le choix par défaut pour la plupart des charges de travail, à moindre coût. Instance store fournit le plus grand nombre d’IOPS (NVMe) pour les données temporaires. S3 peut gérer des milliers de demandes par seconde pour le stockage d’objets. EFS fournit un accès partagé aux fichiers POSIX. Adaptez votre stockage au modèle d’E/S : les lectures séquentielles bénéficient de st1 (Throughput Optimised HDD), tandis que les E/S aléatoires nécessitent des volumes SSD.
# EBS volume performance characteristics:
# gp3: 3,000-16,000 IOPS, 125-1,000 MB/s
# io2: 100-64,000 IOPS (up to 256k with Block Express)
# st1: 40-500 MB/s sequential throughput (HDD)
# sc1: 12-250 MB/s (cheapest, cold workloads)
# Create high-performance io2 volume
aws ec2 create-volume \
--availability-zone us-east-1a \
--volume-type io2 \
--size 500 \
--iops 50000Surveillance des performances et amélioration continue
Performance Efficiency ne se décide pas une seule fois : vous devez surveiller en continu les métriques de performance et réévaluer vos choix à mesure qu’AWS lance de nouveaux services. Utilisez les tableaux de bord CloudWatch pour suivre les percentiles de latence p50, p90 et p99 (et pas uniquement les moyennes, qui masquent la latence de la queue). Utilisez les traces X-Ray pour identifier les parties les plus lentes d’une chaîne de requêtes. Configurez la détection d’anomalies CloudWatch afin d’établir automatiquement une référence et de déclencher des alertes en cas d’écarts de performance anormaux. Consultez régulièrement les annonces AWS : les nouveaux types d’instances offrent souvent de meilleures performances à moindre coût.
# CloudWatch: track API response latency percentiles
aws cloudwatch put-metric-alarm \
--alarm-name 'API-P99-Latency' \
--metric-name TargetResponseTime \
--namespace AWS/ApplicationELB \
--extended-statistic p99 \
--dimensions Name=LoadBalancer,Value=app/my-alb/xxx \
--period 60 \
--evaluation-periods 5 \
--threshold 2.0 \
--comparison-operator GreaterThanThresholdCompromis liés à Performance Efficiency
Performance Efficiency implique parfois des compromis avec d’autres piliers. Ajouter un cache (ElastiCache) améliore les performances, mais augmente la complexité opérationnelle (compromis avec Operational Excellence) et le coût (compromis avec Cost Optimisation). Utiliser DynamoDB plutôt que RDS améliore les performances à grande échelle, mais exige de repenser votre modèle de données (effort lié à Operational Excellence). Le Well-Architected Framework reconnaît ces compromis et vous demande de les effectuer en connaissance de cause, en documentant votre raisonnement. Dans les questions d’examen, recherchez l’option qui atteint les objectifs de performance avec le moins de charge opérationnelle.
# Common performance vs cost trade-offs:
# Cache: +Performance, +Cost, +Complexity
# Read Replicas: +Read performance, +Cost
# SSD vs HDD: +IOPS, +Cost
# Multi-region: -Latency for users, +Cost, +Complexity
# Common performance vs consistency trade-offs:
# DynamoDB eventually consistent reads: +Throughput, -Consistency
# Aurora Reader endpoint: +Read scale, potential replication lagVérification rapide
Vérifiez votre compréhension des concepts AWS Solutions Architect (SAA-C03) abordés dans cette leçon.
Récapitulatif de la leçon
Dans cette leçon, vous avez appris que : Reliability exige une récupération automatique, une mise à l’échelle horizontale et des tests réguliers des défaillances ; Performance Efficiency exige de sélectionner le type de calcul, de stockage et de base de données adapté à chaque charge de travail ; et la mise en cache à plusieurs couches réduit la latence et la charge des bases de données. Ces deux piliers exigent une surveillance continue et la volonté de réévaluer les décisions d’architecture. Nous allons maintenant explorer les piliers Cost Optimisation et Sustainability.
Questions Fréquemment Posées
La leçon « Piliers de fiabilité et d’efficacité des performances » est-elle gratuite ?
Oui — le texte complet de « Piliers de fiabilité et d’efficacité des performances » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AWS Solutions Architect, passe à CoddyKit PRO. Le cours AWS Solutions Architect comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Piliers de fiabilité et d’efficacité des performances » ?
Concevez une récupération automatique, une mise à l’échelle horizontale et une gestion de la capacité ; choisissez les types de ressources adaptés et surveillez-les pour maintenir les performances da… Tu pratiques AWS Solutions Architect avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer AWS Solutions Architect ?
Aucune expérience préalable n'est requise. AWS Solutions Architect sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Piliers de fiabilité et d’efficacité des performances » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon AWS Solutions Architect ?
Oui. Chaque leçon AWS Solutions Architect inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Piliers de l’excellence opérationnelle et de la sécurité
- Piliers de fiabilité et d’efficacité des performances
- Piliers d’optimisation des coûts et de durabilité
- Outil Well-Architected et processus de revue