“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.