Skip to content

Aws Elb

DodaTech 2 min read

title: "Cum să configurezi load balancing cu ELB în AWS — Ghid rapid" description: "Creare Application Load Balancer, configurare target group, reguli de rutare și health check în AWS" weight: 906 date: 2025-01-15 draft: false tags: [aws, elb, alb, load-balancing, quick-fix]

Elastic Load Balancing (ELB) distribuie automat traficul de intrare între multiple instanțe EC2, containere sau adrese IP, asigurând disponibilitate ridicată și toleranță la erori pentru aplicațiile tale.

Problema

Cu o singură instanță EC2, orice cădere a serverului sau sarcină mare duce la downtime sau degradare. Fără un load balancer, trebuie să gestionezi manual DNS-ul pentru failover și distribuirea traficului.

Abordarea Greșită

# Un singur server, tot traficul într-o singură instanță
aws ec2 run-instances --image-id ami-xxx --instance-type t2.micro
# Dacă instanța cade, site-ul e offline

Abordarea Corectă

Creează un Application Load Balancer:

# Creare target group
aws elbv2 create-target-group \
  --name tg-web \
  --protocol HTTP \
  --port 80 \
  --vpc-id vpc-12345 \
  --health-check-path /health \
  --health-check-interval-seconds 30

# Înregistrare target-uri
aws elbv2 register-targets \
  --target-group-arn arn:aws:elasticloadbalancing:...:targetgroup/tg-web/abc \
  --targets Id=i-0abcd1234efgh5678 Id=i-0efgh5678ijkl9012

# Creare ALB
aws elbv2 create-load-balancer \
  --name alb-web \
  --subnets subnet-public-1 subnet-public-2 \
  --security-groups sg-12345678 \
  --scheme internet-facing

# Creare listener
aws elbv2 create-listener \
  --load-balancer-arn arn:aws:elasticloadbalancing:...:loadbalancer/app/alb-web/abc \
  --protocol HTTP --port 80 \
  --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:...:targetgroup/tg-web/abc

Output:

{
    "LoadBalancers": [{
        "DNSName": "alb-web-1234567890.us-east-1.elb.amazonaws.com",
        "State": {"Code": "active"}
    }]
}

Reguli de Rutare

# Regulă bazată pe cale (/api -> target group API)
aws elbv2 create-rule \
  --listener-arn arn:aws:elasticloadbalancing:...:listener/app/alb-web/abc/def \
  --priority 10 \
  --conditions Field=path-pattern,Values=['/api/*'] \
  --actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:...:targetgroup/tg-api/xyz

Greșeli Comune

  1. Health check incorect — calea sau codul de stare HTTP greșit marchează instanțele ca unhealthy.
  2. Fără stickiness sessions — aplicațiile cu stare (cart, login) au nevoie de stickiness activat.
  3. Subnete în aceeași AZ — pentru redundanță, target-urile trebuie să fie în minim 2 AZ-uri.
  4. Idle timeout prea mic — aplicațiile cu upload-uri mari timeout-ează; crește idle timeout la 300s+.
  5. Certificat SSL neconfigurat — pentru HTTPS, asociază un certificat ACM la listener.

FAQ

### Ce este un Application Load Balancer (ALB)?

ALB este un load balancer de nivel 7 care distribuie trafic HTTP/HTTPS pe baza regulilor de rutare (cale, host, header).

Care e diferența dintre ALB și NLB?

ALB operează la nivel 7 (HTTP/HTTPS) cu rutare inteligentă. NLB operează la nivel 4 (TCP/UDP) cu latență ultra-redusă.

Cum funcționează health check-urile?

ELB trimite cereri periodice la calea configurată (ex: /health). Dacă instanța răspunde cu un cod HTTP valid, e marcată healthy.

Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. DodaTech integrează securitatea în fiecare soluție cloud.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro