REL 11: Come si progetta il carico di lavoro affinché resista ai guasti dei componenti?
I carichi di lavoro con requisiti di disponibilità elevata e MTTR (Mean Time To Recovery) basso devono essere progettati per garantire la resilienza.
Risorse
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
Best practice:
-
Monitoraggio di tutti i componenti del carico di lavoro per rilevare i guasti: Monitora continuamente lo stato del carico di lavoro, in modo che tu e i tuoi sistemi automatizzati siate consapevoli del deterioramento o del guasto completo non appena questi si verificano. Monitora gli indicatori chiave di prestazioni (KPI) in base al valore aziendale.
-
Failover e passaggio a risorse integre: Garantisce che laddove si verifichi un errore con una risorsa, le risorse integre possano continuare a soddisfare le richieste. Per gli errori legati alle posizioni (ad esempio una zona di disponibilità o una regione AWS), assicurati di disporre di sistemi che possano eseguire il failover e passare a risorse integre in posizioni non danneggiate.
-
Automatizzazione del risanamento a tutti i livelli: Al rilevamento di un guasto, utilizza funzionalità automatizzate per eseguire azioni da correggere.
-
Utilizzo della stabilità statica per evitare un comportamento bimodale: Si ha un comportamento bimodale quando il carico di lavoro mostra un comportamento diverso in modalità normale e di guasto, ad esempio facendo affidamento sull'avvio di nuove istanze se una zona di disponibilità ha esito negativo. Devi invece creare carichi di lavoro che siano staticamente stabili e operino in una sola modalità. In questo caso, effettua il provisioning di istanze sufficienti in ciascuna zona di disponibilità per gestire il carico di lavoro se una zona di disponibilità è stata rimossa, quindi utilizza Elastic Load Balancing o i controlli dello stato di Amazon Route 53 per spostare il carico dalle istanze danneggiate.
-
Invio di notifiche quando gli eventi influiscono sulla disponibilità: Le notifiche vengono inviate al rilevamento di eventi significativi, anche se il problema causato dall'evento è stato risolto automaticamente.
Piano di miglioramento
Monitoraggio di tutti i componenti del carico di lavoro per rilevare i guasti
- L'intervallo di monitoraggio dipende dalla velocità con cui è necessario ripristinare: Il tempo di ripristino dipende dal tempo necessario a ripristinare, perciò è necessario determinare la frequenza della raccolta considerando tale tempo e l'obiettivo di tempo di ripristino (RTO, recovery time objective).
- Determinare se è necessario un monitoraggio dettagliato per le istanze EC2 e l'Auto
Scaling: Il monitoraggio dettagliato fornisce parametri con un intervallo di 1 minuto, mentre
il monitoraggio predefinito fornisce parametri con un intervallo di 5 minuti.
Enable or Disable Detailed Monitoring for Your Instance
Monitoring Your Auto Scaling Groups and Instances Using Amazon CloudWatch - Determinare se è necessario un monitoraggio avanzato per RDS: Il monitoraggio avanzato utilizza un agente sulle istanze RDS per ottenere informazioni
utili su diversi processi o thread in un'istanza 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
Failover e passaggio a risorse integre
- Se il carico di lavoro utilizza servizi AWS, ad esempio Amazon S3 o Amazon DynamoDB, questi vengono automaticamente distribuiti in più zone di disponibilità. In caso di guasto, il piano di controllo AWS instrada automaticamente il traffico verso le posizioni integre per te.
- Per Amazon RDS, è necessario scegliere Multi-AZ come opzione di configurazione, quindi
in caso di guasto, AWS indirizza automaticamente il traffico verso l'istanza integra.
High Availability (Multi-AZ) for Amazon RDS - Per le istanze Amazon EC2 o le attività Amazon ECS, sei tu a scegliere le zone di disponibilità in cui distribuire. Elastic Load Balancing fornisce quindi la soluzione per rilevare le istanze in zone non integre e instradare il traffico verso quelle integre. Elastic Load Balancing può anche instradare il traffico verso componenti nel tuo data center locale.
- 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
Automatizzazione del risanamento a tutti i livelli
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?
- Utilizzando AWS OpsWorks, puoi configurare il ripristino automatico delle istanze
EC2 a livello del layer
AWS OpsWorks: Using Auto Healing to Replace Failed Instances
What is AWS Step Functions?
What is AWS Lambda?
- Amazon EventBridge può essere utilizzato per monitorare e filtrare eventi come allarmi
CloudWatch o modifiche di stato in altri servizi AWS. In base alle informazioni sugli
eventi, può quindi attivare AWS Lambda (o altri target) per eseguire una logica di
remediation personalizzata sul carico di lavoro.
What Is Amazon EventBridge?
Using Amazon CloudWatch Alarms
Utilizzo della stabilità statica per evitare un comportamento bimodale
The Amazon Builders' Library: Static stability using Availability Zones
Static stability in AWS: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
- Devi invece creare sistemi che siano staticamente stabili e operino in una sola modalità. In questo caso, effettua il provisioning di istanze sufficienti in ciascuna zona per gestire il carico di lavoro se una zona di disponibilità è stata rimossa, quindi utilizza Elastic Load Balancing o i controlli dello stato di Amazon Route 53 per spostare il carico dalle istanze danneggiate.
- Un altro esempio di comportamento bimodale è consentire ai client di bypassare la cache del carico di lavoro quando si verificano guasti. Potrebbe sembrare una soluzione per soddisfare le esigenze del client, ma non dovrebbe essere consentita perché modifica in modo significativo le richieste sul carico di lavoro e potrebbe causare guasti.
Invio di notifiche quando gli eventi influiscono sulla disponibilità
Creating a CloudWatch Alarm Based on a Static Threshold
What is Amazon Simple Notification Service?