Escenarios de alto rendimiento y optimización de costes
Responda preguntas basadas en escenarios sobre estrategias de caché, optimización de consultas en lagos de datos, diferencias entre Reserved y Spot y arquitecturas con réplicas de lectura
Escenarios de alto rendimiento y optimización de costes es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
Escenario 1: Uso de caché para reducir la carga de la base de datos
Escenario: La base de datos RDS MySQL de un sitio de noticias gestiona un 90 % de tráfico de lectura de contenido de artículos que cambia como máximo una vez por hora. La CPU de la base de datos alcanza una media del 80 %, los costes están aumentando y la latencia es de 200 ms por consulta. Solución: Añada un clúster de ElastiCache Redis delante de RDS mediante el patrón de carga diferida (cache-aside). La aplicación comprueba primero la caché; si encuentra el artículo en ella, lo devuelve en <1 ms. Si no lo encuentra, consulta RDS, devuelve el resultado y lo escribe en la caché con un TTL de 1 hora. Resultado esperado: una tasa de aciertos de caché del 90 %, una CPU de RDS inferior al 20 % y una latencia inferior a 5 ms para las respuestas almacenadas en caché.
import boto3, json
elasticache = boto3.client('elasticache')
redis_client = None # assume redis-py client connected to ElastiCache endpoint
def get_article(article_id):
cache_key = 'article:' + str(article_id)
# Check cache first
cached = redis_client.get(cache_key)
if cached:
return json.loads(cached) # cache hit: <1ms
# Cache miss: query RDS
article = rds_query('SELECT * FROM articles WHERE id = %s', article_id)
# Write to cache with 1-hour TTL
redis_client.setex(cache_key, 3600, json.dumps(article))
return articleEscenario 2: CloudFront para la entrega de recursos estáticos
Escenario: Los usuarios de Asia-Pacífico experimentan tiempos de carga de 2 a 4 segundos para una aplicación web alojada en EC2 en us-east-1. La aplicación sirve recursos estáticos grandes (imágenes, JS y CSS). Solución: Coloque una distribución de CloudFront delante del ALB. Configure un comportamiento de caché para la ruta /static/* con un TTL largo (por ejemplo, 1 semana), de modo que los archivos estáticos se almacenen en caché en las ubicaciones perimetrales de CloudFront cercanas a los usuarios de Asia. Las solicitudes de API dinámicas omiten la caché con TTL=0. Los usuarios asiáticos cargan los recursos estáticos desde una ubicación perimetral de Singapur o Tokio en menos de 100 ms, en lugar de esperar los viajes de ida y vuelta a us-east-1.
# CloudFront origin for ALB + separate behaviour for static assets
aws cloudfront create-distribution --distribution-config '{
'Origins': {
'Quantity': 1,
'Items': [{
'Id': 'alb-origin',
'DomainName': 'my-alb.us-east-1.elb.amazonaws.com',
'CustomOriginConfig': {"HTTPSPort": 443, "OriginProtocolPolicy": "https-only"}
}]
},
'CacheBehaviors': {
'Quantity': 1,
'Items': [{
'PathPattern': '/static/*',
'DefaultTTL': 604800,
'MaxTTL': 604800
}]
},
'DefaultCacheBehavior': {"DefaultTTL": 0}
}'Escenario 3: Ajuste del tamaño con Compute Optimizer
Escenario: Una empresa tiene 500 instancias EC2, muchas de ellas aprovisionadas hace 3 años con tipos de instancia grandes. Su factura de AWS es elevada, pero no sabe qué instancias están sobredimensionadas. Solución: Habilite AWS Compute Optimizer (es gratuito y utiliza 14 días de métricas de CloudWatch). Compute Optimizer analiza la utilización real de CPU, memoria, red y disco de cada instancia, y proporciona recomendaciones para ajustar su tamaño. Se recomendaría reducir una instancia t3.xlarge con una media de CPU del 8 % a t3.small. Aplicar las recomendaciones en las 500 instancias normalmente reduce los costes de EC2 entre un 20 % y un 40 %.
# Enable Compute Optimizer at account level
aws compute-optimizer update-enrollment-status \
--status Active
# Get EC2 instance recommendations
aws compute-optimizer get-ec2-instance-recommendations \
--filters Name=Finding,Values=OVER_PROVISIONED \
--query 'instanceRecommendations[*].{Instance: instanceArn, Current: currentInstanceType, Recommended: recommendationOptions[0].instanceType}' \
--output tableEscenario 4: Spot Instances para procesamiento por lotes
Escenario: Una empresa de genómica ejecuta trabajos por lotes nocturnos que tardan 8 horas y se pueden reintentar si se interrumpen. EC2 On-Demand cuesta 10 000 $ al mes para estos trabajos. Solución: Utilice EC2 Spot Instances para la flota de procesamiento por lotes. Spot Instances es capacidad de EC2 no utilizada disponible con descuentos de hasta el 90 %. Para trabajos por lotes tolerantes a interrupciones, utilice AWS Batch, que vuelve a poner automáticamente en cola los trabajos de Spot fallidos y utiliza una flota mixta (Spot + una capacidad mínima de reserva On-Demand). Ahorro esperado: una reducción del 70 % al 90 % en los costes de computación, de 10 000 $ a entre 1 000 $ y 3 000 $ al mes.
# AWS Batch compute environment with Spot instances
aws batch create-compute-environment \
--compute-environment-name spot-genomics \
--type MANAGED \
--state ENABLED \
--compute-resources '{
"type": "SPOT",
"bidPercentage": 60,
"minvCpus": 0,
"maxvCpus": 256,
"instanceTypes": ["optimal"],
"subnets": ["subnet-1a", "subnet-1b"],
"securityGroupIds": ["sg-batch"],
"instanceRole": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole",
"spotIamFleetRole": "arn:aws:iam::123456789012:role/AmazonEC2SpotFleetRole"
}' \
--service-role arn:aws:iam::123456789012:role/AWSBatchServiceRoleEscenario 5: DynamoDB On-Demand para tráfico variable
Escenario: Una clasificación de jugadores utiliza DynamoDB con capacidad aprovisionada. Durante los lanzamientos de juegos, el tráfico aumenta 50 veces y la tabla limita las solicitudes. Fuera de los lanzamientos, el rendimiento es casi nulo y se desperdicia la capacidad aprovisionada. Solución: Cambie DynamoDB al modo de capacidad On-Demand. On-Demand escala instantáneamente a cualquier nivel de rendimiento sin planificación manual de capacidad y cobra por solicitud en lugar de hacerlo por unidad aprovisionada. Solo paga por las solicitudes que realiza, sin costes de capacidad inactiva entre lanzamientos. On-Demand intercambia un coste ligeramente superior por solicitud por la garantía de no aplicar throttling y no tener que gestionar la capacidad.
# Switch existing DynamoDB table to On-Demand mode
aws dynamodb update-table \
--table-name Leaderboard \
--billing-mode PAY_PER_REQUEST
# Verify the change
aws dynamodb describe-table \
--table-name Leaderboard \
--query 'Table.BillingModeSummary.BillingMode'Escenario 6: S3 Intelligent-Tiering para patrones de acceso impredecibles
Escenario: Una empresa almacena millones de imágenes generadas por usuarios en S3 Standard. Los patrones de acceso varían de forma impredecible: se accede a algunas imágenes a diario y a otras no se accede durante meses. Quieren reducir los costes de almacenamiento sin gestionar manualmente las políticas de ciclo de vida. Solución: Usar S3 Intelligent-Tiering. Mueve automáticamente los objetos entre niveles según los patrones de acceso: Frequent Access (Standard), Infrequent Access (30 días o más sin acceso), Archive Instant Access (90 días o más) y Archive Access (90 días o más, opcional). No se cobran tarifas de recuperación dentro de Intelligent-Tiering. El cargo de monitorización es de 0,0025 $ por cada 1.000 objetos al mes, una cantidad insignificante para grandes conjuntos de datos.
# Move objects to Intelligent-Tiering via lifecycle policy
aws s3api put-bucket-lifecycle-configuration \
--bucket user-images-bucket \
--lifecycle-configuration '{
"Rules": [{
"ID": "AutoTier",
"Status": "Enabled",
"Filter": {},
"Transitions": [{
"Days": 0,
"StorageClass": "INTELLIGENT_TIERING"
}]
}]
}'Escenario 7: Ventajas y desventajas de Athena frente a Redshift
Escenario: Una startup quiere consultar tablas de un lago de datos en S3. Ejecuta unas 10 consultas ad hoc por semana. Un proveedor propone Amazon Redshift con un clúster dc2.large. Solución para una startup: Empezar con Amazon Athena: coste de infraestructura cero y pago únicamente por los datos escaneados (unos 5 $/TB). 10 consultas semanales sobre datos Parquet bien particionados podrían costar menos de 5 $ al mes. Redshift dc2.large cuesta aproximadamente 180 $ al mes de forma continua. Redshift resulta rentable únicamente cuando la concurrencia de consultas es alta (más de 50 consultas al día) o se necesita una respuesta inferior a un segundo. La palabra clave «ad hoc, infrecuente» apunta claramente a Athena.
# Athena cost estimate for 10 queries/week:
# Assume each query scans 5 GB of Parquet data
# 10 queries x 5 GB = 50 GB / week = 200 GB / month
# Athena cost: 200 GB x $0.005/GB = $1.00 / month
#
# Redshift dc2.large cost: $0.25/hr x 24hr x 30days = $180/month
#
# For 10 queries/week -> Athena saves $179/month
# Breakeven: when queries scan >36 TB/month or concurrency >50/day -> use RedshiftEscenario 8: Selección del tipo de volumen de EBS
Escenario: Un servidor de base de datos relacional requiere 64.000 IOPS con una latencia baja y constante. El volumen gp3 de EBS actual está alcanzando su límite de IOPS. Solución: Actualizar a io2 Block Express (un tipo de volumen de EBS diseñado para bases de datos con un uso intensivo de E/S). io2 Block Express admite hasta 256.000 IOPS por volumen y una latencia inferior a un milisegundo. Es más caro que gp3 (0,125 $/GB + 0,065 $/IOPS aprovisionada al mes), pero es la única opción de EBS que cumple los requisitos de 64.000 IOPS o más. Para cargas de trabajo de bases de datos críticas para la latencia en las que el límite de 16.000 IOPS de gp3 no es suficiente, io2 es la única opción viable de EBS.
# Create io2 Block Express volume with 64,000 IOPS
aws ec2 create-volume \
--volume-type io2 \
--size 500 \
--iops 64000 \
--availability-zone us-east-1a \
--encrypted
# EBS volume type IOPS limits summary:
# gp3: up to 16,000 IOPS (default 3,000, configurable)
# io1: up to 64,000 IOPS (on Nitro instances)
# io2 Block Express: up to 256,000 IOPS
# st1 (throughput HDD): no IOPS focus, max 500 MB/s throughput
# sc1 (cold HDD): lowest cost, 250 MB/s max, rarely accessed dataEscenario 9: Reserved Instances para cargas de trabajo estables
Escenario: Una empresa ejecuta continuamente 20 instancias EC2 r6i.4xlarge para una aplicación de producción y no prevé cambios en sus requisitos durante 3 años. Actualmente, el gasto bajo demanda de estas instancias es de 80.000 $ al año. Solución: Comprar Reserved Instances estándar de 3 años (o Compute Savings Plans) con pago total por adelantado para obtener el descuento máximo. Las Reserved Instances estándar ofrecen un descuento de hasta el 72 % frente al modelo bajo demanda. Las instancias se ejecutan las 24 horas, todos los días, con una carga de trabajo predecible: el perfil clásico para usar Reserved Instances. Reducción de costes prevista: 80.000 $ × 0,72 = 22.400 $ al año frente a 80.000 $ al año bajo demanda, lo que supone un ahorro de 57.600 $ al año.
# Reserved Instance purchase decision matrix:
# On-Demand: No commitment, highest price, any workload
# 1-yr RI (All Up): 40% discount, 1-yr commitment, specific instance type
# 3-yr RI (All Up): 60-72% discount, 3-yr commitment, best for stable workloads
# Compute Savings Plan: 66% max discount, flexible instance family/size/Region
# EC2 Spot: 90% discount, interruptible, batch/stateless only
#
# Rule: if usage > 70% of the time for >1 year -> buy RI or Savings Plan
# Rule: if usage < 50% -> stick with On-Demand
# Rule: if usage pattern is steady 3yr -> 3yr RI All Upfront maximises savingsEscenario 10: Coste de Lambda frente a EC2 con tráfico variable
Escenario: Una empresa ejecuta una API REST en una instancia EC2 t3.micro que cuesta 8 $ al mes. La API recibe 1 millón de solicitudes al mes y cada una tarda 100 ms en procesarse. El equipo quiere saber si Lambda sería más barato. Análisis: Precio de Lambda: 1.000.000 de solicitudes × 0,0000002 $ = 0,20 $ (coste de las solicitudes) + 1.000.000 × 0,1 s × 128 MB de memoria × tarifa = aproximadamente 1,67 $ (coste de cómputo) = aproximadamente 1,87 $ al mes. Lambda es más barato que EC2 para esta API con poco tráfico. Cuando el tráfico supera aproximadamente los 40 millones de solicitudes al mes, EC2 resulta más barato. Use la Lambda Cost Calculator para encontrar el punto de equilibrio de cada carga de trabajo.
# Lambda vs EC2 cost rough break-even calculation:
# Lambda costs: $0.20 per 1M requests + $0.0000166667 per GB-second
# At 128 MB memory, 100ms duration:
# GB-seconds per request = 0.128 GB x 0.1s = 0.0128 GB-s
# Cost per request = $0.0000166667 x 0.0128 = $0.000000213 compute
# + $0.0000002 request fee = $0.000000413 total per request
#
# EC2 t3.micro: $0.0104/hr x 720 hrs = $7.49/month
# Break-even: $7.49 / $0.000000413 = ~18 million requests/month
# Below 18M requests/month -> Lambda cheaper
# Above 18M requests/month -> EC2 cheaper (if utilisation is high)Escenario 11: Global Accelerator para API dinámicas
Escenario: Una API global que presta servicio a usuarios de Europa, Estados Unidos y Asia experimenta una latencia irregular porque el tráfico atraviesa rutas impredecibles de Internet. Se consideró CloudFront, pero las respuestas de la API son dinámicas y no se pueden almacenar en caché. Solución: Usar AWS Global Accelerator. Proporciona dos direcciones IP anycast estáticas a nivel global. El tráfico de los usuarios entra en la red troncal global de AWS a través de la ubicación de edge de AWS más cercana y viaja por la red privada de AWS hasta el origen en la región de destino, evitando el tramo congestionado de la Internet pública entre redes. Global Accelerator mejora entre un 20 % y un 60 % el tiempo de respuesta de las API dinámicas y proporciona una conmutación por error inmediata cuando un endpoint regional deja de estar saludable.
# Create a Global Accelerator for an ALB
aws globalaccelerator create-accelerator \
--name my-api-accelerator \
--ip-address-type IPV4 \
--enabled
# Add a listener and endpoint group pointing to ALB
aws globalaccelerator create-listener \
--accelerator-arn arn:aws:globalaccelerator::123:accelerator/abc \
--protocol TCP \
--port-ranges '[{"FromPort": 443, "ToPort": 443}]'
# Endpoint group in us-east-1 with ALB
aws globalaccelerator create-endpoint-group \
--listener-arn arn:aws:globalaccelerator::123:listener/xyz \
--endpoint-group-region us-east-1 \
--endpoint-configurations '[{"EndpointId": "arn:aws:elasticloadbalancing:...", "Weight": 100}]'Comprobación rápida
Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.
Resumen de la lección
En esta lección ha trabajado con escenarios sobre: lazy loading de ElastiCache para reducir el uso de CPU de RDS del 80 % al 20 %, Spot Instances y AWS Batch para ahorrar entre un 70 % y un 90 % en el coste de trabajos por lotes, Athena para consultas ad hoc poco frecuentes frente a Redshift para análisis con alta concurrencia y S3 Intelligent-Tiering para patrones de acceso impredecibles sin tarifas de recuperación. A continuación se presenta el proyecto final: un mini examen cronometrado de dominios combinados para medir su preparación.
Aprende Cloud & IT Cert Prep con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 150
- Lecciones
- 600
Preguntas frecuentes
¿La lección «Escenarios de alto rendimiento y optimización de costes» es gratis?
Sí — el texto completo de «Escenarios de alto rendimiento y optimización de costes» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué aprenderé en «Escenarios de alto rendimiento y optimización de costes»?
Responda preguntas basadas en escenarios sobre estrategias de caché, optimización de consultas en lagos de datos, diferencias entre Reserved y Spot y arquitecturas con réplicas de lectura Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?
No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Escenarios de alto rendimiento y optimización de costes»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?
Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Escenarios de arquitectura segura
- Escenarios de arquitecturas resilientes y de alta disponibilidad
- Escenarios de alto rendimiento y optimización de costes
- Mini examen completo de dominios combinados