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:
-
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.
-
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.
-
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
- Aneu a la consola de gestió d'AWS.
- Navegueu a la secció "EC2" i seleccioneu "Load Balancers" al menú lateral.
- Feu clic a "Create Load Balancer" i seleccioneu "Application Load Balancer".
- 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
- Seleccioneu o creeu un grup de seguretat que permeti el trànsit HTTP/HTTPS.
- 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ó
- Creeu un grup de destinació que inclogui les instàncies EC2 o altres recursos que rebran el trànsit.
- Configureu les verificacions de salut per assegurar-vos que només les instàncies saludables rebin trànsit.
Pas 4: Revisar i crear
- 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
- Creeu dues instàncies EC2 en la mateixa VPC.
- Creeu un Application Load Balancer seguint els passos descrits anteriorment.
- Configureu un grup de destinació que inclogui les dues instàncies EC2.
- Verifiqueu que el trànsit es distribueix correctament entre les instàncies.
Solució
-
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
-
Creeu el grup de destinació:
aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 --vpc-id vpc-12345678
-
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
-
Creeu l'ALB:
aws elbv2 create-load-balancer --name my-alb --subnets subnet-12345678 subnet-87654321 --security-groups sg-12345678
-
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.