REL 11: Como você projeta sua carga de trabalho para resistir a falhas de componentes?
As cargas de trabalho que exigem alta disponibilidade e baixo Mean Time To Recovery (MTTR – Tempo médio até a recuperação) devem ser projetadas visando a resiliência.
Recursos
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
Melhores práticas:
-
Monitore todos os componentes da carga de trabalho para detectar falhas: Monitore constantemente a integridade da carga de trabalho para que você e seus sistemas automatizados detectem degradações ou falhas completas assim que elas ocorrerem. Monitore os Key Performance Indicators (KPIs – Indicadores-chave de performance) com base no valor empresarial.
-
Failover para recursos íntegros: Verifique se, caso ocorra uma falha de recurso, os recursos íntegros podem continuar atendendo às solicitações. Para falhas de localização (como zona de disponibilidade ou região da AWS), garanta que você tenha sistemas implementados para executar failover para recursos íntegros em locais sem problemas.
-
Automatize a reparação em todas as camadas: Após a detecção de uma falha, use recursos automatizados para executar ações de correção.
-
Use a estabilidade estática para evitar o comportamento bimodal: O comportamento bimodal é quando a carga de trabalho apresenta um comportamento diferente nos modos normal e de falha, por exemplo, depender da execução de novas instâncias se uma zona de disponibilidade falhar. Em vez disso, você deve criar cargas de trabalho que sejam estaticamente estáveis e que operem em apenas um modo. Nesse caso, provisione instâncias suficientes em cada zona de disponibilidade para processar a carga de trabalho se uma AZ foi removida e use as verificações de integridade do Elastic Load Balancing ou do Amazon Route 53 para remover a carga das instâncias danificadas.
-
Envie notificações quando os eventos afetarem a disponibilidade: As notificações são enviadas após a detecção de eventos significativos, mesmo que o problema causado pelo evento tenha sido resolvido automaticamente.
Plano de melhoria
Monitore todos os componentes da carga de trabalho para detectar falhas
- O intervalo de monitoramento depende da rapidez com que você precisa fazer a recuperação: O tempo de recuperação é determinado pelo tempo necessário para a recuperação. Desse modo, você deve considerar esse tempo e o RTO para determinar a frequência da coleta.
- Determine se o monitoramento detalhado das instâncias do EC2 e do Auto Scaling é necessário: O monitoramento detalhado inclui métricas de intervalo de 1 minuto, e o monitoramento
padrão inclui métricas de intervalo de 5 minutos.
Enable or Disable Detailed Monitoring for Your Instance
Monitoring Your Auto Scaling Groups and Instances Using Amazon CloudWatch - Determine se o monitoramento avançado para RDS é necessário: O monitoramento avançado usa um agente nas instâncias do RDS para obter informações
úteis sobre processos ou threads diferentes em uma instância do 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 para recursos íntegros
- Se a carga de trabalho estiver usando serviços da AWS, como o Amazon S3 ou o Amazon DynamoDB, ela será implantada automaticamente em várias zonas de disponibilidade. Em caso de falha, o plano de controle da AWS roteia automaticamente o tráfego para locais íntegros.
- Para o Amazon RDS, você deve escolher Multi-AZ como opção de configuração e, em caso
de falha, a AWS direcionará automaticamente o tráfego para a instância íntegra.
High Availability (Multi-AZ) for Amazon RDS - Para as instâncias do Amazon EC2 ou as tarefas do Amazon ECS, você escolhe em quais zonas de disponibilidade fazer a implantação. Em seguida, o Elastic Load Balancing fornece a solução para detectar as instâncias nas zonas com problemas de integridade e rotear o tráfego para as instâncias íntegras. O Elastic Load Balancing pode até mesmo rotear o tráfego para componentes no seu datacenter no local.
- 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
Automatize a reparação em todas as camadas
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?
- Ao usar o AWS OpsWorks, você pode configurar a autorreparação de instâncias do EC2
no nível da camada
AWS OpsWorks: Using Auto Healing to Replace Failed Instances
What is AWS Step Functions?
What is AWS Lambda?
- É possível usar o Amazon EventBridge para monitorar e filtrar eventos, como alarmes
do CloudWatch, ou alterações no estado de outros serviços da AWS. Com base nas informações
do evento, ele pode acionar o AWS Lambda (ou outros destinos) para executar a lógica
de correção personalizada na carga de trabalho.
What Is Amazon EventBridge?
Using Amazon CloudWatch Alarms
Use a estabilidade estática para evitar o comportamento bimodal
The Amazon Builders' Library: Static stability using Availability Zones
Static stability in AWS: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
- Em vez disso, você deve criar sistemas que sejam estaticamente estáveis e que operem em apenas um modo. Nesse caso, provisione instâncias suficientes em cada zona para processar a carga de trabalho se uma AZ foi removida e use as verificações de integridade do Elastic Load Balancing ou do Amazon Route 53 para remover a carga das instâncias danificadas.
- Outro exemplo de comportamento bimodal é permitir que os clientes ignorem o cache da carga de trabalho em caso de falhas. Isso pode parecer uma solução para acomodar as necessidades do cliente, mas não deve ser permitido porque altera significativamente as demandas em sua carga de trabalho e pode resultar em falhas.
Envie notificações quando os eventos afetarem a disponibilidade
Creating a CloudWatch Alarm Based on a Static Threshold
What is Amazon Simple Notification Service?