Patrones Multi-AZ para servicios con estado
Aplique Multi-AZ a RDS, ElastiCache, EFS y ELB para eliminar puntos únicos de fallo dentro de una Región
Patrones Multi-AZ para servicios con estado es una lección gratuita de AWS Solutions Architect en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AWS Solutions Architect, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AWS Solutions Architect incluye 4 lecciones en total.
Por qué los servicios con estado necesitan Multi-AZ
Los servicios con estado —bases de datos, cachés y sistemas de archivos— son los componentes más difíciles de hacer altamente disponibles porque contienen datos que deben sobrevivir a los fallos. Si falla una base de datos en una sola AZ, toda la aplicación pierde su almacén de datos. La respuesta de AWS son las implementaciones Multi-AZ, en las que el servicio mantiene una réplica síncrona o casi síncrona en una segunda zona de disponibilidad que puede asumir el control rápidamente cuando falla la principal.
RDS Multi-AZ: instancia en espera síncrona
RDS Multi-AZ mantiene una réplica en espera síncrona en una AZ diferente. Cada escritura en la instancia principal se replica de forma síncrona antes de confirmar el éxito; esto significa que no se pierden datos (RPO=0), aunque aumenta ligeramente la latencia de escritura. Cuando falla la instancia principal, RDS actualiza automáticamente el punto de conexión DNS para que apunte a la instancia en espera en un plazo de 60-120 segundos. La aplicación solo necesita volver a conectarse al mismo punto de conexión; no se requieren cambios en el código.
# Enable Multi-AZ on existing RDS instance
aws rds modify-db-instance \
--db-instance-identifier mydb \
--multi-az \
--apply-immediately
# RDS endpoint stays the same after failover
# Application reconnects to same DNS nameArquitectura Multi-AZ de Aurora
Amazon Aurora lleva Multi-AZ un paso más allá con una capa de almacenamiento distribuido compartido que replica automáticamente los datos en tres AZ, con seis copias. Las instancias de Aurora no tienen estado: leen y escriben en este almacenamiento compartido. Cuando falla la instancia principal de escritura de Aurora, una réplica de lectura de otra AZ se promueve a instancia de escritura en menos de 30 segundos. Esto es más rápido que la conmutación por error Multi-AZ de RDS, y los datos siempre son coherentes entre las AZ sin necesidad de replicación explícita en una instancia en espera.
# Aurora cluster endpoint automatically handles failover
# Writer endpoint: mydb.cluster-xxx.us-east-1.rds.amazonaws.com
# Reader endpoint: mydb.cluster-ro-xxx.us-east-1.rds.amazonaws.com
# Failover time: typically under 30 secondsReplicación Multi-AZ de ElastiCache
ElastiCache for Redis admite Multi-AZ mediante grupos de replicación. Un nodo principal acepta las escrituras y las replica de forma asíncrona en réplicas de lectura ubicadas en otras AZ. Cuando falla el nodo principal, ElastiCache promueve automáticamente una réplica a nodo principal. Con el modo de clúster habilitado para Redis, los datos se distribuyen en fragmentos entre varios grupos de nodos, cada uno con su propio nodo principal y réplicas distribuidos entre las AZ; esto proporciona tanto alta disponibilidad como escalado horizontal.
# Create Redis replication group with Multi-AZ
aws elasticache create-replication-group \
--replication-group-id my-redis \
--replication-group-description 'Multi-AZ Redis' \
--num-cache-clusters 3 \
--cache-node-type cache.r6g.large \
--multi-az-enabled \
--automatic-failover-enabledEFS: Multi-AZ inherente
Amazon Elastic File System (EFS) es inherentemente Multi-AZ: es un servicio regional que almacena los datos de forma redundante en varias AZ dentro de una región. Debe crear destinos de montaje en la subred de cada AZ, y las instancias de EC2 de cualquier AZ pueden montar el sistema de archivos a través de su destino de montaje local. No es necesario configurar Multi-AZ manualmente. EFS proporciona almacenamiento de archivos POSIX compartido al que varias instancias de distintas AZ pueden acceder simultáneamente.
# Mount EFS from EC2 in any AZ
# Mount target is created per AZ automatically
sudo mount -t efs -o tls fs-12345678:/ /mnt/efs
# Or use EFS mount helper
sudo mount -t efs fs-12345678 /mnt/efsBalanceador de carga elástico entre zonas
Los Elastic Load Balancers también son Multi-AZ: ALB y NLB implementan nodos del balanceador de carga en cada AZ que especifique. Con el equilibrio de carga entre zonas habilitado (opción predeterminada para ALB), cada nodo del balanceador de carga distribuye el tráfico de forma uniforme entre todos los destinos registrados en todas las AZ, no solo en su propia AZ. Esto garantiza que, aunque fallen todas las instancias de una AZ, el balanceador de carga continúe atendiendo el tráfico mediante las instancias de las AZ restantes.
# ALB automatically created in multiple AZs
aws elbv2 create-load-balancer \
--name my-alb \
--subnets subnet-AZ1 subnet-AZ2 subnet-AZ3 \
--security-groups sg-12345
# Cross-zone load balancing is ON by default for ALBPatrón Multi-AZ de NAT Gateway
Un error común consiste en implementar un único NAT Gateway en una AZ mientras las subredes privadas de otras AZ enrutan el tráfico a través de él. Si esa AZ falla, todas las instancias privadas pierden el acceso a Internet. El patrón Multi-AZ correcto consiste en implementar un NAT Gateway por AZ y configurar la tabla de enrutamiento privada de cada AZ para que enrute 0.0.0.0/0 a través de su propio NAT Gateway. Esto elimina el NAT Gateway como SPOF entre AZ y reduce los costes de transferencia de datos entre AZ.
# Create NAT Gateway in each AZ
aws ec2 create-nat-gateway \
--subnet-id subnet-public-AZ1 \
--allocation-id eipalloc-AZ1
aws ec2 create-nat-gateway \
--subnet-id subnet-public-AZ2 \
--allocation-id eipalloc-AZ2
# Each AZ's private route table points to its own NAT GWDynamoDB Multi-AZ de forma predeterminada
DynamoDB es un servicio totalmente administrado que replica automáticamente los datos en tres AZ dentro de una región; no es necesario configurar Multi-AZ manualmente. Cada escritura se almacena de forma duradera en las tres AZ antes de devolver una respuesta de éxito. DynamoDB es, en la práctica, tolerante a fallos a nivel de AZ desde el primer momento. Por eso, DynamoDB suele ser la opción de base de datos recomendada cuando la pregunta del examen enfatiza la alta disponibilidad con una sobrecarga operativa mínima.
RDS Proxy para gestionar las conexiones más rápidamente
Durante una conmutación por error Multi-AZ de RDS, las aplicaciones que mantienen conexiones persistentes con la base de datos pueden experimentar fallos cuando cambia el endpoint. RDS Proxy se sitúa entre la aplicación y RDS y mantiene un grupo de conexiones con la base de datos. Durante la conmutación por error, RDS Proxy redirige automáticamente las conexiones a la nueva instancia principal, lo que reduce el impacto de la conmutación de 60-120 segundos a menos de 30 segundos en las aplicaciones que utilizan el endpoint del proxy. RDS Proxy también resulta útil para las funciones de Lambda que crean muchas conexiones de corta duración.
# Application connects to RDS Proxy endpoint
# Proxy endpoint: myproxy.proxy-xxx.us-east-1.rds.amazonaws.com
# RDS Proxy handles:
# - Connection pooling
# - Failover routing
# - IAM authentication
# - Secrets Manager integrationModos de replicación de datos: síncrona frente a asíncrona
Comprender los modos de replicación es fundamental para elegir patrones Multi-AZ. La replicación síncrona (RDS Multi-AZ, EFS) garantiza RPO=0 porque cada escritura se confirma en ambas AZ antes de indicar que se ha realizado correctamente. La contrapartida es una latencia de escritura ligeramente mayor. La replicación asíncrona (réplicas de ElastiCache Redis, réplicas de lectura de RDS) ofrece una latencia de escritura menor, pero admite un pequeño retraso de replicación; esto significa que algunos datos podrían perderse si la instancia principal falla antes de que finalice la replicación.
# Synchronous replication: RPO = 0, higher write latency
# Used by: RDS Multi-AZ, Aurora storage layer
# Asynchronous replication: RPO > 0 (replication lag)
# Used by: RDS Read Replicas, ElastiCache Redis replicas
# Replication lag can be monitored:
# aws cloudwatch get-metric-statistics \
# --namespace AWS/RDS --metric-name ReplicaLagPrueba de la conmutación por error Multi-AZ
Debe probar periódicamente la conmutación por error Multi-AZ para validar sus supuestos sobre el RTO. En RDS, puede activar una conmutación por error mediante la opción Reboot with failover de la consola o mediante la CLI. Supervise CloudWatch para consultar la métrica FailedSQLServerAgentJobsCount y revise los registros de la aplicación para verificar que se vuelve a conectar correctamente. Documente la duración real de la conmutación por error; puede diferir de la documentación de AWS según la clase de instancia y la carga de trabajo.
# Trigger RDS Multi-AZ failover test
aws rds reboot-db-instance \
--db-instance-identifier mydb \
--force-failover
# Monitor failover in CloudWatch
aws cloudwatch get-metric-statistics \
--namespace AWS/RDS \
--metric-name DatabaseConnections \
--dimensions Name=DBInstanceIdentifier,Value=mydbComprobación rápida
Compruebe sus conocimientos sobre los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.
Resumen de la lección
En esta lección ha aprendido que RDS Multi-AZ utiliza replicación síncrona con conmutación por error automática mediante DNS, que Aurora utiliza una capa de almacenamiento compartido en tres AZ para lograr una conmutación por error más rápida y que EFS y DynamoDB son inherentemente Multi-AZ sin configuración manual. Implemente un NAT Gateway por AZ para evitar SPOF entre AZ. A continuación, exploraremos los patrones activo-activo y activo-pasivo entre varias regiones.
Preguntas frecuentes
¿La lección «Patrones Multi-AZ para servicios con estado» es gratis?
Sí — el texto completo de «Patrones Multi-AZ para servicios con estado» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AWS Solutions Architect, actualiza a CoddyKit PRO. El curso de AWS Solutions Architect incluye 4 lecciones en total.
¿Qué aprenderé en «Patrones Multi-AZ para servicios con estado»?
Aplique Multi-AZ a RDS, ElastiCache, EFS y ELB para eliminar puntos únicos de fallo dentro de una Región Practicas AWS Solutions Architect con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AWS Solutions Architect?
No se requiere experiencia previa. AWS Solutions Architect en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Patrones Multi-AZ para servicios con estado»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AWS Solutions Architect?
Sí. Cada lección de AWS Solutions Architect incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Alta disponibilidad frente a tolerancia a fallos: definiciones y compensaciones
- Patrones Multi-AZ para servicios con estado
- Activo-activo y activo-pasivo entre varias regiones
- Comprobaciones de estado, disyuntores y lógica de reintento