Los balanceadores de carga en AWS son fundamentales para distribuir el tráfico, pero cuando enfrentamos picos de demanda, necesitamos ir más allá. Las políticas de autoescalamiento nos permiten adaptarnos dinámicamente a estos desafíos, aumentando o disminuyendo recursos según las necesidades del momento. En este artículo exploraremos cómo implementar estas políticas en AWS para garantizar que nuestras aplicaciones mantengan un rendimiento óptimo sin importar la carga de trabajo.
¿Qué son las políticas de autoescalamiento y cómo funcionan en AWS?
Las políticas de autoescalamiento son reglas que permiten a nuestros sistemas aumentar automáticamente la capacidad de cómputo cuando se detectan picos de tráfico. AWS soporta el autoescalamiento de forma nativa en diversos servicios, incluyendo:
Servicios de cómputo: instancias EC2, cargas de trabajo en ECS o EKS
Funciones serverless como Lambda
Bases de datos
Otros servicios especializados
La clave del autoescalamiento es que nos permite responder de forma automática a las demandas cambiantes, evitando así la intervención manual constante y asegurando que nuestros sistemas siempre tengan la capacidad adecuada.
Para implementar el autoescalamiento en EC2, que es uno de los más comunes, utilizamos los denominados Auto Scaling Groups (ASG).
Tipos de escalado en AWS
AWS ofrece diferentes tipos de escalado para adaptarse a distintos escenarios:
Escalado manual: Requiere que agreguemos o quitemos instancias manualmente desde la consola o la CLI.
Escalado dinámico: Configura el sistema para monitorear métricas específicas (generalmente uso de CPU) y ajustar automáticamente el número de instancias.
Escalado programado: Permite aumentar o disminuir las instancias en rangos horarios predefinidos, ideal cuando conocemos los patrones de tráfico.
Escalado predictivo: Utiliza modelos de machine learning para predecir los patrones de tráfico basándose en históricos y ajustar proactivamente la capacidad.
El escalado dinámico es el más utilizado por su capacidad de responder automáticamente a métricas como el uso de CPU, memoria o capacidad de red de las instancias.
¿Cómo configurar Auto Scaling Groups en AWS?
Los Auto Scaling Groups suelen estar conectados a un balanceador de carga, formando una arquitectura robusta para manejar tráfico variable. Esta integración nativa permite aprovechar las métricas de health check para detectar instancias defectuosas y reemplazarlas automáticamente.
AMIs y Launch Templates
Dos componentes clave para trabajar con ASGs son:
AMIs (Amazon Machine Images): Son imágenes que contienen la configuración base para nuestras instancias.
Launch Templates: Definen la configuración con la que se crearán nuevas instancias dentro del ASG.
Los Launch Templates permiten especificar:
-AMI a utilizar
-Tipo de instancia
-Volúmenes adicionales
-Tags-Interfaces de red
-Configuraciones avanzadas
Una ventaja importante de los Launch Templates es que pueden ser versionados, permitiendo realizar rollbacks si una nueva configuración causa problemas. Además, pueden ser reutilizados entre varios ASGs, a diferencia de los antiguos Launch Configurations que estaban limitados a un solo ASG.
Creación programática de ASGs
Aunque la forma más común de crear ASGs es a través de la consola web, también podemos hacerlo programáticamente usando la CLI de AWS. Algunos comandos básicos incluyen:
Esta política configura el ASG para que añada instancias cuando el uso promedio de CPU alcance el 70%, manteniéndose siempre dentro de los límites mínimos y máximos establecidos.
¿Cómo integrar balanceadores de carga con Auto Scaling Groups?
La combinación de balanceadores de carga y ASGs es una arquitectura estándar en AWS para aplicaciones que necesitan alta disponibilidad y escalabilidad. Esta integración permite distribuir el tráfico entre las instancias creadas dinámicamente por el ASG.
Los beneficios de esta integración incluyen:
Uso compartido de métricas para health checks
Distribución equilibrada del tráfico
Respuesta automática a picos de demanda
Reducción de costos al eliminar instancias cuando baja la demanda
Con esta arquitectura, podemos asegurar que nuestras aplicaciones permanezcan disponibles incluso durante picos de tráfico inesperados, manteniendo un rendimiento óptimo y minimizando costos.
El autoescalamiento es una herramienta poderosa que, cuando se configura correctamente, puede marcar la diferencia entre una aplicación que colapsa bajo demanda y una que se adapta fluidamente a las necesidades cambiantes de los usuarios. ¿Has implementado políticas de autoescalamiento en tu organización? Comparte en los comentarios qué combinación de comandos utilizarías para crear un ASG personalizado para tus necesidades específicas.
En la clase anterior creamos manualmente dos instancias EC2 para el balanceo, pero esa no es la forma más eficiente de hacerlo en un entorno en la nube. Para eso existe Auto Scaling, que nos permite automatizar este proceso. Por ejemplo, podemos configurar una política para que, si el uso de CPU en una instancia supera el 70%, se cree automáticamente una nueva instancia para repartir la carga. Luego, cuando la demanda disminuye, esa instancia adicional se elimina sola. Esto no solo nos ayuda a manejar mejor los picos de tráfico en nuestras aplicaciones, sino que también optimiza costos, ya que pagamos únicamente por los recursos que realmente estamos utilizando.
Para terminar, una ultima practica de Arquitectura. Estas constan de preguntas mixtas de arquitectura (ELB + ASG + VPC)
🧪 Question 1
A company runs a public-facing web application using EC2 instances in private subnets across multiple Availability Zones.
The application must be highly available, scale automatically, and allow users to access it over the internet.
Which architecture best meets these requirements?
A. EC2 instances in public subnets with Auto Scaling and no Load Balancer
B. Application Load Balancer in public subnets with EC2 instances in private subnets managed by an Auto Scaling Group
C. Network Load Balancer in private subnets with EC2 instances in public subnets
D. Application Load Balancer in private subnets with EC2 instances in public subnets
🧪 Question 2
A Solutions Architect is designing an application that must:
Automatically scale EC2 instances based on demand
Distribute HTTP traffic based on URL paths
Ensure fault tolerance across Availability Zones
Which combination of services should be used?
A. Network Load Balancer + Auto Scaling Group
B. Application Load Balancer + Auto Scaling Group
C. Classic Load Balancer + Manual Scaling
D. Application Load Balancer without Auto Scaling
🧪 Question 3
An application runs in a VPC with private subnets only.
The application must:
Receive traffic from the internet
Scale automatically
Prevent direct access to EC2 instances
Which solution satisfies these requirements?
A. Place EC2 instances in public subnets with public IPs
B. Use a NAT Gateway in front of EC2 instances
C. Deploy an Application Load Balancer in public subnets and EC2 instances in private subnets with Auto Scaling
D. Use a Network Load Balancer in private subnets with public IPs
🧪 Question 4
A company wants to ensure that unhealthy EC2 instances are replaced automatically and quickly when an application failure occurs.
The architecture uses an Application Load Balancer and an Auto Scaling Group.
What is the MOST effective configuration?
A. Enable EC2 health checks only
B. Enable ALB health checks in the Auto Scaling Group
C. Use scheduled scaling policies
D. Enable CloudWatch alarms only
🧪 Question 5
A web application experiences predictable traffic spikes every weekday at 9 AM and unpredictable spikes throughout the day.
The company wants an optimized scaling strategy.
Which solution BEST meets this requirement?
A. Scheduled Scaling only
B. Target Tracking Scaling only
C. Scheduled Scaling combined with Target Tracking Scaling
D. Step Scaling only
🧪 Question 6
A Solutions Architect designs a VPC with:
Public subnets in multiple AZs
Private subnets in multiple AZs
Which components should be placed in the public subnets?
A. EC2 instances and Auto Scaling Group
B. Application Load Balancer and NAT Gateway
C. Auto Scaling Group and private EC2 instances
D. Application Load Balancer and EC2 instances
🧪 Question 7
A company wants to minimize costs while maintaining high availability for a web application.
Traffic varies significantly during the day.
Which architecture BEST achieves this?
A. Fixed number of EC2 instances without Auto Scaling
B. Application Load Balancer with Auto Scaling Group across multiple AZs
C. Network Load Balancer with manually managed EC2 instances
D. Classic Load Balancer with EC2 instances in a single AZ
🧪 Question 8
An application running behind an Application Load Balancer must ensure that EC2 instances are evenly distributed across Availability Zones.
Which feature provides this capability?
A. Security Groups
B. Auto Scaling Group with multiple AZs
C. VPC route tables
D. Elastic IP addresses
Answers:
1. B
2. B
3. C
4. B
5. C
6. B
7. B
8 B
Vamos a practicar, aqui hay preguntas de Load Balancer y Auto Scaling
Perfecto. Aquí tienes preguntas largas, con contexto realista y trampas clásicas, EXACTAMENTE del estilo del AWS Certified Solutions Architect – Associate.
👉 No te doy respuestas aún. Respóndelas y luego las revisamos como en el examen.
🧪 Question 1
A company runs a web application on EC2 instances across multiple Availability Zones.
Traffic is highly variable and unpredictable.
The application must be able to scale automatically and route traffic based on URL paths such as /api and /static.
Which solution best meets these requirements?
A. Network Load Balancer with an Auto Scaling Group
B. Application Load Balancer with an Auto Scaling Group
C. Classic Load Balancer with EC2 instances
D. Application Load Balancer without Auto Scaling
🧪 Question 2
An online gaming platform requires ultra-low latency and must support millions of concurrent TCP connections.
The architecture must be highly available and scale automatically based on demand.
Which solution should a Solutions Architect recommend?
A. Application Load Balancer with Auto Scaling
B. Network Load Balancer with Auto Scaling
C. Classic Load Balancer with scheduled scaling
D. Application Load Balancer with manual scaling
🧪 Question 3
A web application uses an Application Load Balancer in front of an Auto Scaling Group.
Some EC2 instances become unresponsive, but the Auto Scaling Group does not replace them automatically.
What is the MOST likely reason?
A. The Auto Scaling Group uses only EC2 health checks
B. The Application Load Balancer is deployed in a single Availability Zone
C. The Auto Scaling Group minimum capacity is set to zero
D. The Application Load Balancer does not support health checks
🧪 Question 4
A company wants to scale its EC2 fleet automatically to maintain average CPU utilization at 60%.
The company wants the simplest configuration and does not need granular control over scaling steps.
Which scaling policy should be used?
A. Scheduled Scaling
B. Step Scaling
C. Target Tracking Scaling
D. Manual Scaling
🧪 Question 5
A Solutions Architect is designing a highly available web application using an Application Load Balancer and an Auto Scaling Group.
The application must continue operating even if one Availability Zone fails.
Which design meets this requirement?
A. Deploy the ALB in one AZ and EC2 instances in multiple AZs
B. Deploy EC2 instances in one AZ and ALB in multiple AZs
C. Deploy both the ALB and EC2 instances across multiple AZs
D. Deploy a Network Load Balancer in a single AZ
🧪 Question 6
A company uses an Auto Scaling Group with minimum capacity set to 2 and maximum capacity set to 10.
The desired capacity is set to 2.
A sudden traffic spike causes CPU utilization to rise above scaling thresholds.
What happens next?
A. The Auto Scaling Group cannot scale because desired capacity is fixed
B. The Auto Scaling Group increases the number of instances up to the maximum capacity
C. The Load Balancer automatically launches new EC2 instances
D. EC2 instances scale vertically by adding CPU
🧪 Question 7
A company is migrating a legacy application that requires basic load balancing with minimal configuration changes.
The application does not require advanced routing features.
Which load balancer should be used?
A. Application Load Balancer
B. Network Load Balancer
C. Classic Load Balancer
D. Application Load Balancer with Lambda integration
🧪 Question 8
A Solutions Architect wants to ensure that unhealthy EC2 instances are automatically replaced as soon as they fail application-level health checks.
Which configuration best achieves this?
A. Use EC2 health checks only in the Auto Scaling Group
B. Use ALB health checks integrated with the Auto Scaling Group