REL 11: Comment concevez-vous votre charge de travail pour la rendre résistante aux défaillances de composants ?
Les charges de travail exigeant une haute disponibilité et un faible temps moyen de récupération (MTTR) doivent être conçues pour être résilientes.
Ressources
Static stability in AWS: AWS re:Invent 2019: Introducing The Amazon Builders’ Library
(DOP328)
AWS OpsWorks: Using Auto Healing to Replace Failed Instances
What Is Amazon EventBridge?
Amazon Route 53: Choosing a Routing Policy
What Is AWS Global Accelerator?
The Amazon Builders' Library: Static stability using Availability Zones
The Amazon Builders' Library: Implementing health checks
Well-Architected lab: Level 300: Implementing Health Checks and Managing Dependencies
to Improve Reliability
The Berkeley/Stanford Recovery-Oriented Computing (ROC) Project
Multiple data center HA network connectivity
AWS Marketplace: products that can be used for fault tolerance
APN
Partner: partners that can help with automation of your fault tolerance
Bonnes pratiques:
-
Surveiller tous les composants de la charge de travail pour détecter les défaillances: Surveillez en continu l'état de votre charge de travail afin que vous et vos systèmes automatisés ayez connaissance de la dégradation ou de la défaillance complète dès qu'elle se produit. Surveillez les indicateurs de performance clés (KPI) en fonction de la valeur commerciale.
-
Basculement vers des ressources saines: Vérifiez que les ressources saines peuvent continuer à traiter les demandes en cas de défaillance d’une ressource. Pour les défaillances d'emplacement (par exemple, zone de disponibilité ou région AWS), vérifiez que vous disposez de systèmes en place pour basculer vers des ressources saines dans des emplacements intacts.
-
Automatisation de la réparation sur toutes les couches: Utilisez des capacités automatisées pour effectuer des actions correctives en cas de détection d'une défaillance.
-
Utilisation de la stabilité statique pour éviter les comportements bimodaux: Un comportement bimodal survient lorsque votre charge de travail adopte un comportement différent en mode normal et en mode de défaillance, par exemple, en s'appuyant sur le lancement de nouvelles instances en cas de défaillance d'une zone de disponibilité. Pour éviter ce type de comportement, vous devez créer des charges de travail stables statiquement et qui fonctionnent dans un seul mode. Dans ce cas, mettez en service suffisamment d'instances dans chaque zone de disponibilité pour gérer la charge de travail si une zone de disponibilité a été supprimée, puis utilisez Elastic Load Balancing ou les vérifications d'état Amazon Route 53 pour déplacer la charge des instances compromises.
-
Envoi de notifications lorsque des événements affectent la disponibilité: Des notifications sont envoyées lors de la détection d'événements importants, même si le problème provoqué par l'événement a été automatiquement résolu.
Plan d'amélioration
Surveiller tous les composants de la charge de travail pour détecter les défaillances
- Votre intervalle de surveillance dépend de la vitesse à laquelle vous devez récupérer.: Votre temps de récupération dépend du temps nécessaire à la récupération. Vous devez donc déterminer la fréquence de collecte en tenant compte de cette durée et de votre objectif de temps de récupération (RTO).
- Vérification de la nécessite d'une surveillance détaillée pour les instances EC2 et
Auto Scaling: La surveillance détaillée fournit des métriques d'intervalle d'une minute et la surveillance
par défaut fournit des métriques d'intervalle de 5 minutes.
Enable or Disable Detailed Monitoring for Your Instance
Monitoring Your Auto Scaling Groups and Instances Using Amazon CloudWatch - Vérification de la nécessité de la surveillance améliorée pour RDS: La surveillance améliorée utilise un agent sur les instances RDS pour obtenir des
informations utiles sur différents processus ou threads sur une instance RDS.
Enhanced Monitoring
Publishing Custom Metrics
Amazon CloudWatch Synthetics enables you to create user canaries
Publishing Custom Metrics
Using Amazon CloudWatch Alarms
Using CloudWatch Dashboards
Basculement vers des ressources saines
- Si votre charge de travail utilise des services AWS comme Amazon S3 ou Amazon DynamoDB, elle est automatiquement déployée dans plusieurs zones de disponibilité. En cas de défaillance, le plan de contrôle AWS s'occupe de l'acheminement automatique du trafic vers des emplacements sains.
- Pour Amazon RDS, vous devez choisir Multi-AZ comme option de configuration, puis en
cas de défaillance, AWS dirige automatiquement le trafic vers l'instance saine.
High Availability (Multi-AZ) for Amazon RDS - Pour les instances Amazon EC2 ou les tâches Amazon ECS, vous choisissez les zones de disponibilité du déploiement. Elastic Load Balancing fournit ensuite la solution pour détecter les instances dans les zones défectueuses et acheminer le trafic vers les zones saines. Elastic Load Balancing peut même acheminer le trafic vers les composants de votre centre de données sur site.
- TRANSLATION REQUIRED
- TRANSLATION REQUIRED
Overview of Amazon RDS Read Replicas - TRANSLATION REQUIRED
Amazon Route 53: Choosing a Routing Policy
What Is AWS Global Accelerator?
- TRANSLATION REQUIRED
Automatisation de la réparation sur toutes les couches
How AWS Auto Scaling Works
Amazon EC2 Automatic Recovery
Amazon Elastic Block Store (Amazon EBS)
Amazon Elastic File System (Amazon EFS)
What is Amazon FSx for Lustre?
What is Amazon FSx for Windows File Server?
- Configuration de la réparation automatique des instances EC2 au niveau de la couche
avec AWS OpsWorks
AWS OpsWorks: Using Auto Healing to Replace Failed Instances
What is AWS Step Functions?
What is AWS Lambda?
- Amazon EventBridge peut être utilisé pour surveiller et filtrer les événements tels
que les alarmes CloudWatch ou les changements d'état dans d'autres services AWS. En
fonction des informations d'événement, il peut ensuite déclencher AWS Lambda (ou d'autres
cibles) pour exécuter une logique de correction personnalisée sur votre charge de
travail.
What Is Amazon EventBridge?
Using Amazon CloudWatch Alarms
Utilisation de la stabilité statique pour éviter les comportements bimodaux
The Amazon Builders' Library: Static stability using Availability Zones
Static stability in AWS: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
- Pour éviter ce type de comportement, vous devez créer des systèmes stables statiquement et qui fonctionnent dans un seul mode. Dans ce cas, mettez en service suffisamment d'instances dans chaque zone pour gérer la charge de travail si une zone de disponibilité a été supprimée, puis utilisez Elastic Load Balancing ou les vérifications d'état Amazon Route 53 pour déplacer la charge des instances compromises.
- Un autre exemple de comportement bimodal consiste à autoriser les clients à contourner votre cache de charge de travail lorsque des défaillances se produisent. Quoiqu'elle semble répondre aux besoins des clients, cette solution ne devrait pas être autorisée, car elle modifie considérablement les exigences de votre charge de travail et peut être à l'origine de défaillances.
Envoi de notifications lorsque des événements affectent la disponibilité
Creating a CloudWatch Alarm Based on a Static Threshold
What is Amazon Simple Notification Service?