Introducció

L'Equilibri de càrrega elàstic (Elastic Load Balancing, ELB) és un servei d'AWS que distribueix automàticament el trànsit d'aplicacions entrants entre múltiples instàncies d'Amazon EC2, contenidors, adreces IP i funcions Lambda. ELB ajuda a assegurar que les aplicacions siguin altament disponibles i escalables.

Tipus d'Equilibradors de Càrrega

AWS ofereix tres tipus principals d'equilibradors de càrrega:

  1. Application Load Balancer (ALB):

    • Ideal per a aplicacions web.
    • Funciona a nivell de capa 7 (HTTP/HTTPS).
    • Ofereix funcions avançades com el balanceig basat en el contingut, la terminació SSL i la integració amb AWS WAF.
  2. Network Load Balancer (NLB):

    • Ideal per a aplicacions que requereixen un alt rendiment i baixa latència.
    • Funciona a nivell de capa 4 (TCP/UDP).
    • Pot gestionar milions de sol·licituds per segon.
  3. Classic Load Balancer (CLB):

    • Funciona tant a nivell de capa 4 com de capa 7.
    • És una opció més antiga i menys recomanada per a noves aplicacions.
Tipus d'ELB Capa Casos d'ús principals Funcions clau
ALB 7 Aplicacions web Balanceig basat en contingut, terminació SSL, integració amb WAF
NLB 4 Aplicacions amb alt rendiment i baixa latència Alta capacitat de sol·licituds, baixa latència
CLB 4/7 Aplicacions heretades Funcions bàsiques de balanceig de càrrega

Configuració d'un Application Load Balancer (ALB)

Pas 1: Crear un ALB

  1. Aneu a la consola de gestió d'AWS.
  2. Navegueu a la secció "EC2" i seleccioneu "Load Balancers" al menú lateral.
  3. Feu clic a "Create Load Balancer" i seleccioneu "Application Load Balancer".
  4. Configureu els detalls bàsics:
    • Nom del Load Balancer.
    • Esquema (Internet-facing o Internal).
    • Protocol i port (HTTP/HTTPS).
    • VPC i subxarxes.

Pas 2: Configurar els grups de seguretat

  1. Seleccioneu o creeu un grup de seguretat que permeti el trànsit HTTP/HTTPS.
  2. Assegureu-vos que les regles del grup de seguretat permetin el trànsit entrant des de les adreces IP dels clients.

Pas 3: Configurar els grups de destinació

  1. Creeu un grup de destinació que inclogui les instàncies EC2 o altres recursos que rebran el trànsit.
  2. Configureu les verificacions de salut per assegurar-vos que només les instàncies saludables rebin trànsit.

Pas 4: Revisar i crear

  1. Reviseu la configuració i feu clic a "Create" per finalitzar la creació del Load Balancer.

Exemple de codi: Configuració d'un ALB amb AWS CLI

# Crear un grup de destinació
aws elbv2 create-target-group \
    --name my-targets \
    --protocol HTTP \
    --port 80 \
    --vpc-id vpc-12345678

# Crear un Application Load Balancer
aws elbv2 create-load-balancer \
    --name my-alb \
    --subnets subnet-12345678 subnet-87654321 \
    --security-groups sg-12345678

# Afegir una regla de listener
aws elbv2 create-listener \
    --load-balancer-arn arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/my-alb/50dc6c495c0c9188 \
    --protocol HTTP \
    --port 80 \
    --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/6d0ecf831eec9f09

Exercici Pràctic

Objectiu

Configurar un Application Load Balancer que distribueixi el trànsit entre dues instàncies EC2.

Passos

  1. Creeu dues instàncies EC2 en la mateixa VPC.
  2. Creeu un Application Load Balancer seguint els passos descrits anteriorment.
  3. Configureu un grup de destinació que inclogui les dues instàncies EC2.
  4. Verifiqueu que el trànsit es distribueix correctament entre les instàncies.

Solució

  1. Creeu les instàncies EC2:

    aws ec2 run-instances --image-id ami-0abcdef1234567890 --count 2 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-12345678 --subnet-id subnet-12345678
    
  2. Creeu el grup de destinació:

    aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 --vpc-id vpc-12345678
    
  3. Registreu les instàncies EC2 al grup de destinació:

    aws elbv2 register-targets --target-group-arn arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/6d0ecf831eec9f09 --targets Id=i-1234567890abcdef0 Id=i-0abcdef1234567890
    
  4. Creeu l'ALB:

    aws elbv2 create-load-balancer --name my-alb --subnets subnet-12345678 subnet-87654321 --security-groups sg-12345678
    
  5. Afegiu una regla de listener:

    aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/my-alb/50dc6c495c0c9188 --protocol HTTP --port 80 --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/6d0ecf831eec9f09
    

Errors Comuns i Consells

  • Error: "Instance is not in a valid state for this operation": Assegureu-vos que les instàncies EC2 estan en estat "running" abans de registrar-les al grup de destinació.
  • Error: "Security group does not allow traffic": Verifiqueu que el grup de seguretat associat permet el trànsit HTTP/HTTPS.
  • Consell: Utilitzeu les verificacions de salut per assegurar-vos que només les instàncies saludables reben trànsit. Configureu les verificacions de salut adequadament per a la vostra aplicació.

Conclusió

L'Equilibri de càrrega elàstic és una eina poderosa per assegurar la disponibilitat i escalabilitat de les aplicacions a AWS. En aquest tema, hem après sobre els diferents tipus d'equilibradors de càrrega, com configurar un Application Load Balancer i com distribuir el trànsit entre múltiples instàncies EC2. Amb aquesta base, estem preparats per explorar altres serveis de xarxes i lliurament de contingut a AWS.

© Copyright 2024. Tots els drets reservats