Introducción
Elastic Load Balancing (ELB) es un servicio de AWS que distribuye automáticamente el tráfico de aplicaciones entrante entre múltiples destinos, como instancias de Amazon EC2, contenedores y direcciones IP. ELB ayuda a garantizar que las aplicaciones sean escalables, tolerantes a fallos y altamente disponibles.
Tipos de Elastic Load Balancers
AWS ofrece tres tipos principales de balanceadores de carga:
-
Application Load Balancer (ALB):
- Diseñado para aplicaciones HTTP y HTTPS.
- Opera en la capa 7 del modelo OSI.
- Ofrece características avanzadas como enrutamiento basado en contenido, balanceo de carga basado en host y soporte para WebSockets.
-
Network Load Balancer (NLB):
- Diseñado para aplicaciones que requieren alta performance y baja latencia.
- Opera en la capa 4 del modelo OSI.
- Capaz de manejar millones de solicitudes por segundo.
-
Classic Load Balancer (CLB):
- Soporta tanto tráfico HTTP/HTTPS como TCP.
- Opera en las capas 4 y 7 del modelo OSI.
- Es el balanceador de carga más antiguo y menos recomendado para nuevas aplicaciones.
Configuración de un Application Load Balancer
Paso 1: Crear un Application Load Balancer
- Accede a la consola de administración de AWS y navega a la sección de EC2.
- En el menú de navegación, selecciona "Load Balancers" y haz clic en "Create Load Balancer".
- Selecciona "Application Load Balancer" y haz clic en "Create".
Paso 2: Configurar las opciones básicas
- Nombre del Load Balancer: Introduce un nombre para tu ALB.
- Esquema: Selecciona "Internet-facing" si deseas que el ALB sea accesible desde Internet, o "Internal" para un ALB interno.
- Listeners: Por defecto, se crea un listener en el puerto 80 (HTTP). Puedes agregar listeners adicionales según sea necesario.
- Zonas de disponibilidad: Selecciona las VPC y subnets donde deseas desplegar el ALB.
Paso 3: Configurar el grupo de seguridad
- Grupo de seguridad: Selecciona un grupo de seguridad existente o crea uno nuevo que permita el tráfico HTTP/HTTPS.
Paso 4: Configurar el enrutamiento
- Crear un Target Group: Un target group es un grupo de instancias EC2 que recibirán el tráfico del ALB.
- Nombre del Target Group: Introduce un nombre.
- Tipo de Target: Selecciona "Instance".
- Protocolo y Puerto: Selecciona HTTP y el puerto 80.
- VPC: Selecciona la VPC correspondiente.
- Configuración de salud: Configura las verificaciones de salud para determinar si las instancias están disponibles para recibir tráfico.
Paso 5: Registrar Targets
- Registrar instancias: Selecciona las instancias EC2 que deseas registrar en el target group.
Paso 6: Revisar y crear
- Revisar configuración: Revisa todas las configuraciones y haz clic en "Create" para crear el ALB.
Ejemplo de uso de Application Load Balancer
import boto3 # Crear un cliente de ELB elb_client = boto3.client('elbv2') # Crear un Application Load Balancer response = elb_client.create_load_balancer( Name='my-application-load-balancer', Subnets=[ 'subnet-0123456789abcdef0', 'subnet-abcdef0123456789' ], SecurityGroups=[ 'sg-0123456789abcdef0' ], Scheme='internet-facing', Tags=[ { 'Key': 'Name', 'Value': 'my-application-load-balancer' } ], Type='application', IpAddressType='ipv4' ) print(response)
Ejercicio Práctico
Ejercicio 1: Crear un Application Load Balancer
- Objetivo: Crear un Application Load Balancer que distribuya el tráfico entre dos instancias EC2.
- Pasos:
- Lanza dos instancias EC2 en la misma VPC.
- Sigue los pasos descritos anteriormente para crear un ALB.
- Registra las dos instancias EC2 en el target group del ALB.
- Verifica que el ALB distribuya el tráfico entre las dos instancias.
Solución
-
Lanzar instancias EC2:
- Lanza dos instancias EC2 en la misma VPC y asegúrate de que ambas estén en subnets diferentes.
-
Crear ALB:
- Sigue los pasos descritos en la sección "Configuración de un Application Load Balancer".
-
Registrar instancias:
- Durante la configuración del target group, selecciona las dos instancias EC2.
-
Verificación:
- Accede a la URL del ALB y verifica que el tráfico se distribuya entre las dos instancias.
Conclusión
Elastic Load Balancing es una herramienta esencial para garantizar la alta disponibilidad y escalabilidad de las aplicaciones en AWS. Al comprender cómo configurar y utilizar los diferentes tipos de balanceadores de carga, puedes mejorar significativamente el rendimiento y la resiliencia de tus aplicaciones.
En el próximo módulo, exploraremos Amazon CloudFront y cómo puede ayudarte a entregar contenido de manera rápida y segura a tus usuarios finales.
Curso de AWS
Módulo 1: Introducción a AWS
- ¿Qué es AWS?
- Configuración de tu cuenta de AWS
- Infraestructura global de AWS
- Consola de administración de AWS