REL 11: ¿Cómo diseña la carga de trabajo para tolerar errores de componentes?
Las cargas de trabajo que presenten requisitos de alta disponibilidad y tiempo medio de recuperación (MTTR) bajo se deben diseñar de forma que sean resistentes.
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
Prácticas recomendadas:
-
Monitoree todos los componentes de la carga de trabajo para detectar errores: Monitoree continuamente el estado de su carga de trabajo para que usted y sus sistemas automatizados estén informados de la degradación o del error total tan pronto como ocurran. Monitoree los indicadores de rendimiento clave (KPI) en función del valor de negocio.
-
Conmutación por error a recursos en buen estado: Asegúrese de que si se produce un error en un recurso, los recursos en buen estado puedan atender las solicitudes. En caso de errores de ubicación (como la zona de disponibilidad o la región de AWS), asegúrese de que dispone de sistemas para realizar una conmutación por error a recursos en buen estado en ubicaciones no dañadas.
-
Automatización de la recuperación en todas las capas: Cuando detecta un error, utilice las capacidades automatizadas para realizar acciones para corregirlo.
-
Utilización de la estabilidad estática para prevenir el comportamiento bimodal: El comportamiento bimodal se produce cuando su carga de trabajo exhibe una conducta diferente en los modos normal y de error, por ejemplo, depender de lanzar nuevas instancias si falla una zona de disponibilidad. En su lugar, debe crear cargas de trabajo que sean estáticamente estables y que funcionen en un solo modo. En este caso, aprovisione suficientes instancias en cada zona de disponibilidad para manejar la carga de la carga de trabajo si se eliminó una zona de disponibilidad y luego use las comprobaciones de estado de Elastic Load Balancing o de Amazon Route 53 para mover la carga de las instancias dañadas.
-
Envío de notificaciones cuando los eventos afectan la disponibilidad: Las notificaciones se envían cuando se detectan eventos importantes, incluso si el problema causado por el evento se resolvió automáticamente.
Plan de mejora
Monitoree todos los componentes de la carga de trabajo para detectar errores
- Su intervalo de monitoreo depende de qué tan rápido debe recuperarse: El tiempo de recuperación depende del tiempo que toma recuperarse, por lo que debe determinar la frecuencia de recolección contabilizando este tiempo y su objetivo de tiempo de recuperación (RTO).
- Determine si es necesario un monitoreo detallado de las instancias EC2 y Auto Scaling: El monitoreo detallado proporciona métricas de intervalos de 1 minuto y el monitoreo
predeterminado proporciona métricas de intervalos de 5 minutos.
Enable or Disable Detailed Monitoring for Your Instance
Monitoring Your Auto Scaling Groups and Instances Using Amazon CloudWatch - Determine si es necesario un monitoreo mejorado para RDS: El monitoreo mejorado utiliza un agente en las instancias de RDS para obtener información
útil sobre diferentes procesos o subprocesos en una instancia de 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
Conmutación por error a recursos en buen estado
- Si su carga de trabajo utiliza servicios de AWS, como Amazon S3 o Amazon DynamoDB, estos se implementan automáticamente en múltiples zonas de disponibilidad. En caso de que surjan errores, el plano de control de AWS dirige automáticamente el tráfico por usted a las ubicaciones en buen estado.
- Para Amazon RDS, debe elegir Multi-AZ como opción de configuración y luego, en caso
de que surjan errores, AWS dirige automáticamente el tráfico a la instancia en buen
estado.
High Availability (Multi-AZ) for Amazon RDS - Para las instancias de Amazon EC2 o las tareas de Amazon ECS, debe elegir qué zonas de disponibilidad desea implementar. Elastic Load Balancing ofrece la solución para detectar instancias en las zonas que se encuentran en mal estado y dirige el tráfico hacia las zonas en buen estado. Además, Elastic Load Balancing puede dirigir el tráfico a los componentes en su centro de datos en las instalaciones.
- 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
Automatización de la recuperación en todas las capas
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?
- Con AWS OpsWorks, puede configurar la recuperación automática de instancias EC2 a
nivel de capa
AWS OpsWorks: Using Auto Healing to Replace Failed Instances
What is AWS Step Functions?
What is AWS Lambda?
- Amazon EventBridge se puede utilizar para monitorear y filtrar los eventos, como las
alarmas de CloudWatch o los cambios de estado en otros servicios de AWS. En función
de la información del evento, puede activar AWS Lambda (u otros objetivos) para ejecutar
una lógica de corrección personalizada en su carga de trabajo.
What Is Amazon EventBridge?
Using Amazon CloudWatch Alarms
Utilización de la estabilidad estática para prevenir el comportamiento bimodal
The Amazon Builders' Library: Static stability using Availability Zones
Static stability in AWS: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
- En su lugar, debe crear sistemas que sean estáticamente estables y que funcionen en un solo modo. En este caso, aprovisione suficientes instancias en cada zona como para tratar la carga que conlleva la carga de trabajo si se eliminó una zona de disponibilidad y, luego, utilice las comprobaciones de estado de Elastic Load Balancing o de Amazon Route 53 para trasladar la carga de las instancias dañadas.
- Otro ejemplo de comportamiento bimodal es permitir que los clientes ignoren la memoria caché de la carga de trabajo cuando surgen errores. Esto podría parecer una solución que se adapta a las necesidades del cliente, pero no debería permitirse, ya que cambiaría considerablemente las demandas de su carga de trabajo y es probable que produzca errores.
Envío de notificaciones cuando los eventos afectan la disponibilidad
Creating a CloudWatch Alarm Based on a Static Threshold
What is Amazon Simple Notification Service?