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:

    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

    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 /tmp predefinito è 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.