

# Dominio de contenido 2: Diseño de arquitecturas resistentes
<a name="solutions-architect-associate-03-domain2"></a>

**Topics**
+ [Tarea 2.1: Diseñar arquitecturas escalables y con acoplamiento débil.](#solutions-architect-associate-03-domain2-task1)
+ [Tarea 2.2: Diseñar arquitecturas de alta disponibilidad y/o tolerantes a errores.](#solutions-architect-associate-03-domain2-task2)

## Tarea 2.1: Diseñar arquitecturas escalables y con acoplamiento débil.
<a name="solutions-architect-associate-03-domain2-task1"></a>

Conocimientos de:
+ Creación y administración de API (por ejemplo, Amazon API Gateway, API de REST)
+ AWS Managed Services con casos de uso adecuados (por ejemplo, AWS Transfer Family, Amazon SQS, AWS Secrets Manager)
+ Estrategias de almacenamiento en caché
+ Principios de diseño para microservicios (por ejemplo, cargas de trabajo sin estado en comparación con cargas de trabajo con estado)
+ Arquitecturas basadas en eventos
+ Escalado horizontal y escalado vertical
+ Cómo utilizar correctamente los aceleradores periféricos (por ejemplo, red de entrega de contenido [CDN])
+ Cómo migrar aplicaciones a contenedores
+ Conceptos de equilibrio de carga (por ejemplo, equilibrador de carga de aplicación [ALB])
+ Arquitecturas de varios niveles
+ Conceptos de cola y mensajería (por ejemplo, publicación/suscripción)
+ Tecnologías y patrones sin servidor (por ejemplo, AWS Lambda, AWS Fargate)
+ Tipos de almacenamiento con características asociadas (por ejemplo, objeto, archivo, bloque)
+ Orquestación de contenedores (por ejemplo, Amazon ECS, Amazon EKS)
+ Cuándo usar réplicas de lectura
+ Orquestación del flujo de trabajo (por ejemplo, AWS Step Functions)

Habilidades para:
+ Diseñar arquitecturas basadas en eventos, de microservicios o de varios niveles en función de los requisitos.
+ Determinar estrategias de escalado para componentes utilizados en un diseño de arquitectura.
+ Determinar los servicios de AWS necesarios para lograr un acoplamiento débil en función de los requisitos.
+ Determinar cuándo usar contenedores.
+ Determinar cuándo usar tecnologías y patrones sin servidor.
+ Recomendar tecnologías de computación, almacenamiento, redes y bases de datos adecuadas en función de los requisitos.
+ Usar servicios de AWS diseñados específicamente para cargas de trabajo.

## Tarea 2.2: Diseñar arquitecturas de alta disponibilidad y/o tolerantes a errores.
<a name="solutions-architect-associate-03-domain2-task2"></a>

Conocimientos de:
+ Infraestructura global de AWS (por ejemplo, zonas de disponibilidad, regiones de AWS, Amazon Route 53)
+ AWS Managed Services (AMS) con casos de uso adecuados (por ejemplo, Amazon Comprehend, Amazon Polly)
+ Conceptos básicos de redes (por ejemplo, tablas de enrutamiento)
+ Estrategias de recuperación de desastres (DR) (por ejemplo, copia de seguridad y restauración, llama piloto, espera activa, activo-activo, conmutación por error, objetivo de punto de recuperación [RPO], objetivo de tiempo de recuperación [RTO])
+ Patrones de diseño distribuidos
+ Estrategias de conmutación por error
+ Infraestructura inmutable
+ Conceptos de equilibrio de carga (por ejemplo, ALB)
+ Conceptos de proxy (por ejemplo, Amazon RDS Proxy)
+ Service Quotas y limitación controlada (por ejemplo, cómo configurar Service Quotas para una carga de trabajo en un entorno en espera)
+ Opciones y características de almacenamiento (por ejemplo, durabilidad, replicación)
+ Visibilidad de las cargas de trabajo (por ejemplo, AWS X-Ray)

Habilidades para:
+ Determinar estrategias de automatización para garantizar la integridad de la infraestructura.
+ Determinar los servicios de AWS necesarios para brindar una arquitectura de alta disponibilidad o tolerante a errores en todas las zonas de disponibilidad o regiones de AWS.
+ Identificar métricas en función de los requisitos empresariales para ofrecer una solución de alta disponibilidad.
+ Implementar diseños para mitigar puntos únicos de error.
+ Implementar estrategias para garantizar la durabilidad y disponibilidad de los datos (por ejemplo, copias de seguridad).
+ Seleccionar una estrategia de DR adecuada para cumplir con los requisitos empresariales.
+ Usar servicios de AWS que mejoren la fiabilidad de las aplicaciones heredadas y las que no son creadas para la nube (por ejemplo, cuando no es posible realizar cambios en las aplicaciones).
+ Usar servicios de AWS diseñados específicamente para cargas de trabajo.