En SAP-C02, el rendimiento y el costo parecen fuerzas opuestas, pero el examen evalua tu capacidad para encontrar soluciones que satisfagan ambos simultaneamente. "Alcanza el objetivo de rendimiento de la manera mas rentable" es el formato tipico de pregunta. Este post cubre sistematicamente capas de caching, seleccion de bases de datos de proposito especifico, optimizacion de almacenamiento y estrategias de reduccion de costos.
Capas de caching — ElastiCache Redis vs Memcached
ElastiCache usa caching en memoria para reducir la carga de la base de datos y acortar los tiempos de respuesta a microsegundos.
| Elemento | Redis | Memcached | |----------|-------|----------| | Estructuras de datos | String, Hash, List, Set, Sorted Set, Stream | Solo String | | Replicacion y HA | Multi-AZ, failover automatico | No soportado | | Persistencia | Snapshots AOF/RDB | No soportada | | Almacen de sesiones distribuido | Muy adecuado | Posible pero limitado | | Multi-threading | Limitado | Completamente multi-hilo | | Geoespacial | Soportado | No soportado |
Elige Redis cuando necesites alta disponibilidad, persistencia o estructuras de datos complejas. Elige Memcached cuando necesites un cache de alto rendimiento simple y el multi-threading sea importante.
DynamoDB DAX es un cache en memoria con una API completamente compatible con DynamoDB. Solo cambias el endpoint a DAX y obtienes tiempos de respuesta en microsegundos. DAX es la solucion directa para particiones calientes donde las lecturas repetidas se concentran.
MemoryDB for Redis es compatible con Redis pero garantiza la durabilidad de datos mediante un log de transacciones Multi-AZ. Ofrece mayor durabilidad que ElastiCache Redis estandar y es adecuado para patrones que usan Redis como base de datos primaria.
!ElastiCache Redis vs Memcached
CloudFront — Origin Shield, Lambda@Edge
CloudFront cachea contenido en mas de 450 ubicaciones de edge en todo el mundo, reduciendo la carga del servidor de origen y sirviendo respuestas desde el edge mas cercano al usuario.
Origin Shield agrega una capa de caching adicional entre las caches de edge regional de CloudFront y el origen. Minimiza el numero de solicitudes que llegan al origen, reduciendo la carga del origen y los costos de transferencia de datos. Habilita Origin Shield cuando tienes usuarios globales y necesitas minimizar la carga del origen.
Lambda@Edge ejecuta funciones Lambda en ubicaciones de edge de CloudFront. Puedes modificar cabeceras HTTP o manejar autenticacion antes de que las solicitudes lleguen al origen. Los casos de uso comunes incluyen pruebas A/B, redirecciones dinamicas de URL y autenticacion basada en solicitudes.
La distincion entre Signed URL y Signed Cookies de CloudFront importa. Signed URL es un token de acceso de un solo uso para un archivo individual. Signed Cookies controlan el acceso a multiples archivos que coinciden con un patron de ruta con una sola cookie. Para streaming de video donde necesitas controlar el acceso a muchos archivos, elige Signed Cookies.
Optimizacion de rendimiento de DynamoDB
El rendimiento de DynamoDB depende en gran medida del diseno de la clave de particion. Para evitar particiones calientes, elige atributos con alta cardinalidad como clave de particion, o agrega un sufijo aleatorio a claves de particion compuestas.
Un GSI usa una clave de particion y clave de ordenamiento diferentes de la tabla base y puede agregarse despues de la creacion de la tabla. Un LSI usa la misma clave de particion con una clave de ordenamiento diferente y solo puede agregarse en el momento de la creacion de la tabla.
DynamoDB TTL agrega un atributo de marca de tiempo Unix a los elementos y los elimina automaticamente cuando expiran. No hay cargo adicional y la eliminacion se completa dentro de las 48 horas posteriores a la expiracion. El patron de rotacion de tablas es mas eficiente para eliminaciones masivas: crea una nueva tabla cada mes y elimina las tablas antiguas con DeleteTable, lo que consume cero WCU.
Rendimiento de Aurora — Read Replicas, Global DB, Serverless v2
Aurora Read Replicas comparten el volumen del cluster, lo que significa que el retraso de replicacion es minimo. El Reader Endpoint balancea la carga entre todas las Read Replicas para distribuir las consultas de lectura. Habilitar Aurora Auto Scaling ajusta automaticamente el numero de Replicas segun la carga de lectura.
Aurora Global Database mantiene el retraso de replicacion entre regiones por debajo de un segundo. Es util no solo para DR sino tambien para mejorar el rendimiento de lectura global.
Aurora Serverless v2 ajusta la capacidad automaticamente en segundos. Es ideal para aplicaciones con patrones de trafico impredecibles.
Tipos de almacenamiento EBS y rendimiento de S3
EBS gp3 proporciona 3,000 IOPS de linea base independientemente del tamano del volumen de almacenamiento. io2 Block Express proporciona hasta 256,000 IOPS para cargas de trabajo de bases de datos.
S3 multipart upload divide archivos grandes en partes para carga en paralelo. S3 Transfer Acceleration enruta las cargas a traves de ubicaciones de edge de CloudFront. Para cargas de trabajo HPC, elige FSx for Lustre.
Optimizacion de costos — Savings Plans, Spot, Right-sizing
| Opcion | Descuento | Compromiso | Mejor para | |--------|-----------|------------|-----------| | Compute Savings Plans | Hasta 66% | 1 o 3 anos | EC2, Fargate, Lambda; flexible en region/familia | | EC2 Instance Savings Plans | Hasta 72% | 1 o 3 anos | Region mas familia de instancia fija | | Reserved Instance | Hasta 72% | 1 o 3 anos | Cargas de trabajo estables y predecibles | | Spot Instance | Hasta 90% | Ninguno | Cargas de trabajo batch o sin estado interrumpibles |
Compute Savings Plans se aplican a EC2, Fargate y Lambda. El descuento persiste incluso al cambiar regiones o familias de instancias. Los Spot Instances ofrecen hasta 90% de descuento. Colocar SQS frente a un Spot Fleet significa que cuando se interrumpe una Spot Instance, la tarea en progreso regresa automaticamente a la cola SQS para reprocesamiento sin perdida.
S3 Intelligent-Tiering mueve automaticamente objetos que no se han accedido en 30 dias al nivel de Infrequent Access. S3 Standard-IA y Glacier Instant Retrieval tienen una duracion minima de almacenamiento de 30 dias. Cuando se pregunta por almacenamiento economico para datos almacenados menos de 30 dias, elige S3 Standard.
Puntos clave del examen
"Cache con alta disponibilidad mas estructuras de datos complejas" -- ElastiCache Redis
"Cache simple de alto rendimiento mas multi-threading" -- ElastiCache Memcached
"Mejorar rendimiento de lectura de particion caliente DynamoDB con cambio minimo de codigo" -- DAX
"Compatible con Redis mas garantia de durabilidad de datos" -- MemoryDB for Redis
"Capa de caching adicional para minimizar carga del origen CloudFront" -- Origin Shield
"Controlar acceso a multiples archivos simultaneamente" -- CloudFront Signed Cookies
"Eliminar grandes cantidades de datos DynamoDB expirados con cero WCU" -- rotacion de tablas
"Auto-escalado de lectura Aurora" -- Aurora Auto Scaling mas Reader Endpoint
"Trafico impredecible, auto-escalado en segundos" -- Aurora Serverless v2
"Cubre EC2/Fargate/Lambda, flexible en region" -- Compute Savings Plans
"Hasta 90% de descuento para trabajos batch interrumpibles" -- Spot Instance mas SQS
"Auto-tiering de datos con patrones de acceso irregulares" -- S3 Intelligent-Tiering
"Clase S3 sin duracion minima de almacenamiento" -- S3 Standard
"Sistema de archivos paralelo de alto rendimiento HPC" -- FSx for Lustre