View a markdown version of this page

Scelta di un AWS servizio serverless - AWS Guide decisionali

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Scelta di un AWS servizio serverless

Scopo

Aiutaci a determinare quali servizi AWS serverless sono più adatti al tuo carico di lavoro.

Ultimo aggiornamento

4 settembre 2026

Pubblico

Sviluppatori e architetti che stanno valutando i servizi AWS serverless per carichi di lavoro nuovi o esistenti.

Servizi coperti

Introduzione

Con i servizi AWS serverless, è possibile creare ed eseguire applicazioni senza effettuare il provisioning o la gestione dei server. Paghi solo per le risorse che consumi e i servizi si scalano automaticamente in base alla domanda.

AWS offre opzioni serverless per l'elaborazione, la gestione delle API, l'integrazione delle applicazioni, l'orchestrazione e l'archiviazione dei dati, che puoi utilizzare per assemblare applicazioni complete a partire da servizi gestiti. È possibile creare applicazioni che vanno dai microservizi che gestiscono la logica aziendale discreta come parte del backend applicativo, ai flussi di lavoro basati sugli eventi che eseguono trasformazioni o elaborazioni dei dati.

Servizi serverless di base raggruppati per categoria: elaborazione, livello API, integrazione delle applicazioni, archiviazione dei dati, distribuzione e osservabilità.

I framework applicativi tradizionali raggruppano routing, accesso ai dati e integrazioni in un'unica base di codice scalabile e gestibile come un'unica unità. Questo approccio funziona bene per iniziare rapidamente e framework come Express, Django e Spring Boot forniscono strumenti familiari che aumentano la produttività iniziale. Tuttavia, man mano che le applicazioni crescono e si affidano a più sistemi esterni, la complessità aumenta. Il modello monolitico rende difficile la scalabilità delle singole funzionalità e rallenta sia lo sviluppo che la risoluzione dei problemi. Lo sviluppo serverless affronta queste sfide componendo servizi indipendenti che gestiscono ciascuno una funzione specifica. Invece di creare modelli distribuiti comuni partendo da zero, utilizzate AWS servizi appositamente progettati per code, bus di eventi, orchestrazione e API. publish/subscribe

Esistono modelli consolidati nelle architetture distribuite, tra cui code, bus di eventi, orchestrazione, API e flussi di eventi publish/subscribe, che puoi implementare utilizzando servizi creati appositamente anziché creare da zero. AWS Quando l'applicazione richiede uno di questi modelli, utilizza il servizio corrispondente: AWS

Pattern

AWS servizio

Queue

Amazon SQS

Router di eventi

Amazon EventBridge

Publish/subscribe (uscita ventola)

Amazon SNS

Orchestrazione

Funzioni Step

"Hello, World!"

Gateway Amazon API

Flussi di eventi

Amazon Kinesis

Questa guida ti aiuta a selezionare i servizi e gli strumenti AWS serverless più adatti ai tuoi modelli di carico di lavoro e ai requisiti organizzativi.

Comprendi

Questi servizi comunicano tramite eventi, che sono messaggi che rappresentano un cambiamento di stato. Ad esempio, quando un cliente carica una foto su Amazon S3, Amazon S3 pubblica un evento che attiva una funzione Lambda per generare una miniatura, senza che il servizio di caricamento debba conoscere il servizio di anteprima. Puoi anche gestire attività di lunga durata in modo asincrono. Ad esempio, puoi implementare una coda utilizzando Amazon SQS per gestire l'invio degli ordini. Quindi utilizza Step Functions per gestire un flusso di lavoro che aggiorna le informazioni sugli utenti e il conteggio dell'inventario dopo l'elaborazione di ogni ordine. Lungo il percorso, utilizzi Amazon CloudWatch per registrare le azioni, monitorare l'attività delle applicazioni e AWS X-Ray tracciare i flussi di dati per il debug. I produttori di eventi non hanno bisogno di sapere quali servizi a valle risponderanno. Questo disaccoppiamento consente a ciascun componente di scalare, implementare ed evolversi in modo indipendente. Per informazioni sui vantaggi di un'architettura disaccoppiata, vedi Cos'è l'EDA (Architettura)? Event-Driven .

Architettura serverless basata sugli eventi con Lambda al centro, connessa tramite eventi all'intero ecosistema di servizi serverless.

Le sezioni seguenti descrivono i servizi disponibili in ciascuna categoria di un'architettura serverless e per cosa sono ottimizzati.

Serverless compute
  • Lambda Event Functions: esegue il codice in risposta agli eventi senza effettuare il provisioning dei server. Le funzioni relative agli eventi si scalano automaticamente da zero a migliaia di esecuzioni simultanee e si addebitano per richiesta e durata dell'esecuzione. Ottimizzato per carichi di lavoro di breve durata basati su eventi con una durata massima di 15 minuti per chiamata. Lambda supporta anche lo streaming delle risposte per la fornitura progressiva dei risultati, utile per l'intelligenza artificiale generativa e le risposte con payload di grandi dimensioni. Per i flussi di lavoro che devono durare più a lungo, le funzioni Lambda durable mantengono automaticamente lo stato su più invocazioni, consentendo esecuzioni di lunga durata pur rimanendo entro il limite di tempo per chiamata.

  • Lambda MicroVMS: un fattore di forma di elaborazione diverso nell'ambito del servizio Lambda, distinto dalle funzioni di evento in termini di timeout, modello di programmazione, modello di concorrenza e fatturazione. I MicroVM eseguono ambienti di esecuzione isolati e con stato per utente o codice. AI-generated Ogni MicroVM fornisce VM-level l'isolamento basato su Firecracker con funzionalità complete del sistema operativo (installazione di pacchetti, montaggio di file system), avvio rapido basato su istantanee e una durata fino a 8 ore. Le MicroVM supportano la sospensione e la ripresa per ridurre i costi di inattività preservando al contempo lo stato della memoria e del disco, i protocolli di ascolto delle porte (HTTP/2, gRPC WebSocket) e l'allocazione flessibile delle risorse con una capacità di base che può aumentare fino a 4 volte durante i picchi di attività. A differenza di Event Functions, le MicroVM utilizzano un modello di programmazione e allocano un ambiente per sessione anziché scalare per richiesta Dockerfile-based . Adatto per sandbox di codifica AI, ambienti di sviluppo interattivi, notebook per l'analisi dei dati, esecutori CI multi-tenant, scansione di sicurezza, ambienti di reinforcement learning e server di gioco. Ogni microVM ottiene un endpoint HTTPS dedicato senza richiedere sistemi di bilanciamento del carico o infrastruttura di ingresso e supporta reti di uscita configurabili per l'accesso VPC e la connettività Internet pubblica.

  • AWS Fargate: esegui contenitori senza gestire server o cluster. Fargate gestisce il provisioning e il ridimensionamento dell'elaborazione per carichi di lavoro containerizzati. Adatto per servizi a lunga durata, elaborazione in batch o carichi di lavoro che richiedono runtime personalizzati e controllo granulare delle risorse.

Suggerimento

Per un confronto più approfondito tra le opzioni di elaborazione serverless, vedi o? AWS FargateAWS Lambda

API layer
  • API HTTP Amazon API Gateway: routing API leggero e a basso costo ottimizzato per backend Lambda e HTTP con distribuzioni automatiche.

  • API REST di Amazon API Gateway: gestione delle Full-featured API con convalida delle richieste, streaming delle risposte, caching, integrazione AWS WAF, piani di utilizzo, chiavi API ed endpoint privati.

  • AWS AppSync: servizio GraphQL gestito con abbonamenti in tempo reale, sincronizzazione offline e integrazione automatica delle fonti di dati (DynamoDB, Lambda, HTTP). Ideale per app mobili e web con requisiti di dati complessi. AWS AppSync Events fornisce WebSocket API serverless per la publish/subscribe messaggistica in tempo reale, consentendo alle applicazioni di pubblicare e sottoscrivere eventi su un'unica WebSocket connessione con integrazioni di origini dati per l'elaborazione degli eventi pubblicati.

  • URL delle funzioni Lambda: endpoint HTTPS dedicati per singole funzioni Lambda senza API Gateway. Adatto per microservizi o webhook a funzione singola in cui non sono necessarie funzionalità di gestione delle API.

  • API Amazon WebSocket API Gateway: connessioni persistenti e bidirezionali tra client e servizi di backend. Utilizzabile per applicazioni di chat, dashboard in tempo reale, giochi multiplayer o piattaforme di trading finanziario in cui il server deve inviare i dati ai clienti senza effettuare polling.

Application integration
  • Amazon Simple Queue Service: coda di messaggi completamente gestita per disaccoppiare i servizi. Supporta le code standard (ordine minimo una volta, con la massima efficienza) e FIFO (exactly-once, strict ordering). Da utilizzare per il buffering, il livellamento del carico e l'elaborazione asincrona.

  • Amazon Simple Notification Service: Publish/subscribe messaggistica per fan-out a più abbonati (Lambda, Amazon SQS, HTTP, email, SMS). Da utilizzare quando un evento deve attivare più azioni downstream. Supporta il filtraggio dei messaggi con criteri di filtro degli abbonamenti che includono la corrispondenza con caratteri jolly e prefissi, consentendo agli abbonati di ricevere solo i messaggi pertinenti senza una logica di filtro personalizzata.

  • Amazon EventBridge: bus di eventi serverless per il routing di eventi da AWS servizi, app SaaS e fonti personalizzate utilizzando regole di filtro basate sui contenuti. Utilizzabile per architetture basate sugli eventi con routing complesso o integrazioni di terze parti.

Suggerimento

Per un confronto più approfondito, vedi Amazon SQS, Amazon SNS o Amazon? EventBridge

Orchestration
  • AWS Step Functions Flussi di lavoro standard: coordina i processi in più fasi con un'esecuzione esatta, cronologia completa delle esecuzioni e durata fino a un anno. Utilizzalo per l'elaborazione degli ordini, le approvazioni umane e le pipeline ETL.

  • AWS Step Functions Flussi di lavoro rapidi: High-volume orchestrazione di breve durata (fino a 5 minuti) con esecuzione almeno una volta. Utilizzalo per l'acquisizione di dati IoT, le trasformazioni in streaming e l'elaborazione di eventi ad alta velocità.

Step Functions supporta variabili per l'assegnazione dei dati in uno stato e il loro utilizzo negli stati successivi e le trasformazioni JSonata per la manipolazione avanzata dei dati, inclusa la formattazione della data e le operazioni matematiche. Queste funzionalità semplificano la condivisione dei dati tra gli stati e riducono la necessità di fasi di elaborazione intermedie. Per l'elaborazione in batch su larga scala, Distributed Map esegue lo stesso processo su milioni di elementi provenienti da set di dati Amazon S3, Athena o JSON in parallelo senza il provisioning dell'infrastruttura di calcolo.

Data storage
  • Amazon DynamoDB: database di chiave-valore e documenti NoSQL serverless con tempi di risposta in millisecondi a una cifra su qualsiasi scala. Non è necessario alcun pool di connessioni. Utilizzalo per l'accesso ai dati ad alta velocità e bassa latenza con schemi flessibili.

  • Amazon Simple Storage Service: storage di oggetti con capacità illimitata. Utilizzabile per lo storage di file, i data lake, gli asset statici e l'elaborazione basata sugli eventi (Amazon S3 attiva Lambda al momento del caricamento).

  • Amazon Aurora Serverless: database relazionale con scalabilità automatica compatibile con On-demand MySQL e PostgreSQL. Utilizzalo quando hai bisogno di semantica SQL, join complessi o transazioni ACID con scalabilità serverless.

Suggerimento

Per un confronto più approfondito, vedi Scelta di un servizio di AWS database.

Deployment and infrastructure as code
  • AWS Serverless Application Model: CloudFormation estensione con sintassi abbreviata per Lambda, API Gateway, DynamoDB e Step Functions. Include test locali tramite SAM CLI. Ideale per le applicazioni serverless-first.

  • Kit di sviluppo per il cloud AWS (AWS CDK): Definisci l'infrastruttura utilizzando i linguaggi di programmazione (PythonTypeScript, Java, C#, Go). Ideale per applicazioni complesse che traggono vantaggio da loop, condizionali e costrutti riutilizzabili.

  • Terraform: Multi-cloud Utilizzo di IaC. HashiCorp Configuration Language (HCL) Ideale per i team di piattaforma che gestiscono l'infrastruttura tra diversi provider.

Observability
  • Amazon CloudWatch: metriche, registri, allarmi e dashboard per il monitoraggio delle funzioni Lambda, API Gateway e altri servizi.

  • AWS X-Ray: Tracciamento distribuito per comprendere il flusso di richieste tra funzioni Lambda e servizi integrati. Essenziale per il debug di architetture basate sugli eventi.

Suggerimento

Per un confronto più approfondito, vedi Scelta di un servizio di monitoraggio e osservabilità. AWS

Considera

Ecco alcuni fattori chiave da considerare nella scelta dei servizi AWS serverless. La scelta della combinazione giusta implica il bilanciamento di questi fattori in base ai modelli di carico di lavoro, ai requisiti tecnici e agli obiettivi organizzativi. Ciò consente di ottimizzare prestazioni, costi e semplicità operativa.

Workload pattern

La comprensione del modello operativo dell'applicazione è il fattore più importante nella scelta dei servizi serverless. Modelli di carico di lavoro diversi richiedono diverse combinazioni di servizi. L'elaborazione dei dati senza server rientra in gran parte nei seguenti schemi:

  • Elaborazione asincrona: elaborazione di file, manipolazione di immagini, trasformazioni batch e webhook. Questi carichi di lavoro elaborano eventi che non richiedono una risposta immediata e traggono vantaggio dalle code per il buffering e dai fan-out per l'elaborazione parallela.

  • Sincrono request/response: API Web, backend mobili e microservizi. Questi carichi di lavoro richiedono un calcolo a bassa latenza che risponda alle singole richieste HTTP e sia scalabile con il traffico simultaneo.

  • Streaming: telemetria IoT, analisi click-stream, analisi in tempo reale ed elaborazione delle transazioni. Questi carichi di lavoro acquisiscono dati continui e ad alta velocità che devono essere elaborati quasi in tempo reale.

  • Orchestrazione: flussi di Multi-step approvazione, pipeline ETL e modelli di saga. Questi carichi di lavoro coordinano le attività con la logica di ramificazione, la gestione degli errori e la gestione dello stato.

Ogni modello utilizza una combinazione diversa di servizi serverless. Per esempi dettagliati e combinazioni di servizi consigliate per ogni modello, consulta la sezione Scegli.

Execution duration and concurrency

I servizi di elaborazione serverless si differenziano notevolmente per quanto tempo consentono l'esecuzione di una singola esecuzione e per come gestiscono la concorrenza. A differenza dei server tradizionali, le funzioni di evento Lambda non vengono eseguite costantemente. Quando una funzione viene attivata da un evento, si parla di invocazione. Le funzioni di evento Lambda hanno una durata limitata a 15 minuti, ma in media, in tutti i AWS clienti, la maggior parte delle chiamate dura meno di un secondo.

Short-lived, le chiamate basate sugli eventi sono gestite al meglio da Lambda, che supporta durate di esecuzione fino a 15 minuti e si ridimensiona automaticamente per richiesta fino a migliaia di chiamate simultanee. Il servizio Lambda esegue istanze della tua funzione solo quando necessario e scala automaticamente da zero richieste al giorno a migliaia al secondo. Paghi solo per il tempo di calcolo effettivamente utilizzato, quindi non è previsto alcun costo quando il codice non è in esecuzione. La fatturazione al millisecondo di Lambda può ridurre i costi per carichi di lavoro di breve durata.

Esistono molti tipi di eventi di chiamata che possono attivare funzioni di breve durata. Alcuni esempi includono una richiesta HTTP da API Gateway, una pianificazione gestita da una EventBridge regola, un messaggio da un dispositivo IoT o una notifica che un file è stato caricato in un bucket Amazon S3.

Le sessioni interattive con stato, come le sandbox di codifica AI, i notebook interattivi e gli ambienti CI multi-tenant, richiedono ambienti isolati che mantengano lo stato durante le interazioni con gli utenti. Le microVM Lambda hanno un fattore di forma di elaborazione diverso da Event Functions: utilizzano un modello di Dockerfile-based programmazione, allocano un ambiente per sessione (non per richiesta) e fatturano in base a un modello di base più burst anziché a millisecondo. Le MicroVM offrono VM-level isolamento con funzionalità complete del sistema operativo, avvio rapido basato su istantanee, durata fino a 8 ore e riduzione dei costi di inattività. suspend/resume

Long-running oppure i processi steady-state, come i processi batch, le WebSocket connessioni permanenti o i servizi che richiedono più di 15 minuti di elaborazione continua, sono meglio gestiti da Fargate, che può essere eseguito all'infinito. Per dettagli su come Fargate e Lambda si scalano in modo diverso, consulta la scheda Modello di scalabilità e latenza. Fargate fornisce un'allocazione coerente delle risorse per i carichi di lavoro che superano il timeout o i limiti di calcolo di Lambda. Inoltre, le funzioni Lambda durable consentono esecuzioni in più fasi e di lunga durata che mantengono lo stato su più invocazioni. Ogni singola chiamata rispetta comunque il limite di 15 minuti. Le funzioni Durable controllano automaticamente l'avanzamento e riprendono da dove erano state interrotte, quindi la durata totale del flusso di lavoro può superare di gran lunga i 15 minuti senza richiedere Fargate o un'orchestrazione esterna.

Considera il tempo di esecuzione medio e massimo dei tuoi carichi di lavoro. Una funzione Lambda che occasionalmente supera i 15 minuti si guasta in modo imprevedibile e richiede una riprogettazione dell'architettura. L'architettura e le esigenze dell'applicazione determinano come richiamare una funzione. Ad esempio, i modelli di elaborazione in batch hanno requisiti diversi rispetto all'elaborazione dei dati su richiesta. Fargate è adatto a un microservizio che gestisce principalmente l'elaborazione dei dati in batch. Lambda è più semplice da implementare e mantenere per l'elaborazione su richiesta.

Cost model and predictability

Uno dei principali vantaggi dello sviluppo serverless è che si paga solo per le risorse consumate. Le tecnologie serverless sono pay-as-you-go, il che significa che puoi scalare verso l'alto e verso il basso man mano che le tue esigenze applicative cambiano senza pagare per la capacità inattiva. Tuttavia, diversi servizi AWS serverless utilizzano modelli di prezzo diversi che favoriscono modelli di utilizzo diversi.

Pay-per-use i prezzi (Lambda, Step Functions Express, EventBridge) si basano sulle chiamate e sulla durata effettive, senza costi in caso di inattività. Per Lambda, ti vengono addebitati in base al numero di richieste per le tue funzioni e alla durata di esecuzione del codice. Quando il codice non è in esecuzione non viene addebitato alcun costo. Questo modello è adatto a carichi di lavoro imprevedibili o con picchi di traffico in cui il traffico può scendere a zero e per applicazioni in fase iniziale in cui la domanda è incerta.

Capacity-based prezzi (Fargate, Amazon Aurora Serverless, DynamoDB provisioned mode) addebiti per la capacità di elaborazione o di throughput riservata. Sebbene ciò possa comportare costi durante i periodi di traffico ridotto, diventa più conveniente su una scala sostenuta e prevedibile in cui i prezzi per richiesta supererebbero la capacità riservata equivalente. Ad esempio, la modalità provisioning di DynamoDB consente di regolare la capacità di throughput delle tabelle in base alle esigenze, il che può essere più economico per carichi di lavoro con modelli di traffico coerenti.

I prezzi ibridi (DynamoDB on-demand, API Gateway) offrono prezzi per richiesta scalabili linearmente senza impegno iniziale. Ciò garantisce la prevedibilità dei costi senza la necessità di prevedere la capacità, ma può diventare costoso a un throughput molto elevato rispetto alle alternative predisposte.

Baseline plus burst pricing (Lambda MicroVMS) addebita le risorse di base configurate mentre la microVM è in funzione, con la possibilità di aumentare fino a quattro volte la soglia di riferimento durante i picchi di attività. Le microVM sospese riducono i costi preservando al contempo lo stato. Questo modello è adatto a carichi di lavoro interattivi con attività variabili e periodi di inattività.

Modella i modelli di traffico previsti su cicli giornalieri, settimanali e stagionali. I carichi di lavoro con un elevato rapporto tra picco e media favoriscono i prezzi per uso. Steady-state i carichi di lavoro potrebbero trarre vantaggio dai prezzi basati sulla capacità. Puoi anche utilizzare una combinazione: ad esempio, Lambda con pay-per-use per il calcolo variabile insieme alla modalità provisioning di DynamoDB per modelli di accesso ai dati prevedibili.

Operational complexity

I framework per applicazioni web tradizionali raggruppano routing, accesso ai dati, pool di connessioni e integrazioni in un'unica base di codice che puoi distribuire e gestire come un'unica unità. L'impostazione, la configurazione e la manutenzione dei framework, degli ambienti di runtime e dell'infrastruttura rallentano la distribuzione delle funzionalità e le correzioni di bug. Man mano che le applicazioni crescono e si affidano a più sistemi esterni, questa complessità aumenta i tempi di avvio per i nuovi sviluppatori, rende più difficile rintracciare l'origine dei bug e ritarda la distribuzione di nuove funzionalità.

I servizi serverless si basano su una serie di responsabilità operative che riducono o eliminano questo sovraccarico. Invece di gestire tutto in un unico pacchetto, si compongono servizi vagamente connessi in cui ognuno fa bene una cosa con il minor numero possibile di dipendenze.

Gestione minima: Lambda, API Gateway, DynamoDB, Amazon SQS, Amazon SNS e Step Functions non richiedono il provisioning EventBridge, l'applicazione di patch o la pianificazione della capacità del server. Non è necessario configurare pool di connessioni, configurare ambienti di runtime o gestire l'infrastruttura di scalabilità. Puoi concentrarti interamente sulla scrittura o sulla generazione di codice che risolva i problemi aziendali.

Gestione dei container: Fargate richiede la creazione e la manutenzione delle immagini dei container, la configurazione delle definizioni delle attività e la gestione delle pipeline di distribuzione. Non gestisci l'infrastruttura sottostante, ma sei il proprietario del ciclo di vita del container. Questo modello è adatto ai team che necessitano di runtime personalizzati o dispongono di carichi di lavoro containerizzati esistenti da eseguire senza gestire i cluster.

Infrastruttura come complessità del codice: AWS Serverless Application Model riduce al minimo la complessità IaC per le architetture serverless con sintassi abbreviata e test locali. Kit di sviluppo per il cloud AWS (AWS CDK) e Terraform forniscono più potenza per applicazioni complesse al costo di curve di apprendimento più ripide e più codice da mantenere.

Considerate le competenze esistenti del vostro team, il numero di servizi da gestire e gli standard operativi della vostra organizzazione. Se i tuoi team dedicano più tempo alla manutenzione dell'infrastruttura che alla creazione di funzionalità, passare alla gestione minima può liberare risorse per attività di maggior valore.

Scaling model and latency

La scalabilità di un servizio influisce direttamente sulla reattività dell'applicazione sotto carico. Nelle architetture serverless, la scalabilità avviene automaticamente, ma servizi diversi utilizzano meccanismi diversi che influiscono sulla latenza e sul throughput.

Per-request scaling (Lambda) crea un nuovo ambiente di esecuzione per ogni richiesta concorrente. Lambda richiama la funzione in un ambiente di esecuzione, che fornisce un ambiente di runtime sicuro e isolato che gestisce i processi e le risorse necessari per eseguire la funzione. Ciò fornisce una risposta quasi istantanea ai picchi di traffico, scalabile da zero a migliaia di esecuzioni simultanee in pochi secondi.

Tuttavia, il ridimensionamento per richiesta introduce partenze a freddo, ovvero ritardi di inizializzazione che si verificano quando Lambda crea un nuovo ambiente di esecuzione. Il fattore che contribuisce maggiormente all'avvio a freddo è il tempo impiegato da Lambda per l'inizializzazione della funzione, che include il caricamento del codice della funzione, l'avvio del runtime e l'inizializzazione del codice della funzione. Per i carichi di lavoro Java, Python e .NET, Lambda SnapStart può migliorare le prestazioni di avvio fino a 10 volte senza costi aggiuntivi scattando un'istantanea dell'ambiente di esecuzione inizializzato e memorizzandola nella cache per un accesso a bassa latenza. Per altri runtime, puoi mitigare gli avviamenti a freddo con Provisioned Concurrency a un costo aggiuntivo.

Task-level scaling (Fargate) aggiunge o rimuove istanze di container in base a metriche quali l'utilizzo della CPU, l'utilizzo della memoria o il numero di richieste. La scalabilità aggiunge nuove attività in pochi secondi o minuti ed evita partenze a freddo per le richieste gestite dalle attività esistenti. Una volta che un'attività è in esecuzione, rimane inattiva per tutta la sua durata, garantendo una latenza costante per tutte le richieste gestite.

Throughput-based lo scaling (DynamoDB, Kinesis) regola la read/write capacità o il numero di frammenti in base alla domanda. La modalità on-demand di DynamoDB è scalabile istantaneamente per adattarsi ai modelli di traffico del carico di lavoro. La modalità provisioned richiede una configurazione con scalabilità automatica ma fornisce un throughput prevedibile a costi per richiesta inferiori. Con l'architettura serverless e DynamoDB, i pool di connessioni non sono necessari per connettere e scalare rapidamente il database. Invece, regolate la capacità di throughput delle vostre tabelle in base alle esigenze.

Per requisiti di latenza rigorosi (P99 inferiore a 100 ms), valutate attentamente il comportamento di avvio a freddo. Lambda con Provisioned Concurrency o Fargate con attività preriscaldate fornisce una latenza SnapStart prevedibile per i carichi di lavoro delle API. Per i carichi di lavoro di elaborazione dati in cui la latenza è meno critica, il ridimensionamento Lambda standard è in genere sufficiente.

Integration and composability

Le architetture serverless sono composte da più servizi che comunicano tramite eventi. Un evento rappresenta un cambiamento di stato o un aggiornamento. Ad esempio, un articolo inserito in un carrello, un file caricato su un sistema di storage o un ordine pronto per la spedizione. La profondità dell'integrazione nativa tra i servizi influisce sulla velocità di creazione e sulla quantità di codice personalizzato da scrivere.

Integrazione nativa profonda: Lambda si integra con oltre 200 AWS servizi come sorgenti di eventi. Alcuni servizi possono attivare direttamente le funzioni Lambda. Ad esempio, quando un'immagine viene aggiunta a un bucket Amazon S3, è possibile attivare Lambda per ridimensionarla. Alcuni servizi non possono richiamare direttamente Lambda, ma puoi utilizzare una mappatura dell'origine degli eventi, che è un meccanismo di polling che legge da una fonte di eventi e richiama una funzione Lambda. Puoi utilizzare le mappature delle sorgenti degli eventi per elaborare gli elementi di uno stream o di una coda in: DynamoDB Streams, Amazon Kinesis, Amazon MQ, Amazon MSK, self-managed e Amazon SQS. Apache Kafka

Flessibilità nell'instradamento degli eventi: EventBridge fornisce un routing basato sui contenuti con regole di filtro, che consentono a un singolo bus di eventi di indirizzare gli eventi verso destinazioni diverse in base al contenuto dell'evento. Amazon SNS offre un fan-out basato su argomenti per recapitare messaggi a più abbonati contemporaneamente. Amazon SQS offre un buffering point-to-point in cui i consumatori raccolgono attivamente i messaggi dalla coda. Le combinazioni più comuni includono il routing di eventi Amazon SNS a una coda Amazon SQS come buffer per i consumatori a valle, l'estrazione di eventi da uno stream EventBridge o da una coda con Pipes e l'instradamento degli eventi a Kinesis per l'analisi. EventBridge

Modelli di integrazione delle API: API Gateway offre due approcci di integrazione. Le integrazioni proxy trasmettono direttamente tutte le informazioni sulle richieste a una funzione Lambda per l'elaborazione, che è più semplice da configurare. Non-proxy Le integrazioni (personalizzate) possono trasformare i dati prima che raggiungano la funzione e prima che l'output ritorni ai client, il che è utile per la migrazione del codice precedente o per mantenere il codice funzionale incentrato sulla logica aziendale. L'API REST offre il set di funzionalità più ampio, tra cui caching, convalida delle richieste e WAF. L'API HTTP offre la latenza e il costo più bassi. AWS AppSync fornisce abbonamenti in tempo reale e GraphQL. Gli URL delle funzioni Lambda forniscono l'endpoint HTTPS a funzione singola più semplice senza richiedere API Gateway. Per le comunicazioni bidirezionali in cui il server deve inviare dati ai client, le WebSocket API Gateway forniscono connessioni permanenti adatte per chat, dashboard in tempo reale e giochi multiplayer.

A causa della scarsa connessione tra i componenti di un sistema basato sugli eventi, le funzioni di calcolo non sono a conoscenza di altre attività dell'architettura. È possibile scalare i componenti in modo indipendente, un servizio può fallire senza influire sugli altri servizi e gli eventi possono essere instradati, memorizzati nel buffer in modo flessibile e fornire un registro per il controllo.

Portability and standards

La scelta dei servizi serverless influisce sulla portabilità dell'architettura tra gli ambienti. Le applicazioni serverless di solito comprendono diversi AWS servizi, integrati con codice personalizzato eseguito nelle funzioni Lambda. Sebbene Lambda possa essere integrato con la maggior parte dei AWS servizi, dovresti considerare il compromesso tra una profonda integrazione della piattaforma e la capacità di eseguire carichi di lavoro in altri ambienti.

AWS i servizi nativi (Lambda, Step Functions EventBridge, DynamoDB) forniscono l'integrazione più profonda e il più basso sovraccarico operativo. Puoi utilizzare uno qualsiasi di questi servizi tramite l' AWS SDK senza dover installare applicazioni o configurare server. Acquisire esperienza nell'uso di questi servizi tramite il codice nelle funzioni Lambda è un passo importante per produrre applicazioni serverless ben progettate. Tuttavia, questi servizi creano un abbinamento ad API e formati di eventi AWS specifici, il che significa che la migrazione verso un altro cloud richiede un refactoring significativo.

Standards-based i servizi (Fargate con Docker contenitori, Amazon MQ con, Amazon MSK conApache Kafka) AMQP funzionano su protocolli aperti o tecnologie open source. Se hai bisogno di un runtime personalizzato non fornito da AWS, puoi creare e distribuire un'immagine del contenitore personalizzata su Fargate. Amazon MSK offre Apache Kafka compatibilità per i team con competenze esistenti in Kafka. Queste opzioni rendono più fattibile la portabilità dei carichi di lavoro a scapito di una maggiore complessità operativa e di una minore integrazione con altri servizi. AWS

Framework di distribuzione: AWS Serverless Application Model generano modelli e sono solo. Kit di sviluppo per il cloud AWS (AWS CDK) CloudFormation AWS AWS Serverless Application Model si estende CloudFormation con una sintassi abbreviata incentrata sull'accelerazione dello sviluppo serverless, offrendo definizioni ottimizzate per le risorse API Gateway, Lambda e Step Functions, oltre a test Lambda locali tramite SAM CLI. Terraformfornisce la definizione di un'infrastruttura multi-cloud utilizzando un unico flusso di lavoro tra i provider, ma con strumenti meno specifici per il serverless e capacità di test Lambda locali limitate.

I contenitori e la messaggistica basata su standard possono migliorare la portabilità per i requisiti multi-cloud. I servizi serverless nativi offrono una stretta integrazione con altri AWS servizi, il che può semplificare lo sviluppo quando il carico di lavoro viene eseguito principalmente su. AWS

Scegliere

Le seguenti informazioni possono aiutarti a valutare quali servizi AWS serverless soddisfano i requisiti del tuo carico di lavoro.

La tabella seguente evidenzia quali servizi sono ottimizzati per quali circostanze.

Categoria serverless

Per cosa è ottimizzata?

Servizi serverless

Calcolo

Esecuzione del codice in risposta a eventi con un sovraccarico operativo minimo, scalabilità per richiesta senza costi di inattività. Esecuzione di ambienti di esecuzione isolati e con stato per utente o codice. AI-generated

Funzioni di evento Lambda

Lambda MicroVMS

AWS Fargate

Livello API

Instradamento di HTTP e WebSocket richieste ai servizi di backend, gestione dell'autenticazione, della limitazione e della memorizzazione nella cache.

API HTTP di Amazon API Gateway

API REST di Amazon API Gateway

AWS AppSync

URL della funzione Lambda

API Amazon WebSocket API Gateway

Integrazione delle applicazioni

Servizi di disaccoppiamento tramite messaggistica e routing degli eventi per architetture asincrone e ad accoppiamento lento. publish/subscribe

Amazon Simple Queue Service

Amazon Simple Notification Service

Amazon EventBridge

Orchestrazione

Coordinamento dei flussi di lavoro in più fasi con ramificazione, gestione degli errori, tentativi ripetuti e gestione dello stato.

AWS Step Functions Flussi di lavoro standard

AWS Step Functions Flussi di lavoro Express

Archiviazione di dati

Archiviazione e recupero dei dati con scalabilità automatica, nessuna gestione del server e prezzi pay-per-use.

Amazon DynamoDB

Amazon Simple Storage Service

Amazon Aurora Serverless

Implementazione e IaC

Definizione, implementazione e gestione dell'infrastruttura serverless e del codice applicativo come codice.

AWS Serverless Application Model

Kit di sviluppo per il cloud AWS (AWS CDK)

Terraformtutorial introduttivo sul sito web HashiCorp

Osservabilità

Monitoraggio delle prestazioni, tracciamento delle richieste tra i servizi e diagnosi dei problemi nelle architetture basate sugli eventi.

Amazon CloudWatch

AWS X-Ray

Le seguenti schede forniscono indicazioni dettagliate in base alle esigenze specifiche del carico di lavoro. Scegli la scheda che meglio descrive ciò che devi creare e consulta i servizi e gli esempi consigliati per quel caso d'uso.

Synchronous API backend

È necessario gestire le richieste HTTP provenienti da client Web o mobili, elaborarle e restituire risposte con bassa latenza.

Per le API web e i backend mobili, API Gateway indirizza le richieste HTTP alle funzioni Lambda. DynamoDB gestisce l'accesso ai dati a bassa latenza. L'API HTTP fornisce un routing semplice a costi inferiori, mentre l'API REST aggiunge il caching, la convalida delle richieste e l'integrazione WAF. Puoi gestire l'autenticazione con Amazon Cognito e definire queste risorse con una AWS Serverless Application Model sintassi abbreviata.

Per implementare l'elaborazione sincrona, utilizza Amazon API Gateway AWS Lambda per il calcolo e Amazon API Gateway per le richieste di routing. Utilizzato per AWS Step Functions orchestrare i flussi di lavoro dei microservizi. Archivia dati e file con DynamoDB e Amazon S3 e autentica gli utenti con Amazon Amazon Cognito.

Ad esempio, supponiamo di voler creare un'applicazione di microservizi che cerchi i dati meteorologici tramite codice postale. Il client risolve il nome host tramite Amazon Route 53. La richiesta HTTP GET viene indirizzata a API Gateway, che verifica un token di accesso tramite Amazon Cognito, quindi invia la richiesta a una funzione Lambda. La funzione interroga DynamoDB, personalizza i dati, invia un evento ad Amazon SQS per l'analisi e un altro ad Amazon SNS per gli avvisi. Dopo il rallentamento del traffico, Lambda scompone l'ambiente di esecuzione. Paghi solo per l'utilizzo effettivo delle funzioni.

Architettura di microservizi meteorologici: la richiesta di un client mobile fluisce attraverso Route 53, API Gateway, Cognito, Lambda, DynamoDB, SQS e SNS, con monitoraggio completo. CloudWatch
Suggerimento

Per una guida più approfondita sulla selezione dei computer, vedi o? AWS FargateAWS Lambda

Asynchronous event processing

È necessario gestire eventi che non richiedono una risposta immediata, con consegne affidabili e la capacità di assorbire i picchi di traffico.

Per i carichi di lavoro che elaborano eventi senza una risposta immediata, Amazon SQS gestisce il buffering e il livellamento del carico. Amazon SNS è in grado di distribuire un singolo evento a più abbonati in parallelo. EventBridge filtra gli eventi in base al contenuto e si integra con le applicazioni SaaS. Step Functions coordina l'elaborazione in più fasi, con DynamoDB o Amazon S3 per l'archiviazione dei risultati.

Per implementare l'elaborazione asincrona, usala per il calcolo e per l'orchestrazione. AWS Lambda AWS Step Functions Indirizza i messaggi con Amazon Simple Notification Service per il fan-out e Amazon Simple Queue Service per l'accodamento duraturo. Archivia i risultati in DynamoDB e Amazon S3.

Ad esempio, quando un utente carica una foto su Amazon S3, Amazon S3 pubblica un evento che richiama una funzione Lambda per generare una miniatura. Se devi anche classificare l'immagine e avvisare l'utente, utilizza Amazon SNS per suddividere il singolo evento di caricamento in più funzioni Lambda che vengono elaborate in parallelo.

Suggerimento

Per una guida più approfondita sui servizi di integrazione, consulta Amazon SQS, Amazon SNS o Amazon? EventBridge

Multi-step workflow orchestration

È necessario coordinare una sequenza di attività con la logica di ramificazione, la gestione degli errori, i nuovi tentativi e le fasi di approvazione umana.

I flussi di lavoro standard gestiscono processi che durano fino a 1 anno con un'esecuzione esatta e una cronologia completa degli audit. Per l'elaborazione di grandi volumi e di breve durata (fino a 5 minuti), i flussi di lavoro Express funzionano a un costo per esecuzione inferiore.

Step Functions è utile quando si hanno flussi di lavoro con più di uno stato, quando è necessario ramificare o eseguire attività in parallelo. Il servizio Step Functions funge da modello di stato per l'applicazione. I flussi di lavoro standard forniscono un'esecuzione precisa e una cronologia di esecuzione completa e verificabile, il che li rende ideali per l'elaborazione degli ordini, i flussi di lavoro di approvazione umana e le pipeline ETL. I flussi di lavoro Express forniscono un'esecuzione almeno una volta a volumi più elevati e costi inferiori, il che li rende ideali per l'acquisizione di dati IoT, le trasformazioni in streaming e l'elaborazione di eventi ad alta velocità.

Suggerimento

Per una guida più approfondita, consulta Scelta di un servizio di integrazione delle applicazioni. AWS

Real-time streaming data

È necessario acquisire, elaborare e analizzare dati continui ad alta velocità quasi in tempo reale. Lambda e Amazon Kinesis possono elaborare dati in streaming in tempo reale. I casi d'uso includono il monitoraggio delle attività, l'analisi del flusso di clic, il filtro dei log, la telemetria IoT e la misurazione.

Per l' AWS integrazione nativa, Kinesis Data Streams gestisce l'inserimento dei flussi. Amazon MSK è in grado di importare stream con compatibilità. Apache Kafka Lambda o Fargate elaborano i dati del flusso, con DynamoDB o Amazon S3 per l'archiviazione dei risultati.

Per implementare lo streaming senza server, utilizza Amazon Kinesis AWS Lambda per l'elaborazione e la raccolta e l'analisi dei dati in tempo reale. Archivia i risultati con DynamoDB e Amazon S3.

Ad esempio, quando gli elementi vengono scritti in una tabella DynamoDB, DynamoDB Streams pubblica eventi che richiamano una funzione Lambda per generare analisi in tempo reale. Per l'acquisizione di volumi più elevati, ad esempio la telemetria IoT da milioni di dispositivi, usa Kinesis Data Streams per raccogliere e bufferizzare i dati prima dell'elaborazione.

Long-running or batch processing

È necessaria un'elaborazione che superi il limite di 15 minuti di Lambda, richieda connessioni permanenti o tragga vantaggio da runtime di container personalizzati.

Per i flussi di lavoro che superano i 15 minuti ma sono costituiti da passaggi discreti, le funzioni Lambda durable controllano l'avanzamento e la ripresa tra le chiamate. Step Functions Distributed Map è in grado di elaborare milioni di elementi provenienti da Amazon S3, Athena o JSON in parallelo senza dover effettuare il provisioning delle risorse di calcolo. Fargate supporta l'elaborazione continua, le connessioni persistenti e il controllo granulare. CPU/memory

Ad esempio, una pipeline di dati notturna che elabora 10 milioni di oggetti Amazon S3 utilizza Step Functions Distributed Map per parallelizzare il lavoro. Un servizio di transcodifica video che elabora i file per oltre 30 minuti utilizza Fargate. Un flusso di lavoro di approvazione del prestito in più fasi che si estende per giorni utilizza le funzioni Lambda durable per mantenere lo stato tra una fase di revisione umana e l'altra.

Suggerimento

Per una guida più approfondita sulla selezione dei computer, vedi o? AWS FargateAWS Lambda

Isolated execution environments

È necessario eseguire AI-generated codice o fornito dall'utente in ambienti isolati con una forte separazione dei tenant e conservazione dello stato.

Le microVM Lambda offrono un VM-level isolamento basato su Firecracker, con funzionalità complete del sistema operativo, avvio rapido basato su istantanee e durata fino a 8 ore. Ogni microVM riceve un URL HTTPS dedicato, gRPC e protocolli. HTTP/2 WebSocket MicroVMS può essere sospeso quando è inattivo per ridurre i costi preservando la memoria e lo stato del disco. A differenza di Event Functions, le MicroVMS utilizzano un modello di Dockerfile-based programmazione, allocano un ambiente per sessione e fatturano in base a un modello di base più un modello burst (fino a 4 volte il valore di riferimento durante i picchi di attività). Ogni microVM supporta reti di uscita configurabili per l'accesso VPC e la connettività Internet pubblica, senza richiedere sistemi di bilanciamento del carico o infrastruttura di ingresso.

Ad esempio, un assistente di codifica AI fornisce a ogni sessione utente la propria microVM per eseguire in sicurezza il codice generato. Una piattaforma notebook interattiva esegue il codice di ogni studente in una microVM isolata che mantiene lo stato tra le interazioni.

Utilizzo

Ora dovresti avere una chiara comprensione di ogni servizio AWS serverless e di quale potrebbe essere il più adatto alla tua organizzazione e al tuo caso d'uso. Per scoprire come utilizzare e saperne di più su ogni servizio disponibile, la sezione seguente fornisce collegamenti a documentazione approfondita, tutorial pratici e risorse per iniziare.

Serverless compute

AWS Lambda

AWS Fargate

  • Guida introduttiva a Fargate su Amazon ECS Scopri come eseguire contenitori su Fargate senza gestire server. Guida introduttiva a Fargate

  • Creazione di un cluster con un'attività Fargate Linux utilizzando la AWS CLI Configura un cluster, registra una definizione di attività ed esegui un'attività. Tutorial sulla CLI di Fargate

MicroVMS Lambda

API layer

API REST di Amazon API Gateway

API HTTP di Amazon API Gateway

AWS AppSync

  • Guida AWS AppSync introduttiva alla creazione di un'API GraphQL con sincronizzazione dei dati in tempo reale. AppSync guida rapida

URL della funzione Lambda

Application integration

Amazon Simple Queue Service

  • Guida introduttiva ad Amazon SQS Crea una coda, invia messaggi e ricevi messaggi utilizzando la console. Guida introduttiva a SQS

  • Orchestrate Queue-based Microservices Progetta un flusso di lavoro serverless che orchestra un microservizio basato su code di messaggi. Queue-based tutorial sui microservizi sul sito web AWS

Amazon Simple Notification Service

Amazon EventBridge

Orchestration

AWS Step Functions

  • Guida introduttiva AWS Step Functions Crea un flusso di lavoro di base per l'elaborazione delle domande relative alle carte di credito. Tutorial Step Functions

  • AWS Step Functions Workshop Esplora le caratteristiche principali di Step Functions tramite moduli interattivi. Step Functions Workshop sul sito web di AWS Workshops.

  • Flussi di lavoro Standard ed Express Comprendi le differenze tra i tipi di flusso di lavoro Standard ed Express. Guida Standard e Express

  • Design Patterns for AWS Step Functions Scopri come implementare modelli di progettazione nelle tue macchine a stati. Schemi di progettazione per Step Functions su AWS Skill Builder.

Data storage

Amazon DynamoDB

  • Guida introduttiva a DynamoDB Crea una tabella, scrivi, leggi, aggiorna e interroga i dati utilizzando la CLI AWS . Tutorial introduttivo di DynamoDB

  • Scelta di un servizio di AWS database Usa la nostra guida decisionale sul database per una guida più approfondita sulla selezione del database. Guida decisionale sul database

Amazon Simple Storage Service

Amazon Aurora Serverless

  • Uso di Amazon Aurora Serverless v2 Scopri come Amazon Aurora Serverless regola automaticamente la capacità in base alla domanda. Guida Aurora Serverless v2

Deployment and IaC

AWS Serverless Application Model

  • Guida introduttiva all' AWS Serverless Application Modelinizializzazione, alla creazione e alla distribuzione di un'applicazione serverless con SAM CLI. Tutorial introduttivo a SAM

  • Test in locale con SAM CLI Invoke Lambda in locale ed esegui API Gateway localmente per lo sviluppo. Guida ai test locali di SAM CLI

Kit di sviluppo per il cloud AWS (AWS CDK)

  • Guida introduttiva alla Kit di sviluppo per il cloud AWS (AWS CDK) creazione della prima app CDK e all'implementazione dell'infrastruttura utilizzando il linguaggio di programmazione preferito. Tutorial introduttivo su CDK

Terraform

  • Guida introduttiva Terraform a AWS Scopri come eseguire il provisioning AWS dell'infrastruttura conTerraform. Terraformtutorial introduttivo sul sito web. HashiCorp

Observability

Amazon CloudWatch

AWS X-Ray

  • Guida introduttiva alle richieste AWS X-Ray Trace tramite Lambda, API Gateway e servizi downstream. X-Ray guida introduttiva

  • Scelta di un servizio di AWS monitoraggio e osservabilità Utilizza la nostra guida decisionale sul monitoraggio per una guida più approfondita sugli strumenti di osservabilità. Guida decisionale sul monitoraggio

Esplora

Dopo aver determinato l'approccio più adatto al tuo carico di lavoro, consulta queste risorse per iniziare l'implementazione. Le risorse specifiche del servizio sono disponibili nella sezione precedente e le risorse generali sull'architettura serverless nella sezione seguente.