- Pubblicato il
Cos’è AWS Lambda? Calcolo serverless per le applicazioni
- Autori
Cos’è AWS Lambda? Calcolo serverless per le applicazioni
Eseguire codice backend significa tradizionalmente predisporre server, dimensionare le risorse e gestire la disponibilità.
Con AWS Lambda, puoi eseguire codice senza gestire alcuna infrastruttura, pagando solo ciò che usi.
Cos’è AWS Lambda?
AWS Lambda è un servizio di calcolo serverless di Amazon Web Services.
Invece di eseguire applicazioni su server dedicati, scrivi funzioni che vengono eseguite in risposta a eventi come:
- Richieste HTTP tramite Amazon API Gateway
- Caricamenti di file su Amazon S3
- Aggiornamenti del database in Amazon DynamoDB
- Attività pianificate (cron job) tramite Amazon EventBridge o Amazon CloudWatch Events
Il codice viene eseguito all’interno di container effimeri gestiti interamente da AWS.
Ti basta fornire il codice della funzione e la configurazione. Lambda si occupa del resto.
Perché usare AWS Lambda?
- Nessuna gestione dei server → Non serve predisporre, aggiornare o scalare server.
- Scalabilità automatica → Esegue istantaneamente tutte le istanze necessarie, da una richiesta a migliaia al secondo.
- Pagamento a consumo → Paghi solo il tempo di calcolo (millisecondi) e le richieste, non il tempo di inattività.
- Supporto per più linguaggi e ambienti → Node.js, Python, Java, Go, Ruby, .NET e runtime personalizzati.
- Integrazione semplice → Funziona senza difficoltà con Amazon S3, Amazon DynamoDB, Amazon SNS, Amazon API Gateway e altri servizi AWS.
- Alta disponibilità integrata → Viene eseguito in più zone di disponibilità per garantire la tolleranza ai guasti.
Casi d’uso comuni
- API web → Combina Lambda con Amazon API Gateway per creare API REST o GraphQL serverless.
- Elaborazione di file → Elabora automaticamente immagini, video o documenti dopo i caricamenti su Amazon S3.
- Attività pianificate → Sostituisci i server cron con Amazon CloudWatch Events o Amazon EventBridge per eseguire attività periodiche.
- Chatbot e microservizi → Esegui su larga scala logica backend leggera e guidata dagli eventi usando servizi come Amazon SNS o Amazon SQS.
AWS Lambda e server tradizionali a confronto
- Server tradizionali → Richiedono provisioning, monitoraggio e dimensionamento per il carico di picco usando servizi come Amazon EC2.
- AWS Lambda → Completamente gestito, scala automaticamente e addebita solo il tempo di esecuzione.
Limiti e aspetti da considerare
- Avvii a freddo → Le funzioni non invocate di recente possono subire un breve ritardo (un “avvio a freddo”) quando AWS avvia un nuovo container.
- Timeout → Ogni invocazione ha un tempo massimo di esecuzione (attualmente 15 minuti). Le attività di lunga durata potrebbero richiedere un servizio diverso come Amazon ECS o Amazon EC2.
- Limiti di memoria e CPU → L’allocazione di memoria arriva a pochi GB (attualmente 10 GB), con CPU proporzionale alla memoria. I carichi di calcolo intensivi possono raggiungere questi limiti.
- Storage effimero → Lo storage
/tmppredefinito è limitato (512 MB per impostazione predefinita, espandibili a 10 GB), quindi i file temporanei di grandi dimensioni richiedono storage esterno come Amazon S3 o Amazon EFS. - Dipendenza dal fornitore → La profonda integrazione con i servizi AWS può rendere più difficile migrare verso un altro fornitore cloud.
- Vincoli di rete → Accedere a risorse all’interno di una VPC rende la configurazione più complessa e può aumentare la latenza degli avvii a freddo.
- Complessità del debug → Il debug locale e il tracciamento possono essere più difficili rispetto a un ambiente server tradizionale.
Conclusione
AWS Lambda permette agli sviluppatori di creare applicazioni guidate dagli eventi senza gestire server.
Che ti serva un backend rapido per un’app web, un elaboratore di file in tempo reale o una pipeline di dati, Lambda offre calcolo su richiesta che scala automaticamente.