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:

  1. 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.
  2. 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.
  3. 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

  1. Accede a la consola de administración de AWS y navega a la sección de EC2.
  2. En el menú de navegación, selecciona "Load Balancers" y haz clic en "Create Load Balancer".
  3. Selecciona "Application Load Balancer" y haz clic en "Create".

Paso 2: Configurar las opciones básicas

  1. Nombre del Load Balancer: Introduce un nombre para tu ALB.
  2. Esquema: Selecciona "Internet-facing" si deseas que el ALB sea accesible desde Internet, o "Internal" para un ALB interno.
  3. Listeners: Por defecto, se crea un listener en el puerto 80 (HTTP). Puedes agregar listeners adicionales según sea necesario.
  4. Zonas de disponibilidad: Selecciona las VPC y subnets donde deseas desplegar el ALB.

Paso 3: Configurar el grupo de seguridad

  1. 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

  1. 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.
  2. 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

  1. Registrar instancias: Selecciona las instancias EC2 que deseas registrar en el target group.

Paso 6: Revisar y crear

  1. 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

  1. Objetivo: Crear un Application Load Balancer que distribuya el tráfico entre dos instancias EC2.
  2. 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

  1. Lanzar instancias EC2:

    • Lanza dos instancias EC2 en la misma VPC y asegúrate de que ambas estén en subnets diferentes.
  2. Crear ALB:

    • Sigue los pasos descritos en la sección "Configuración de un Application Load Balancer".
  3. Registrar instancias:

    • Durante la configuración del target group, selecciona las dos instancias EC2.
  4. 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.

© Copyright 2024. Todos los derechos reservados