ALB y Auto Scaling
Cuando tu app crece, un solo servidor ya no alcanza: se satura con muchas visitas, y si se cae, se cae todo el sitio. La solución es tener varios servidores y repartir las visitas entre ellos (balanceador de carga), y que se creen o se borren solos según la demanda (Auto Scaling).
Application Load Balancer (ALB): • Distribuye trafico HTTP/HTTPS entre varias instancias EC2 • Health checks: verifica que cada instancia este sana • Target Group: grupo de instancias que reciben trafico • Listener: regla que define en que puerto escucha (80, 443) • Puede rutear por path: /api → servidores API, /web → servidores web
Auto Scaling Group (ASG): • Escala automaticamente el numero de instancias segun demanda • Minimo, deseado y maximo de instancias • Launch Template: plantilla de como crear nuevas instancias • Politicas de escalado: por CPU, conexiones, horario, etc.
# Crear Target Group
aws elbv2 create-target-group \
--name mi-app-targets \
--protocol HTTP --port 80 \
--vpc-id vpc-0abc123 \
--health-check-path /health \
--health-check-interval-seconds 30
# Crear Application Load Balancer
aws elbv2 create-load-balancer \
--name mi-app-alb \
--subnets subnet-publica-1a subnet-publica-1b \
--security-groups sg-0abc123 \
--type application
# Crear listener (puerto 80)
aws elbv2 create-listener \
--load-balancer-arn arn:aws:elbv2:...:loadbalancer/app/mi-app-alb/... \
--protocol HTTP --port 80 \
--default-actions Type=forward,TargetGroupArn=arn:aws:elbv2:...:targetgroup/mi-app-targets/...
# Crear Launch Template
aws ec2 create-launch-template \
--launch-template-name mi-app-template \
--launch-template-data '{"ImageId":"ami-0c02fb55","InstanceType":"t3.small","SecurityGroupIds":["sg-0abc123"]}'
# Crear Auto Scaling Group
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name mi-app-asg \
--launch-template LaunchTemplateName=mi-app-template,Version='$Latest' \
--min-size 2 --max-size 10 --desired-capacity 2 \
--target-group-arns arn:aws:elbv2:...:targetgroup/mi-app-targets/... \
--vpc-zone-identifier "subnet-1a,subnet-1b"
Practica esta lección
Resuelve los ejercicios del curso de AWS para Developers en la app, gratis y con corrección automática.
Empezar a practicar