AWS Lambda vs EC2: quando scegliere serverless e quando no
Lambda non è sempre la risposta giusta. Analizziamo quando il serverless è la scelta migliore e quando EC2 (o ECS) resta più conveniente.
“Lambda is the future” — è una frase che ho sentito decine di volte. Vero in molti casi, ma non sempre. Vediamo quando il serverless conviene davvero.
Quando scegliere Lambda
- Carichi sporadici o imprevedibili: paghi solo per i ms di esecuzione.
- Event-driven: trigger da S3, SQS, EventBridge, API Gateway.
- Microservizi piccoli e isolati: meno di 15 minuti di esecuzione, fino a 10 GB di memoria.
- Vuoi zero gestione infrastruttura: niente patching, niente scaling manuale.
Quando scegliere EC2 (o ECS)
- Carichi continui ad alta CPU: oltre una certa soglia di utilizzo, EC2 con Reserved Instances o Savings Plan costa meno di Lambda.
- Esecuzioni lunghe: oltre 15 minuti.
- Workload stateful o con dipendenze pesanti: container Docker complessi, JVM con warm-up significativo.
- Connessioni persistenti: WebSocket, gRPC streaming, database connection pool.
Il punto di rottura
Una regola empirica: se la tua utilization media supera il 60-70% su un’istanza always-on, EC2 batte Lambda sui costi. Sotto, Lambda quasi sempre vince.
Architetture ibride
Spesso la risposta giusta è entrambi: EC2/ECS per il core sempre acceso, Lambda per i job event-driven (es. processing di upload S3, automazioni di sistema). Non è una scelta esclusiva.
In sintesi
Non innamorarti del paradigma: scegli in base a profilo di carico, durata e costo totale di proprietà. Il “best service” dipende dal contesto, non dal trend.