Diseño de dominios de fallo en AWS - El mecanismo de disponibilidad protegido por la estructura de 3 capas AZ, región y partición

Explicamos por qué la infraestructura de AWS está diseñada en 3 capas: AZ (aislamiento de fallos), región (separación geográfica) y partición (separación política), y hasta dónde se propagan los fallos en cada capa con ejemplos concretos.

Qué es un dominio de fallo

Un dominio de fallo (Fault Domain) es el alcance que afecta un único fallo. Cuántos servidores se detienen si se corta un cable de alimentación, cuántos servidores pierden comunicación si falla un switch de red, cuántos servidores se ven afectados si un edificio del centro de datos sufre un corte eléctrico. Estos alcances de impacto son los dominios de fallo. La infraestructura de AWS está diseñada con dominios de fallo en 3 capas jerárquicas. El dominio de fallo más pequeño es la AZ (Availability Zone), que aísla los fallos de un grupo de centros de datos. El dominio intermedio es la región, que aísla los fallos de ubicaciones geográficamente distantes. El dominio más grande es la partición, que aísla los fallos por razones políticas y legales.

Aislamiento de fallos en AZ - Independencia de energía, refrigeración y red

La AZ es la unidad mínima de aislamiento de fallos de AWS. Cada AZ está compuesta por uno o más centros de datos, con sistemas de energía, refrigeración y conexiones de red completamente independientes. Las AZ dentro de la misma región están conectadas por redes dedicadas de alto ancho de banda y baja latencia, pero están físicamente separadas por decenas de kilómetros o más. Hay casos donde el aislamiento de fallos de AZ funcionó en la práctica. En 2019, ocurrió un fallo eléctrico en una AZ de us-east-1, afectando las instancias EC2 y volúmenes EBS dentro de esa AZ. Sin embargo, las otras AZ de la misma región continuaron operando normalmente. Los servicios que operaban en configuración multi-AZ continuaron sin interrupción.

Separación geográfica de regiones - Preparación ante desastres naturales y fallos a gran escala

Las regiones son infraestructuras independientes ubicadas en lugares geográficamente distantes. Cada región tiene su propio plano de control (el sistema que gestiona la creación, modificación y eliminación de recursos) y opera independientemente de los planos de control de otras regiones. Este diseño garantiza que un fallo en el plano de control de una región no afecte la gestión de recursos en otras regiones. Sin embargo, algunos servicios tienen planos de control globales. IAM, Route 53 y CloudFront son servicios globales con planos de control concentrados en us-east-1. Durante el fallo de red de us-east-1 en 2021, las operaciones de gestión de IAM se vieron afectadas en todas las regiones, lo que demostró los riesgos de los planos de control globales.

Separación política de particiones

Las particiones de AWS son infraestructuras completamente separadas por razones políticas y legales. Existen 3 particiones: la partición comercial (aws), la partición de China (aws-cn) y la partición GovCloud (aws-us-gov). Cada partición tiene IAM independiente, sistema de facturación independiente y soporte independiente, y el intercambio de recursos o transferencia de datos entre particiones es fundamentalmente imposible. La partición de China está separada porque la ley china prohíbe la provisión directa de servicios en la nube por empresas extranjeras. Las regiones de China son operadas por empresas asociadas chinas y son completamente independientes de la infraestructura global de AWS.

Diseño de arquitectura consciente de los dominios de fallo

Comprendiendo la estructura de 3 capas de dominios de fallo, se selecciona el diseño según los requisitos de disponibilidad de la carga de trabajo. La configuración de AZ única es adecuada para entornos de desarrollo y pruebas, o procesamiento por lotes donde se tolera el tiempo de inactividad. El costo es mínimo, pero el servicio se detiene ante un fallo de AZ. La configuración multi-AZ es la configuración estándar para entornos de producción. Colocando ALB + Auto Scaling Group en múltiples AZ y configurando RDS en multi-AZ, se puede resistir el fallo de una sola AZ. La mayoría de las cargas de trabajo son suficientes con esta configuración. La configuración multi-región se adopta cuando es necesario resistir el fallo de una región completa. Con las reglas de failover de Route 53 y la replicación entre regiones de S3, se puede construir una arquitectura que continúe el servicio incluso si una región completa se cae. Sin embargo, el costo y la complejidad operativa aumentan significativamente, por lo que se adopta solo cuando los requisitos de negocio lo justifican.