Caratteristiche di AWS Lambda

Perché scegliere AWS Lambda?

AWS Lambda è un servizio di elaborazione serverless che esegue il tuo codice, in risposta a determinati eventi, oltre a gestire automaticamente le risorse di calcolo in uso al tuo posto. Tra questi eventi, sono incluse modifiche di stato o un aggiornamento, come l'inserimento di un elemento in un carrello su un sito web e-commerce da parte dell'utente. È possibile utilizzare AWS Lambda per estendere altri servizi AWS con logica personalizzata, oppure per creare propri servizi di back-end in grado di sfruttare la scalabilità, le prestazioni e la sicurezza di AWS. AWS Lambda può eseguire automaticamente il codice in risposta a eventi multipli, come richieste HTTP tramite Gateway Amazon API, modifiche agli oggetti in bucket Amazon Simple Storage Service (Amazon S3), l’aggiornamento di tabelle in Amazon DynamoDB e le transizioni di stato in AWS Step Functions.

Lambda esegue il tuo codice su un'infrastruttura di calcolo ad elevata disponibilità ed esegue tutte le attività di amministrazione delle risorse di calcolo. Tra queste, la manutenzione del server e del sistema operativo, il provisioning della capacità e la scalabilità automatica, l'implementazione di codici e patch di sicurezza e il monitoraggio e la registrazione di codici. Tutto quello che devi fare è fornire il codice.

Funzionalità chiave del prodotto

AWS Lambda ti permette di aggiungere logica personalizzata a risorse AWS quali bucket Amazon S3 e tabelle Amazon DynamoDB, semplificando l'operazione di calcolo ai dati, man mano che questi vengono inseriti o spostati nel cloud.

Iniziare a usare AWS Lambda è facile. Prima di tutto, devi creare la funzione caricando il codice (o creandola direttamente dalla console di Lambda) e scegliendo la memoria, il periodo di timeout e il ruolo AWS Identity and Access Management (IAM). Devi quindi specificare la risorsa AWS per l'attivazione della funzione, che può essere un bucket Amazon S3, una tabella Amazon DynamoDB o un flusso Amazon Kinesis specifico. Al variare della risorsa, Lambda eseguirà la tua funzione, avvierà e gestirà le risorse di calcolo necessarie in base alle richieste in entrata.

É possibile usare AWS Lambda per creare nuovi servizi di back-end per le tue applicazioni, attivati on demand usando l'interfaccia del programma dell'applicazione (API) di Lambda o endpoint API personalizzati creati con Amazon API Gateway. Lambda elabora eventi personalizzati invece di gestirli nel client, aiutandoti a evitare variazioni della piattaforma client, ridurre il consumo delle batterie e abilitare facilmente gli aggiornamenti.

Con AWS Lambda non è necessario imparare a usare nuovi linguaggi, strumenti o framework. É possibile usare qualsiasi libreria di terza parte, anche quelle native. È possibile inoltre suddividere qualsiasi codice in pacchetti (framework, SDK, librerie e molto altro) come Lambda Layer, e gestirli e condividerli facilmente tra diverse funzioni. Lambda offre supporto nativo a codici Java, Go, PowerShell, Node.js, C#, Python e Ruby e fornisce un'API Runtime che consente di utilizzare qualsiasi lingua di programmazione aggiuntiva per creare le tue funzioni.

AWS Lambda gestisce tutta l'infrastruttura per l'esecuzione del codice su infrastrutture in un ambiente a elevata disponibilità e con tolleranza ai guasti, permettendoti di concentrarti sulla creazione di servizi di back-end differenziati. Con Lambda non devi mai aggiornare il sistema operativo sottostante quando viene rilasciata una nuova patch, né preoccuparti di dimensionare o aggiungere nuovi server in base all'incremento dell'utilizzo. AWS Lambda implementa in modo ottimale il codice, si occupa di tutte le attività di amministrazione, manutenzione e applicazione di patch di sicurezza e fornisce registrazione e monitoraggio integrati tramite Amazon CloudWatch.

AWS Lambda gestisce la capacità di calcolo tra più zone di disponibilità in ogni regione AWS, per agevolare la protezione del codice da errori di singoli computer o di strutture di data center. Sia AWS Lambda sia le funzioni in esecuzione nel servizio offrono prestazioni operative prevedibili e affidabili. Il servizio AWS Lambda è progettato per offrire elevata disponibilità per il servizio stesso e per le funzioni da esso gestite. Non sono previsti finestre di manutenzione o tempi di inattività pianificati.

AWS Lambda supporta funzioni di creazione di pacchetti e distribuzione come, per esempio, immagini container, semplificando per i clienti la creazione di applicazioni basate su Lambda attraverso strumenti, flussi di lavoro e dipendenze consueti per le immagini container. Inoltre, i clienti traggono vantaggio dalla semplicità operativa, dalla scalabilità automatica con tempi di avvio inferiori al secondo, dall'elevata disponibilità, dal modello di pagamento a consumo, dalle integrazioni native con 200 servizi AWS e applicazioni SaaS offerti da AWS Lambda. I clienti aziendali possono utilizzare un set consistente di strumenti con le loro applicazioni Lambda e containerizzate per i requisiti di governance centrale come la scansione della sicurezza e la firma delle immagini.

AWS Lambda richiama il codice solo se necessario, e si dimensiona automaticamente per supportare la frequenza delle richieste in entrata, senza alcuna necessità di configurazione manuale. Il codice può gestire un numero illimitato di richieste. AWS Lambda generalmente inizia a eseguire il codice impostato entro pochi millisecondi dall'evento che lo attiva. Poiché Lambda scala automaticamente, le prestazioni rimangono costantemente elevate all'aumentare della frequenza degli eventi. Poiché il codice è senza stato, Lambda può avviare tutte le istanze necessarie senza implementazioni pprolungate o ritardi di configurazione.

Utilizza Server proxy per Amazon RDS per sfruttare i pool di connessione completamente gestiti per i database relazionali. RDS Proxy gestisce in modo efficace migliaia di connessioni contemporanee a database relazionali, facilitando la creazione di applicazioni serverless altamente scalabili, sicure e basate su Lambda, che non hanno bisogno di interagire con i database relazionali. Attualmente, RDS Proxy offre il supporto per MySQL e Aurora. È possibile utilizzare RDS Proxy per le applicazioni serverless attraverso la console Amazon RDS o la console AWS Lambda.

Provisioned Concurrency ti offre un maggiore controllo sulle prestazioni dell'applicazione serverless. Quando è abilitata, Provisioned Concurrency mantiene le funzioni inizializzate e pronte a reagire in meno di cento millisecondi. Provisioned Concurrency è ideale per qualsiasi applicazione creata utilizzando AWS Lambda che richiede maggiore controllo sul tempo di avvio delle funzioni. Configura facilmente e imposta la concorrenza delle necessità di applicazione. Aumenta, diminuisci o disattivala completamente, in base alla domanda. Provisioned Concurrency è uno strumento efficace per ottenere prestazioni costanti per applicazioni sensibili alla latenza senza richiedere la gestione di risorse di elaborazione o la modifica del codice.

Con Amazon Elastic File System (EFS) per AWS Lambda puoi leggere, scrivere e conservare in modo sicuro grandi volumi di dati a bassa latenza, a qualsiasi scala. Non è necessario scrivere il codice ed eseguire il download dei i dati nella memoria temporanea per elaborarli. Ciò consente di risparmiare tempo e semplifica il codice, consentendoti di focalizzarti sulla logica di business. EFS per Lambda è ideale per vari casi d'uso come processare o eseguire il backup di grandi volumi di dati, e caricare grandi file o modelli di riferimento. Attraverso EFS per AWS Lambda, è anche possibile condividere file tra istanze serverless o applicazioni basate su container, o anche eseguire inferenze machine learning (ML).

Con Lambda@Edge, AWS Lambda può eseguire il codice nelle sedi AWS a livello globale, in risposta ad eventi di Amazon CloudFront, come richieste di contenuti da o verso server di origine e visualizzatori. Questo facilita la fornitura di contenuti più ricchi e personalizzati agli utenti finali, con una minore latenza. 

Crea flussi di lavoro AWS Step Functions per coordinare più funzioni AWS Lambda per processi complessi o di lunga esecuzione. Step Functions ti consente di definire flussi di lavoro che attivano la raccolta di funzioni Lambda utilizzando fasi sequenziali, parallele, di branching e di gestione di errori. Con Step Functions e Lambda puoi costruire processi stateful di lunga esecuzione per applicazioni e back-end.

Il software development kit (SDK) integrato in AWS Lambda si integra con AWS Identity and Access Management (IAM) per garantire ad altri servizi AWS un accesso sicuro al codice. Come impostazione di default, AWS Lambda esegue il codice in un Amazon Virtual Private Cloud (VPC). É possibile configurare, in modo opzionale, l'accesso alle risorse AWS Lambda dietro il VPC per sfruttare liste di controllo di accessi di rete e gruppi di sicurezza personalizzati. Ciò fornisce alle tue risorse nel VPC un accesso sicuro alle funzioni Lambda. AWS Lambda è conforme a SOCHIPAAPCIISO. Per le informazioni più recenti sulla preparazione per certificazioni e conformità Lambda, consulta i servizi completi coperti.

Code Signing per AWS Lambda permette di verificare che nelle funzioni Lambda venga distribuito solo un codice inalterato pubblicato da sviluppatori approvati. Puoi semplicemente creare artefatti di codice con firma digitale e configurare le funzioni Lambda per verificare le firme durante l'implementazione. Questo incrementa la velocità e l'agilità dello sviluppo dell'applicazione, anche all'interno di grandi team di sviluppo, applicando elevati standard di sicurezza.

Con AWS Lambda, i prezzi sono calcolati sulla durata di esecuzione piuttosto che per unità di server. Utilizzando le funzioni Lambda, i prezzi sono calcolati solo in base alle richieste eseguite e al tempo di calcolo richiesto per l'esecuzione del codice. L'addebito dei costi è calcolato in incrementi di un millisecondo, consentendo e facilitando una scalabilità automatica economica e conveniente, da poche richieste al giorno a migliaia per secondo. Con Provisioned Concurrency, i prezzi sono calcolati sulla quantità di concorrenza configurata e sull'arco di tempo in cui viene configurata. Quando Provisioned Concurrency è abilitata ed una funzione viene eseguita, i prezzi sono calcolati sulle richieste e sulla durata dell'esecuzione. Per ulteriori informazioni sui prezzi, consulta i prezzi di AWS Lambda.

Una volta scelta la quantità di memoria su cui allocare alle tue funzioni, AWS Lambda assegna in modo proporzionale la potenza della CPU, la larghezza di banda di rete e l'input/output (I/O) su disco.

Le estensioni AWS Lambda consentono una facile integrazione con i tuoi strumenti preferiti di monitoraggio, osservabilità, sicurezza e governance. Lambda richiama la tua funzione in un ambiente di esecuzione, che fornisce un tempo di esecuzione sicuro ed isolato nel momento in cui il codice viene eseguito. Le estensioni Lambda vengono eseguite all'interno dell'ambiente di esecuzione di Lambda, assieme al codice della funzione. Le estensioni Lambda possono utilizzare l'API di telemetria AWS Lambda per acquisire informazioni diagnostiche granulari, come log, parametri e tracce, direttamente da Lambda e inviarle a una destinazione a tua scelta. Puoi anche utilizzare le estensioni per integrare i tuoi agenti di sicurezza preferiti in Lambda, il tutto senza sovraccarico operativo e con un impatto minimo sulle prestazioni delle tue funzioni.

Le funzioni di AWS Lambda in esecuzione su Graviton2, utilizzando un'architettura del processore basato su Arm, progettato da AWS, forniscono una migliore prestazione di prezzo fino al 34%, confrontata con le funzioni in esecuzione su processori x86. Ciò si applica ad una varietà di carichi di lavoro serverless, come i back-end Web e mobili, i dati e l'elaborazione media. Con una latenza minore, migliori prestazioni fino al 19%, un prezzo più basso del 20% e l'efficienza a più alta potenza attualmente disponibile presso AWS, le funzioni di Graviton2 possono essere utilizzate per potenziare le applicazioni serverless essenziali per l'organizzazione.

AWS Lambda offre funzionalità di monitoraggio integrate attraverso l’acquisizione e l’invio automatico di log, metriche e tracce ai servizi di monitoraggio e osservabilità AWS come Amazon CloudWatch e AWS X-Ray. Lambda offre anche funzionalità di monitoraggio avanzate come Live Tail, che consente di visualizzare e analizzare i log in tempo reale, controlli di registrazione avanzati che consentono di acquisire i log in modo nativo in formato strutturato JSON, controllare il filtro a livello di log senza apportare modifiche al codice e personalizzare il gruppo di log CloudWatch a cui Lambda invia i log. Con Application Signals, Lambda offre uno strumento di monitoraggio delle prestazioni delle applicazioni (APM) pronto all'uso per monitorare il throughput, la disponibilità, la latenza, i guasti e gli errori nelle applicazioni serverless. Lambda Insights acquisisce automaticamente metriche dettagliate tra cui memoria, CPU e utilizzo della rete, offrendo maggiori approfondimenti sulle prestazioni della funzione Lambda. Inoltre, Lambda supporta la perfetta l’integrazione ottimizzata con strumenti di monitoraggio di terzi tramite le estensioni Lambda, semplificando così l'utilizzo degli strumenti preferiti per il monitoraggio e la risoluzione dei problemi delle applicazioni serverless.