Diseño de arquitecturas de alto rendimiento
Qué aprenderá
En este dominio aprenderás a elegir, según la carga, almacenamiento de alto rendimiento (Amazon S3, Amazon EBS, Amazon EFS, Amazon FSx), computación (Amazon EC2, AWS Lambda, contenedores), bases de datos y cachés (Amazon Aurora, Amazon DynamoDB, Amazon ElastiCache, DAX), red (Amazon CloudFront, AWS Global Accelerator, Elastic Load Balancing) y la ingesta y el análisis de datos (Amazon Kinesis, Amazon Athena, Amazon Redshift).
Puntos clave
- Almacenamiento: objetos, S3; bloques para una instancia, EBS; archivos compartidos, EFS; lecturas rápidas para cálculo, FSx for Lustre
- EBS: gp3 permite fijar las IOPS y el rendimiento independientemente de la capacidad, e io2 se usa cuando se necesitan IOPS y durabilidad altas
- Caché: delante de RDS o Aurora, ElastiCache; delante de DynamoDB, DAX
- Reparto de lecturas: repartir las lecturas entre réplicas de Aurora y réplicas de lectura para reducir la carga de la instancia de escritura
- Aceleración de la distribución: contenido web, CloudFront; tráfico TCP y UDP y direcciones IP fijas, Global Accelerator
- Flujos y análisis: ingesta en tiempo real, Kinesis Data Streams; SQL sobre S3, Athena; agregaciones a gran escala, Redshift
Términos y conceptos
Cómo elegir el almacenamiento
S3 es un almacenamiento de objetos que se usa sin preocuparse por el límite de capacidad; EBS es un almacenamiento de bloques que se asocia a una instancia dentro de una sola AZ; y EFS es un sistema de archivos compartido que usan a la vez numerosas instancias de varias AZ. Para leer rápidamente datos de S3 en procesos de cálculo intensivos se elige FSx for Lustre.
→ Amazon EFS Glosario / → Amazon FSx Glosario / → Diseño del almacenamiento de bloques de EBS
Caché (ElastiCache y DAX)
ElastiCache es un almacén de datos en memoria que se coloca delante de la base de datos para devolver los resultados de consultas repetidas y reducir la carga de la base de datos. Las lecturas y escrituras de la caché se programan en la aplicación. DAX es una caché dedicada a DynamoDB y, como tiene una API compatible con DynamoDB, requiere pocos cambios en la aplicación.
→ Amazon ElastiCache Glosario / → DAX Glosario / → Patrones de caché de ElastiCache
CloudFront y Global Accelerator
CloudFront almacena en caché el contenido web en ubicaciones de borde de todo el mundo y lo devuelve desde un lugar cercano al usuario. Global Accelerator no almacena contenido en caché, sino que lleva por la red de AWS el tráfico TCP y UDP recibido en direcciones IP anycast fijas hasta el punto de enlace en buen estado más cercano.
→ Amazon CloudFront Glosario / → AWS Global Accelerator Glosario / → Optimización de la red con Global Accelerator
Tipos de balanceadores de carga
Application Load Balancer reparte según el contenido de las solicitudes HTTP y HTTPS. Network Load Balancer funciona en la capa de TCP y UDP, gestiona grandes cantidades de conexiones con una latencia muy baja y puede tener direcciones IP fijas por AZ. Gateway Load Balancer se usa para pasar el tráfico por dispositivos virtuales como cortafuegos.
→ Elastic Load Balancing Glosario / → Los fundamentos de diseño de los 3 tipos de ELB
Rendimiento de Lambda
En Lambda, la capacidad de CPU aumenta en proporción a la cantidad de memoria asignada. Para evitar el tiempo de preparación del entorno de ejecución en la primera invocación, conocido como arranque en frío, se preparan de antemano entornos de ejecución con la simultaneidad aprovisionada.
→ AWS Lambda Glosario / → Medidas contra el arranque en frío de Lambda
Ingesta y análisis de datos
Kinesis Data Streams recibe grandes volúmenes de datos manteniendo el orden, y varias aplicaciones pueden leer los mismos datos. Athena ejecuta SQL sobre los datos tal como están en S3 y cobra según el volumen leído. Redshift es un almacén de datos en columnas adecuado para agregaciones complejas a gran escala.
→ Amazon Kinesis Glosario / → Amazon Athena Glosario / → Amazon Redshift Glosario