

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

# Seleziona un servizio di database per Lambda-based le tue applicazioni
<a name="ddb-rds-database-decision"></a>

Molte applicazioni serverless devono archiviare e recuperare i dati. AWS offre diverse opzioni di database che funzionano con le funzioni Lambda. Due delle scelte più popolari sono Amazon DynamoDB, un servizio di database NoSQL, e Amazon RDS, una soluzione di database relazionale tradizionale. Le sezioni seguenti spiegano le principali differenze tra questi servizi quando vengono utilizzati con Lambda e ti aiutano a selezionare il servizio di database giusto per la tua applicazione serverless.

Per saperne di più sugli altri servizi di database offerti da AWS e per comprenderne i casi d'uso e i compromessi più in generale, vedi [ Scelta di un AWS servizio di database. ](https://docs.aws.amazon.com/decision-guides/latest/databases-on-aws-how-to-choose/databases-on-aws-how-to-choose.html) Tutti i servizi di AWS database sono compatibili con Lambda, ma non tutti potrebbero essere adatti al tuo caso d'uso particolare.

## Quali sono le tue scelte quando selezioni un servizio di database con Lambda?
<a name="w2aac15c59d103c21b9"></a>

AWS offre diversi servizi di database. Per le applicazioni serverless, due delle scelte più popolari sono DynamoDB e Amazon RDS.
+ **DynamoDB** è un servizio di database NoSQL completamente gestito ottimizzato per le applicazioni serverless. Fornisce una scalabilità ottimale e prestazioni costanti in millisecondi su qualsiasi scala.
+ **Amazon RDS** è un servizio di database relazionale gestito che supporta più motori di database tra cui MySQL e PostgreSQL. Fornisce funzionalità SQL familiari con un'infrastruttura gestita.

## Suggerimenti se conosci già le tue esigenze
<a name="w2aac15c59d103c21c11"></a>

Se hai già le idee chiare sulle tue esigenze, ecco i nostri suggerimenti di base:

Consigliamo [DynamoDB](with-ddb.md) per applicazioni serverless che richiedono prestazioni costanti a bassa latenza, scalabilità automatica e non richiedono join o transazioni complesse. È particolarmente adatto per Lambda-based le applicazioni grazie alla sua natura serverless.

[Amazon RDS](services-rds.md) è la scelta migliore quando hai bisogno di query SQL complesse, join o se hai applicazioni esistenti che utilizzano database relazionali. Tuttavia, tieni presente che la connessione delle funzioni Lambda ad Amazon RDS richiede una configurazione aggiuntiva e può influire sui tempi di avvio a freddo.

## Aspetti da tenere in considerazione selezioni un servizio di database
<a name="w2aac15c59d103c21c13"></a>

Quando scegli tra DynamoDB e Amazon RDS per le tue applicazioni Lambda, considera questi fattori:
+ Gestione delle connessioni e avvii a freddo
+ Modelli di accesso ai dati
+ Complessità delle query
+ Requisiti di coerenza dei dati
+ Caratteristiche di scalabilità
+ Modello di costi

Se conosci questi fattori, puoi selezionare l'opzione che soddisfa al meglio le esigenze del caso d'uso specifico.

### Gestione delle connessioni e avvii a freddo
<a name="w2aac15c59d103c21c13b9b1"></a>
+ DynamoDB utilizza un'API HTTP per tutte le operazioni. Le funzioni Lambda possono effettuare richieste immediate senza mantenere le connessioni, con conseguente miglioramento delle prestazioni di avvio a freddo. Ogni richiesta viene autenticata utilizzando le AWS credenziali senza sovraccarico di connessione.
+ Amazon RDS richiede la gestione dei pool di connessioni poiché utilizza connessioni di database tradizionali. Ciò può influire sugli avvii a freddo poiché le nuove istanze Lambda devono stabilire connessioni. Dovrai implementare strategie di pool di connessioni e potenzialmente utilizzare il [Server proxy per Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.html) per gestire le connessioni in modo efficace. Tieni presente che l'utilizzo del Server proxy per Amazon RDS comporta costi aggiuntivi.

### Modelli di accesso ai dati
<a name="w2aac15c59d103c21c13b9b3"></a>
+ DynamoDB funziona al meglio con modelli di accesso noti e design a tabella singola. È ideale per applicazioni Lambda che richiedono un accesso coerente a bassa latenza ai dati basato su chiavi primarie o indici secondari.
+ Amazon RDS offre flessibilità per query complesse e modelli di accesso in evoluzione. È più adatto quando le funzioni Lambda devono eseguire query uniche e personalizzate o join complessi su più tabelle.

### Complessità delle query
<a name="w2aac15c59d103c21c13b9b5"></a>
+ DynamoDB eccelle nelle operazioni semplici basate su chiavi e nei modelli di accesso predefiniti. Le query complesse devono essere progettate sulla base di strutture indicizzate e i join devono essere gestiti nel codice dell'applicazione.
+ Amazon RDS supporta query SQL complesse con join, sottoquery e aggregazioni. Questo può semplificare il codice della funzione Lambda quando sono necessarie operazioni complesse sui dati.

### Requisiti di coerenza dei dati
<a name="w2aac15c59d103c21c13b9b7"></a>
+ DynamoDB offre opzioni di coerenza sia finali che avanzate, con una forte coerenza disponibile per le letture di singoli elementi. Le transazioni sono supportate ma con alcune limitazioni.
+ Amazon RDS garantisce la conformità completa di atomicità, coerenza, isolamento e durabilità (ACID) e supporto per transazioni complesse. Se le tue funzioni Lambda richiedono transazioni complesse o una forte coerenza tra più record, Amazon RDS potrebbe essere più adatto.

### Caratteristiche di scalabilità
<a name="w2aac15c59d103c21c13b9b9"></a>
+ DynamoDB si adatta automaticamente al carico di lavoro. È in grado di gestire picchi improvvisi di traffico provenienti da funzioni Lambda senza pre-provisioning. Puoi utilizzare la modalità di capacità su richiesta per pagare solo per ciò che usi, in linea con il modello di scalabilità di Lambda.
+ Amazon RDS ha una capacità fissa in base alla dimensione dell'istanza scelta. Se più funzioni Lambda tentano di connettersi contemporaneamente, potresti superare la tua quota di connessione. È necessario gestire con attenzione i pool di connessioni e potenzialmente implementare la logica dei tentativi.

### Modello di costi
<a name="w2aac15c59d103c21c13b9c11"></a>
+ I prezzi di DynamoDB si allineano bene con le applicazioni serverless. Con la capacità su richiesta, paghi solo per le letture e le scritture effettive eseguite dalle tue funzioni Lambda. Non sono previsti addebiti per i tempi di inattività.
+ Amazon RDS addebita i costi per l'istanza in esecuzione indipendentemente dall'utilizzo. Questo può essere meno conveniente per i carichi di lavoro sporadici che possono essere tipici delle applicazioni serverless. Tuttavia, potrebbe essere più economico per carichi di lavoro ad alto throughput con un utilizzo costante.

## Nozioni di base sulle istanze del database da te scelte
<a name="w2aac15c59d103c21c15"></a>

Ora che hai letto i criteri per scegliere tra DynamoDB and Amazon RDS e le principali differenze tra questi, puoi selezionare l'opzione più adatta alle tue esigenze e utilizzare le seguenti risorse per iniziare a utilizzarla.

------
#### [ DynamoDB ]

**Iniziare a usare DynamoDB con le seguenti risorse**
+ Per un'introduzione al servizio DynamoDB, leggi [Cos'è DynamoDB?](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) nella *Guida per gli sviluppatori di Amazon DynamoDB*.
+ Segui il tutorial [Uso di Lambda con API Gateway](services-apigateway-tutorial.md) per vedere un esempio di utilizzo di una funzione Lambda per eseguire operazioni CRUD su una tabella DynamoDB in risposta a una richiesta API.
+ Leggi [ Programming with DynamoDB and the AWS SDK ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.html) nella * Amazon DynamoDB Developer Guide * per saperne di più su come accedere a DynamoDB dall'interno della tua funzione Lambda utilizzando uno degli SDK. AWS 

------
#### [ Amazon RDS ]

**Iniziare a usare Amazon RDS con le seguenti risorse**
+ Per un'introduzione al servizio Amazon RDS, leggi [Cos'è Amazon Relational Database Service (Amazon RDS)?](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) nella *Guida per l’utente di Amazon Relational Database Service*.
+ Segui il tutorial [Uso di una funzione Lambda per accedere a un database Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-lambda-tutorial.html) nella *Guida per l’utente di Amazon Relational Database Service*.
+ Per ulteriori informazioni sull'uso di Lambda con Amazon RDS, consulta [Utilizzo AWS Lambda con Amazon RDS](services-rds.md).

------