Cos'è Amazon ALB? Costi e Come Usarlo

Se stai costruendo applicazioni web moderne su AWS, probabilmente hai sentito parlare di Application Load Balancer (ALB). Ma cos’è esattamente? È un componente fondamentale che distribuisce il traffico in entrata tra più server, migliorando performance, affidabilità e scalabilità della tua applicazione.

In questa guida completa scoprirai tutto quello che c’è da sapere su AWS Application Load Balancer: cos’è, come funziona, quanto costa realmente e come configurarlo. Che tu stia gestendo un semplice sito web o un’architettura di microservizi complessa, questa guida ti aiuterà a capire se ALB è la soluzione giusta per te e come utilizzarlo al meglio.

Cos’è AWS Application Load Balancer (ALB) in Parole Semplici

Immagina di avere un ristorante molto frequentato. Se c’è un solo cameriere, quando arrivano tanti clienti insieme si crea una coda enorme e il servizio diventa lento. Ma se hai 5 camerieri e un maitre che distribuisce i clienti in modo intelligente tra i tavoli disponibili, il servizio è veloce ed efficiente.

AWS Application Load Balancer (ALB) è esattamente questo “maitre digitale” per la tua applicazione web. Quando arrivano migliaia di utenti che vogliono accedere al tuo sito, ALB distribuisce le richieste tra i tuoi server (chiamati “target”) in modo intelligente ed equilibrato.

Ma ALB fa molto di più di una semplice distribuzione del traffico: analizza il contenuto delle richieste HTTP/HTTPS, può instradare gli utenti a servizi diversi in base all’URL richiesto, e controlla costantemente che i tuoi server siano in salute.

Perché Usare AWS ALB invece di Alternative?

Se costruisci applicazioni moderne su AWS, ALB offre vantaggi significativi rispetto ad altre soluzioni di load balancing:

  • Layer 7 (HTTP/HTTPS) - Prende decisioni intelligenti basandosi sul contenuto delle richieste (URL, headers, metodi HTTP)
  • Routing avanzato - Puoi inviare /api/* ai tuoi backend e /web/* ai tuoi frontend automaticamente
  • Container-native - Integrazione perfetta con Amazon ECS, Amazon EKS e architetture a microservizi
  • WebSocket e HTTP/2 - Supporto nativo per protocolli web moderni
  • SSL/TLS gestito - Termination SSL centralizzata con certificati AWS Certificate Manager gratuiti
  • Health check intelligenti - Controlli automatici dello stato dei tuoi server con configurazione granulare
  • Integrazione AWS completa - Funziona perfettamente con Auto Scaling, CloudWatch, WAF, Cognito e altri servizi AWS

Come Funziona AWS Application Load Balancer: Concetti Base

Prima di parlare di costi, è importante capire i concetti fondamentali di Application Load Balancer. Li spiegheremo in modo semplice e pratico!

Load Balancer: Il Punto di Ingresso della Tua Applicazione

L’Application Load Balancer è il componente principale - il punto di accesso della tua applicazione. Ha:

  • DNS name - Un indirizzo tipo my-alb-123456.eu-west-1.elb.amazonaws.com che gli utenti usano per raggiungere la tua app
  • IP addresses - ALB ha indirizzi IP in diverse Availability Zone per alta affidabilità
  • Listeners - Le “porte di ingresso” che ascoltano traffico su porte specifiche (80 per HTTP, 443 per HTTPS)

Target Groups: I Gruppi di Server Backend

Un target group è un insieme di server (target) che possono gestire le richieste degli utenti. Puoi avere target di tipo:

  • Istanze EC2 - I classici server virtuali
  • Container ECS - Task Docker gestiti da ECS
  • Lambda functions - Funzioni serverless
  • Indirizzi IP - Server esterni o on-premise

Esempio pratico: potresti avere un target group chiamato “backend-api” con 3 istanze EC2 che eseguono la tua API REST.

Listeners e Rules: Le Regole di Routing

I listeners ascoltano le richieste in arrivo e usano regole per decidere dove inviarle.

Esempio di regole:

  • Se l’URL inizia con /api/ → invia al target group “backend-api”
  • Se l’URL inizia con /images/ → invia al target group “cdn-origin”
  • Se l’header contiene X-Mobile: true → invia al target group “mobile-backend”
  • Default → invia al target group “frontend-web”

Health Checks: Controlli di Salute

ALB controlla periodicamente che i tuoi server funzionino correttamente. Ecco un esempio di configurazione tipica (completamente personalizzabile):

  • Invia richieste di test ogni 30 secondi (intervallo configurabile)
  • Se un server non risponde per 2 volte consecutive, viene marcato “unhealthy” (soglia configurabile)
  • Il traffico viene automaticamente reindirizzato ai server sani
  • Quando il server si riprende, riceve di nuovo traffico

Puoi configurare il path di health check (es. /health), il timeout, il numero di tentativi, e i codici HTTP considerati validi. Questo garantisce che gli utenti non vengano mai inviati a server malfunzionanti!

Il Flusso di Lavoro Tipico con ALB

Ecco cosa succede quando un utente accede alla tua applicazione:

  1. L’utente digita www.tuodominio.com nel browser
  2. Il DNS risolve verso l’indirizzo del tuo ALB
  3. ALB riceve la richiesta HTTP/HTTPS
  4. Se HTTPS, ALB gestisce la connessione SSL (TLS termination)
  5. ALB valuta le regole di routing e sceglie il target group appropriato
  6. ALB seleziona un target sano nel gruppo (usando l’algoritmo round-robin o least outstanding requests)
  7. La richiesta viene inviata al target selezionato
  8. Il target elabora la richiesta e risponde ad ALB
  9. ALB inoltra la risposta all’utente

Tutto questo avviene in millisecondi e in modo completamente trasparente!

Esempio Pratico: Architettura Microservizi

Immaginiamo un’applicazione e-commerce moderna con questa struttura:

ALB (my-shop-alb-123.elb.amazonaws.com)
│
├─ Listener HTTP:80 → Redirect to HTTPS
│
└─ Listener HTTPS:443
   │
   ├─ Rule: Path /api/products/* → Target Group: product-service (3 EC2)
   ├─ Rule: Path /api/users/* → Target Group: user-service (2 EC2)
   ├─ Rule: Path /api/orders/* → Target Group: order-service (4 EC2)
   ├─ Rule: Path /images/* → Target Group: image-service (2 EC2)
   └─ Default → Target Group: frontend-web (3 EC2)

Cosa succede in pratica:

  • Richiesta a https://shop.com/ → frontend React
  • Richiesta a https://shop.com/api/products/123 → microservizio prodotti
  • Richiesta a https://shop.com/api/users/login → microservizio utenti
  • Richiesta a https://shop.com/images/product.jpg → servizio immagini

Un solo load balancer gestisce tutta l’architettura!

Differenze tra ALB e NLB: Quale Load Balancer Scegliere?

AWS offre due tipi principali di load balancer moderni. Vediamo quando usare ciascuno:

Application Load Balancer (ALB) - Layer 7

Quando usarlo:

  • Applicazioni web HTTP/HTTPS
  • Microservizi e container
  • Routing basato su contenuto (URL, headers)
  • WebSocket, HTTP/2, gRPC
  • Integrazione con AWS Cognito per autenticazione

Layer OSI: 7 (Application)

Casi d’uso ideali: Applicazioni web moderne, API REST, microservizi

Network Load Balancer (NLB) - Layer 4

Quando usarlo:

  • Performance estreme (milioni di richieste/secondo)
  • Protocolli TCP/UDP (non solo HTTP)
  • IP statico necessario
  • Latenza ultra-bassa richiesta
  • Gaming, IoT, streaming video

Layer OSI: 4 (Transport)

Casi d’uso ideali: Gaming online, applicazioni TCP custom, VoIP

Tabella di Confronto Rapido

Caratteristica ALB NLB
Layer OSI 7 (HTTP/HTTPS) 4 (TCP/UDP)
Routing contenuto No
WebSocket
IP statici No
Container support Eccellente Buono
Protocolli HTTP, HTTPS, gRPC TCP, UDP, TLS
Performance Ottima Estrema
Costo Medio Medio-Alto
Consigliato per Web app moderne Gaming, IoT

Regola pratica: Se lavori con HTTP/HTTPS e applicazioni web moderne, scegli Application Load Balancer (ALB). Se hai bisogno di performance estreme con protocolli non-HTTP, scegli Network Load Balancer (NLB).

Costi AWS Application Load Balancer: Guida Completa al Pricing

Arriviamo alla parte cruciale: quanto costa davvero AWS Application Load Balancer? Il modello di pricing è trasparente ma ha alcune sfumature importanti da capire per ottimizzare i costi.

Nota importante sui prezzi: Tutti i prezzi indicati in questa guida sono esempi basati sulla regione eu-west-1 (Irlanda) e possono variare nel tempo e per regione. Consulta sempre la pagina ufficiale del pricing AWS per i costi aggiornati prima di fare stime di budget.

Il Modello di Costo di AWS Application Load Balancer

ALB ha tre componenti di costo principali che determinano la spesa mensile:

  1. Ore di esecuzione - Paghi per ogni ora (parziale) in cui l’Application Load Balancer è attivo
  2. Load Balancer Capacity Units (LCU) - Paghi in base all’uso effettivo di risorse
  3. Trasferimento dati - Solo in casi specifici (cross-region)

Vediamoli in dettaglio con esempi reali per capire come calcolare i costi.

1. Costi Orari ALB: Il Costo Base Fisso

Prezzo base ALB (esempio regione eu-west-1 / Irlanda - verificare pricing ufficiale):

~$0,0225 per ora (~$16,20 al mese)

Questo è il costo fisso per avere un ALB attivo, indipendentemente dal traffico. Se hai un ALB acceso per un mese intero (730 ore), paghi circa:

730 ore × $0,0225 = ~$16,43 al mese

Nota importante: Questo costo è per Application Load Balancer, non per listener o target group. Se hai 5 listener e 10 target group sullo stesso ALB, paghi sempre lo stesso costo orario fisso.

2. Load Balancer Capacity Units (LCU): Il Costo Variabile Basato sull’Utilizzo

Gli LCU rappresentano l’uso effettivo del tuo load balancer. È il concetto più importante da capire!

Prezzo LCU (esempio eu-west-1 - verificare pricing ufficiale): ~$0,008 per LCU-ora

Cosa Sono gli LCU (Load Balancer Capacity Units)?

Un LCU è un’unità di misura composita basata su 4 dimensioni dell’utilizzo del load balancer. Paghi per la dimensione più alta tra:

  1. Nuove connessioni al secondo - 25 connessioni/sec = 1 LCU
  2. Connessioni attive al minuto - 3.000 connessioni = 1 LCU
  3. Throughput processato - 1 GB/ora = 1 LCU (solo per HTTP/HTTPS)
  4. Rule evaluations - 1.000 valutazioni/sec = 1 LCU

La dimensione che consuma più LCU è quella che paghi.

Esempio Pratico LCU: Sito Web E-commerce di Media Dimensione

Scenario tipico di un sito e-commerce:

  • 50 nuove connessioni/secondo
  • 5.000 connessioni attive al minuto
  • 2 GB/ora di traffico
  • 100 valutazioni regole/secondo

Calcolo LCU:

  1. Connessioni nuove: 50 / 25 = 2 LCU
  2. Connessioni attive: 5.000 / 3.000 = 1,67 LCU
  3. Throughput: 2 / 1 = 2 LCU
  4. Rule evaluations: 100 / 1.000 = 0,1 LCU

LCU effettivi = max(2, 1.67, 2, 0.1) = 2 LCU

Costo mensile LCU (esempio):

2 LCU × $0,008 × 730 ore = ~$11,68 al mese

Costo totale ALB per questo scenario (esempio indicativo):

Costo orario: ~$16,43
Costo LCU: ~$11,68
─────────────────────
TOTALE: ~$28,11 al mese

Esempio Pratico LCU: Applicazione Enterprise ad Alto Traffico

Scenario applicazione ad alto traffico:

  • 200 nuove connessioni/secondo
  • 20.000 connessioni attive al minuto
  • 10 GB/ora di traffico
  • 500 valutazioni regole/secondo

Calcolo LCU:

  1. Connessioni nuove: 200 / 25 = 8 LCU
  2. Connessioni attive: 20.000 / 3.000 = 6,67 LCU
  3. Throughput: 10 / 1 = 10 LCU ← Dimensione dominante
  4. Rule evaluations: 500 / 1.000 = 0,5 LCU

LCU effettivi = 10 LCU

Costo mensile (esempio):

Costo orario: 730 × $0,0225 = ~$16,43
Costo LCU: 10 × $0,008 × 730 = ~$58,40
─────────────────────────────────────
TOTALE: ~$74,83 al mese (esempio)

3. Costi di Trasferimento Dati con AWS ALB

Buone notizie: nella maggior parte dei casi, non paghi trasferimento dati con Application Load Balancer!

Trasferimenti Gratuiti:

  • Traffico tra ALB e target nella stessa region → Gratis
  • Traffico in ingresso verso ALB → Gratis
  • Traffico in uscita verso internet → Pagato dai target, non da ALB

Trasferimenti a Pagamento:

  • Cross-region peering (ALB in eu-west-1, target in us-east-1) → ~$0,02/GB (verificare pricing)

Consiglio: Mantieni sempre Application Load Balancer e target nella stessa region AWS per evitare costi extra di trasferimento dati.

Riepilogo Costi AWS Application Load Balancer

Ecco una tabella riassuntiva per avere tutto chiaro (prezzi esempio basati su eu-west-1 - verificare sempre il pricing ufficiale):

Voce di Costo Prezzo Esempio Quando Si Paga
Ore ALB ~$0,0225/ora (~$16,43/mese) Sempre, finché ALB è attivo
LCU ~$0,008/LCU-ora In base all’uso effettivo
Trasferimento intra-region Gratis Mai
Trasferimento cross-region ~$0,02/GB Solo se target in region diverse
SSL/TLS certificates (ACM) Gratis Mai (se usi AWS Certificate Manager)

Calcolatore Rapido Costo Mensile

Formula semplice (basata su prezzi esempio):

Costo mensile ≈ $16,43 + (LCU_medi × $0,008 × 730)

Esempi indicativi (verificare pricing attuale):

  • Sito piccolo (1 LCU): ~$16,43 + ~$5,84 = ~$22,27/mese
  • Sito medio (3 LCU): ~$16,43 + ~$17,52 = ~$33,95/mese
  • Sito grande (10 LCU): ~$16,43 + ~$58,40 = ~$74,83/mese
  • Sito enterprise (50 LCU): ~$16,43 + ~$292 = ~$308,43/mese

AWS Application Load Balancer Free Tier: Cosa È Incluso?

Se hai un account AWS nuovo (nei primi 12 mesi), hai accesso al free tier di Application Load Balancer:

Cosa include il Free Tier:

  • 750 ore di Application Load Balancer al mese (1 ALB sempre acceso)
  • 15 LCU al mese

Cosa significa in pratica: Per il primo anno, puoi usare 1 Application Load Balancer con traffico moderato completamente gratis!

Calcolo free tier (1 mese, esempio):

Ore incluse: 750 ore (~$16,88 di valore)
LCU inclusi: 15 LCU (~2 LCU continui, ~$87,60 di valore)
─────────────────────────────────────────────────
Valore totale: ~$104 al mese GRATIS

Esempio scenario free tier: Un sito web con 2 LCU medi continui per 730 ore:

  • Costo ore: ~$16,43 → Coperto da free tier (750 ore)
  • Costo LCU: 2 × 730 = 1.460 LCU → 1.460 LCU - 15 = 1.445 LCU da pagare

Ops! Il free tier di 15 LCU totali al mese non copre 1.460 LCU-ore.

Correzione calcolo: Free tier = 15 LCU al mese significa:

  • Se usi 1 LCU costante → copre 15 ore
  • Se usi 0,5 LCU costante → copre 30 ore
  • Se usi 2 LCU costante → copre 7,5 ore

Per sito con 2 LCU medi (esempio):

LCU consumati: 2 × 730 = 1.460 LCU-ore
LCU gratuiti: 15 LCU-ore
LCU da pagare: 1.445 LCU-ore × $0,008 = ~$11,56

Totale primo anno (con free tier ore, esempio):
$0 (ore) + ~$11,56 (LCU) = ~$11,56/mese invece di ~$28,11
Risparmio esempio: ~$16,55/mese per 12 mesi = ~$198,60!

Nota: I prezzi sono esempi indicativi e potrebbero variare. Verifica sempre il pricing ufficiale AWS per calcoli precisi.

Domande Frequenti su AWS Application Load Balancer

Quanto costa AWS Application Load Balancer per un piccolo sito web?

Per un piccolo sito con traffico moderato (1-2 LCU medi), Application Load Balancer costa indicativamente circa $22-30 al mese (verificare pricing ufficiale). Con il free tier nei primi 12 mesi, il costo può scendere significativamente.

Come posso ridurre i costi LCU di Application Load Balancer?

Le strategie principali includono:

  • Abilitare HTTP/2 per ridurre nuove connessioni
  • Usare CloudFront per contenuti statici (riduce throughput)
  • Ridurre idle timeout per diminuire connessioni attive
  • Semplificare le regole di routing (meno valutazioni)
  • Consolidare più applicazioni su un singolo ALB

Posso condividere un ALB tra più applicazioni?

Assolutamente sì! È una best practice consigliata. Usa path-based routing o host-based routing per instradare traffico a target group diversi sullo stesso ALB.

Cosa sono gli LCU e come si calcolano?

LCU (Load Balancer Capacity Units) misurano l’uso effettivo del load balancer. Si basano su 4 dimensioni: nuove connessioni/sec, connessioni attive, throughput, e rule evaluations. Paghi per la dimensione più alta.

ALB supporta WebSocket?

Sì! ALB supporta nativamente WebSocket e connessioni HTTP/2. Ricorda di aumentare l’idle timeout a 300-3600 secondi per WebSocket long-lived connections.

Posso usare ALB con container Docker?

Assolutamente. ALB si integra perfettamente con ECS e EKS. Puoi usare dynamic port mapping e service discovery automatico.

I certificati SSL/TLS costano extra con ALB?

No! Se usi AWS Certificate Manager (ACM), i certificati sono completamente gratuiti. ALB gestisce automaticamente il TLS termination.

ALB supporta IPv6?

Sì, ALB supporta sia IPv4 che IPv6 nativamente. Puoi abilitare dual-stack senza costi aggiuntivi.

Come funziona l’integrazione ALB con Auto Scaling?

ALB si integra automaticamente con Auto Scaling Groups. Quando nuove istanze vengono lanciate, ALB le registra automaticamente e inizia a inviare traffico dopo gli health check.

Posso usare ALB con Lambda functions?

Sì! Puoi registrare Lambda functions come target in un target group. ALB invocherà la tua Lambda per ogni richiesta HTTP.

ALB protegge da attacchi DDoS?

ALB include protezione base contro alcuni attacchi Layer 7, ma per protezione DDoS completa dovresti usare AWS Shield Standard (incluso gratis) o Shield Advanced (a pagamento).

Posso limitare l’accesso ad ALB per IP specifici?

Sì, tramite Security Groups puoi limitare quali IP possono accedere ad ALB. Puoi anche usare AWS WAF per regole più complesse.

Come monitoro le performance di ALB?

Usa CloudWatch metrics inclusi gratuitamente: TargetResponseTime, RequestCount, HTTPCode_Target_4XX_Count, HealthyHostCount, UnHealthyHostCount, e ConsumedLCUs.

Risorse Utili

Documentazione ufficiale AWS:

Tool utili per ALB:

  • AWS CloudWatch - Monitoring e metriche in tempo reale
  • AWS Cost Explorer - Analisi dei costi ALB
  • AWS Certificate Manager (ACM) - Certificati SSL/TLS gratuiti

Hai domande su AWS ALB o vuoi aiuto con la configurazione? Lascia un commento qui sotto!

Spiegazione piu che perfetta, in poco tempo mi avete chiarito un pò di concetti.. grazie!

1 Mi Piace