AWS Certified Solutions Architect - Associate - 26% del examen

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.

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.

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.

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.

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.

5 preguntas de práctica