Diseño de arquitecturas resilientes
Qué aprenderá
En este dominio aprenderás el diseño de arquitecturas escalables y con bajo acoplamiento (Amazon SQS, Amazon SNS, AWS Step Functions, Amazon EC2 Auto Scaling, Elastic Load Balancing) y el diseño de arquitecturas de alta disponibilidad y tolerancia a fallos (Multi-AZ, multirregión y estrategias de copia de seguridad y recuperación ante desastres). Predominan las preguntas en las que hay que elegir, a partir del RTO, el RPO y los costes exigidos, una configuración en la que el conjunto no se detenga aunque falle cualquier parte.
Puntos clave
- Bajo acoplamiento: si se coloca una cola de SQS entre procesos, aunque uno se detenga o se retrase, el otro no se detiene
- Distribución ramificada: para entregar un evento a varios sistemas, desde un tema de SNS a varias colas de SQS
- Alta disponibilidad: extender el grupo de Auto Scaling y el ALB a 2 o más AZ y sustituir las instancias en mal estado mediante las comprobaciones de estado
- Bases de datos: la implementación Multi-AZ de RDS ofrece conmutación automática, y las réplicas de lectura reparten las lecturas (para conmutar hace falta la operación de promoción)
- Multirregión: Aurora Global Database, tablas globales de DynamoDB y replicación entre regiones de S3
- Las 4 estrategias de recuperación ante desastres: copia de seguridad y restauración, luz piloto, espera semiactiva y multisitio; en ese orden se acortan el RTO y el RPO y aumentan los costes
Términos y conceptos
Amazon SQS y Amazon SNS
SQS es una cola que retiene los mensajes, y el lado que los procesa los extrae a su propio ritmo. Cada mensaje lo recibe un solo consumidor. SNS es un mecanismo que entrega de inmediato los mensajes recibidos a todos los destinos suscritos. Si se combinan ambos, varios sistemas pueden recibir un mismo evento, cada uno en su propia cola.
→ Amazon SQS Glosario / → Amazon SNS Glosario / → Colas de mensajes de SQS
Auto Scaling y Elastic Load Balancing
Amazon EC2 Auto Scaling mantiene el número de instancias establecido y lo aumenta o reduce según la carga. Si se especifican subredes de varias AZ, sigue ejecutando instancias en las demás AZ incluso ante un fallo de AZ. Elastic Load Balancing reparte el tráfico solo entre las instancias en buen estado, y los resultados de sus comprobaciones de estado pueden usarse para las sustituciones de Auto Scaling.
→ Auto Scaling Glosario / → Elastic Load Balancing Glosario / → Estrategias de Auto Scaling
Multi-AZ y réplicas de lectura de RDS
La implementación Multi-AZ replica los datos de forma síncrona en una instancia en espera de otra AZ y conmuta automáticamente en caso de fallo. Las réplicas de lectura son un mecanismo de replicación asíncrona que reparte la carga de lectura; también pueden crearse en otra región, pero para conmutar hace falta la operación de promoción. Se elige según si el objetivo es la disponibilidad o el rendimiento de lectura.
→ Amazon RDS Glosario / → Cómo funciona la conmutación Multi-AZ de RDS
Replicación multirregión
Para prepararse ante un fallo de toda una región, los datos se replican en otra región. Los métodos estándar son Aurora Global Database para Aurora, las tablas globales para DynamoDB y la replicación entre regiones para S3. Como su carga operativa es menor que la de un mecanismo de replicación propio, en el examen también suelen ser la respuesta correcta.
Las 4 estrategias de recuperación ante desastres y el RTO y RPO
El objetivo de tiempo de recuperación (RTO) es el tiempo desde la interrupción hasta la reanudación, y el objetivo de punto de recuperación (RPO) es el intervalo de tiempo de datos que se puede perder. La copia de seguridad y restauración tiene un coste bajo y la recuperación lleva tiempo; la luz piloto replica solo los datos y arranca los servidores en caso de desastre; la espera semiactiva mantiene siempre en funcionamiento un entorno reducido; y el multisitio atiende siempre la carga en ambos lados.
→ Opciones de recuperación ante desastres de AWS / → AWS Backup Glosario
Políticas de enrutamiento de Route 53
La conmutación por error alterna entre el principal y el secundario según el resultado de las comprobaciones de estado; la ponderada reparte según una proporción fija; la de latencia devuelve la región más cercana al usuario; y la de geolocalización decide el destino según la ubicación del usuario. Para conmutar en caso de fallo se usa la conmutación por error.