

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

# Proxy Amazon RDS
<a name="rds-proxy"></a>

Con Server proxy per Amazon RDS, puoi consentire alle tue applicazioni di eseguire il pool e condividere connessioni di database per migliorare la loro capacità di dimensionamento. RDS Proxy rende le applicazioni più resilienti agli errori del database connettendosi automaticamente a un'istanza database di standby, mantenendo al contempo le connessioni delle applicazioni. Utilizzando il proxy RDS, puoi applicare l'autenticazione AWS Identity and Access Management (IAM) per i client che si connettono al proxy e il proxy può connettersi ai database utilizzando l'autenticazione del database IAM o le credenziali archiviate in. Gestione dei segreti AWS

![\[Una panoramica del modo in cui le applicazioni si connettono al proxy RDS\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Proxy-Overview.png)


 Con Server proxy per RDS, puoi gestire picchi imprevedibili nel traffico del database che altrimenti potrebbero causare problemi dovuti all’eccessiva sottoscrizione delle connessioni o alla creazione di nuove connessioni a velocità elevata. Server proxy per RDS stabilisce un pool di connessioni al database e riutilizza le connessioni di questo pool. Questo approccio evita il sovraccarico della memoria e della CPU per aprire ogni volta una nuova connessione al database. Per proteggere un database da sottoscrizione eccessiva, è possibile controllare il numero di connessioni al database create. 

 Server proxy per RDS crea sequenze o limita le connessioni delle applicazioni che non possono essere servite immediatamente dal pool di connessioni. Sebbene le latenze possano aumentare, l'applicazione può continuare a dimensionare senza errori improvvisi o senza sovraccaricare il database. Se le richieste di connessione superano i limiti specificati, RDS Proxy rifiuta le connessioni dell'applicazione (genera il carico). Allo stesso tempo, mantiene prestazioni prevedibili per il carico che può essere servito da RDS con la capacità disponibile. 

![\[Una panoramica dettagliata del modo in cui le applicazioni si connettono al proxy RDS e dei tipi di connessioni coinvolte.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Proxy-detail.png)


 Puoi ridurre il sovraccarico per elaborare le credenziali e stabilire una connessione sicura per ogni nuova connessione. RDS Proxy può gestire alcune di queste operazioni per conto del database. 

 RDS Proxy è compatibile con le versioni di motore supportate. È possibile abilitare RDS Proxy per la maggior parte delle applicazioni senza modifiche al codice. 

**Topics**
+ [Disponibilità di regioni e versioni](#rds-proxy.RegionVersionAvailability)
+ [Quote e limiti per RDS Proxy](#rds-proxy.limitations)
+ [Pianificazione sull'utilizzo di RDS Proxy](rds-proxy-planning.md)
+ [Concetti e terminologia RDS Proxy](rds-proxy.howitworks.md)
+ [Nozioni di base su RDS Proxy](rds-proxy-setup.md)
+ [Gestire un RDS Proxy](rds-proxy-managing.md)
+ [Utilizzo degli endpoint Amazon RDS Proxy](rds-proxy-endpoints.md)
+ [Monitoraggio dei parametri RDS Proxy con Amazon CloudWatch](rds-proxy.monitoring.md)
+ [Utilizzo degli eventi RDS Proxy](rds-proxy.events.md)
+ [Risoluzione dei problemi per RDS Proxy](rds-proxy.troubleshooting.md)
+ [Utilizzo di RDS Proxy con AWS CloudFormation](rds-proxy-cfn.md)

## Disponibilità di regioni e versioni
<a name="rds-proxy.RegionVersionAvailability"></a>

Il supporto varia a seconda delle versioni specifiche di ciascun motore di database e a seconda delle Regioni AWS. Per ulteriori informazioni sulla disponibilità di versioni e regioni per Amazon RDS con il proxy RDS, consulta [Regioni e motori di database supportati per Server proxy per Amazon RDS](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSProxy.md).

## Quote e limiti per RDS Proxy
<a name="rds-proxy.limitations"></a>

 A RDS Proxy si applicano i seguenti limiti: 
+  Ogni Account AWS ID è limitato a 20 proxy. Se la tua applicazione richiede più proxy, richiedi un aumento tramite la pagina **Service Quotas** all’interno di Console di gestione AWS. Nella pagina **Service Quotas**, seleziona **Amazon Relational Database Service (Amazon RDS)** e individua i **proxy** per richiedere un aumento della quota. AWS può aumentare automaticamente la tua quota o è in attesa di revisione della tua richiesta entro Supporto.
+ Ogni proxy può avere fino a 200 segreti di Secrets Manager associati, limitando così le connessioni a un massimo di 200 account utente diversi quando si utilizzano i segreti. 
+  Ogni proxy dispone di un endpoint predefinito che viene fornito solo in due zone di disponibilità selezionate dalle sottoreti configurate del proxy. Se AZs sono configurate più di due sottoreti, ne verranno selezionate due qualsiasi. 
+  È possibile aggiungere fino a 20 endpoint proxy aggiuntivi per ogni proxy. Questi endpoint aggiuntivi vengono forniti in tutte le zone di disponibilità specificate durante la loro creazione. Puoi creare, visualizzare, modificare ed eliminare questi endpoint. 
+ Per le istanze database RDS nelle configurazioni di replica, puoi associare un proxy solo all'istanza database del writer, non a una replica di lettura.
+ RDS Proxy deve essere nello stesso virtual private cloud (VPC) del database. Sebbene il database non sia accessibile pubblicamente, il proxy può esserlo. Ad esempio, se stai eseguendo la prototipazione del database su un host locale, non puoi connetterti al proxy se non hai configurato i requisiti di rete necessari per consentire la connessione al proxy. Ciò avviene perché il tuo host locale è esterno al VPC del proxy. 
+  Non è possibile utilizzare RDS Proxy con un VPC con tenancy impostato a `dedicated`. 
+  Non puoi utilizzare RDS Proxy in un VPC con controlli `Enforce Mode` di crittografia abilitati. 
+ Per i tipi di rete IPv6 endpoint, configura il VPC e le sottoreti in modo che supportino solo. IPv6 Per entrambi i IPv4 tipi di rete con connessione di IPv6 destinazione, configura il VPC e le sottoreti per supportare la modalità dual-stack. 
+ Se si utilizza RDS Proxy con un DB di istanza RDS con autenticazione IAM abilitata, il proxy può connettersi al database utilizzando l'autenticazione IAM o le credenziali archiviate in Secrets Manager. I client che si connettono al proxy devono autenticarsi utilizzando le credenziali IAM. Per istruzioni dettagliate sulla configurazione, consulta e [Impostazione delle credenziali del database per RDS Proxy](rds-proxy-secrets-arns.md) [Configurazione dell’autenticazione IAM per Server proxy per RDS](rds-proxy-iam-setup.md)
+  Non puoi utilizzare RDS Proxy con DNS personalizzati quando utilizzi la convalida del nome host SSL. 
+  Ogni proxy può essere associato a una singola istanza database di destinazione. Tuttavia, è possibile associare più proxy alla stessa istanza .
+ Qualsiasi istruzione con una dimensione del testo maggiore di 16 KB fa sì che il proxy effettui il pinning della sessione nella connessione corrente.
+ Per alcune regioni sono presenti restrizioni relative alla zona di disponibilità (AZ) da considerare durante la creazione del proxy. La Regione Stati Uniti orientali (Virginia settentrionale) non supporta Server proxy per RDS nella zona di disponibilità `use1-az3`. La Regione Stati Uniti occidentali (California settentrionale) non supporta Server proxy per RDS nella zona di disponibilità `usw1-az2`. Quando selezioni le sottoreti durante la creazione del proxy, assicurati di non scegliere sottoreti nelle zone di disponibilità sopra menzionate. 
+ Attualmente, Server proxy per RDS non supporta nessuna delle chiavi di contesto delle condizioni globali.

  Per ulteriori informazioni sulle chiavi di contesto delle condizioni globali, consulta [Chiavi di contesto delle condizioni globali AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) nella *Guida per l'utente di IAM*.
+ Non è possibile utilizzare Server proxy per RDS con RDS Custom per SQL Server.
+ Per riflettere qualsiasi modifica del gruppo di parametri del database apportata al proxy, è necessario riavviare l’istanza anche se si sceglie di applicare immediatamente le modifiche. Per i parametri a livello di cluster, è necessario un riavvio a livello di cluster.
+ Il proxy crea automaticamente l’utente database `rdsproxyadmin` quando si registra una destinazione proxy. Si tratta di un utente protetto essenziale per la funzionalità del proxy. È necessario evitare di manomettere l’utente `rdsproxyadmin` a qualsiasi titolo. L’eliminazione o la modifica dell’utente `rdsproxyadmin` o delle relative autorizzazioni può comportare la completa indisponibilità del proxy per l’applicazione.

Per le altre limitazioni di ciascun motore di database, consulta le sezioni riportate di seguito:
+ [Limitazioni aggiuntive per RDS per MariaDB](#rds-proxy.limitations-mdb)
+ [Limitazioni aggiuntive per RDS per Microsoft SQL Server](#rds-proxy.limitations-ms)
+ [Limitazioni aggiuntive per RDS per MySQL](#rds-proxy.limitations-my)
+ [Limitazioni aggiuntive per RDS per PostgreSQL](#rds-proxy.limitations-pg)

### Limitazioni aggiuntive per RDS per MariaDB
<a name="rds-proxy.limitations-mdb"></a>

 Le seguenti limitazioni aggiuntive si applicano a Server proxy per RDS con database RDS per MariaDB:
+  Attualmente, tutti i proxy sono in ascolto di MariaDB sulla porta 3306. I proxy si connettono ancora al database utilizzando la porta specificata nelle impostazioni del database. 
+ Non puoi utilizzare Server proxy per RDS con database MariaDB autogestiti nelle istanze Amazon EC2.
+ Non puoi utilizzare il proxy RDS con un'istanza database di RDS per MariaDB con il parametro `read_only` nel suo gruppo di parametri DB impostato su `1`.
+ Server proxy per RDS non supporta la modalità compressa MariaDB. Ad esempio, non supporta la compressione utilizzata dalle opzioni `--compress` o `-C` del comando `mysql`.
+ Alcune istruzioni e funzioni SQL possono modificare lo stato della connessione senza causare l'aggiunta. Per il comportamento del pinning più aggiornato, consulta [Evitare di effettuare il pinning di un Server proxy per RDS](rds-proxy-pinning.md).
+ Il proxy RDS non supporta il plugin `auth_ed25519` MariaDB.
+ Il proxy RDS non supporta Transport Layer Security (TLS) versione 1.3 per i database MariaDB.
+ Le connessioni al database che elaborano un comando `GET DIAGNOSTIC` potrebbero restituire informazioni imprecise quando Server proxy per RDS riutilizza la stessa connessione al database per eseguire un'altra query. Questo può accadere quando Server proxy per RDS crea multiplex delle connessioni al database. Per ulteriori informazioni, consulta [Panoramica dei concetti RDS Proxy](rds-proxy.howitworks.md#rds-proxy-overview).
+ Server proxy per RDS attualmente non supporta l’opzione `caching_sha2_password` per `ClientPasswordAuthType` per MariaDB.

**Importante**  
 Per i proxy associati ai database MariaDB, non impostare il parametro di configurazione `sql_auto_is_null` su `true` o un valore diverso da zero nella query di inizializzazione. Ciò potrebbe causare un comportamento non corretto dell'applicazione. 

### Limitazioni aggiuntive per RDS per Microsoft SQL Server
<a name="rds-proxy.limitations-ms"></a>

 Le seguenti limitazioni aggiuntive si applicano a Server proxy per RDS con database RDS per Microsoft SQL Server:
+ Il numero di segreti di Gestione dei segreti da creare per un proxy dipende dal confronto utilizzato dall'istanza database. Supponi, ad esempio, che l'istanza database utilizzi il confronto con distinzione tra lettere maiuscole e minuscole. Se l'applicazione accetta sia "Admin" che "admin", il proxy necessita di due segreti separati. Per ulteriori informazioni sul confronto in SQL Server, consulta la documentazione di [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver16).
+ Server proxy per RDS non supporta le connessioni che utilizzano Active Directory.
+ Non puoi usare l'autenticazione IAM con i client che non supportano le proprietà dei token. Per ulteriori informazioni, consulta [Considerazioni sulla connessione a Microsoft SQL Server](rds-proxy-connecting.md#rds-proxy-connecting-sqlserver).
+ I risultati di `@@IDENTITY`, `@@ROWCOUNT` e `SCOPE_IDENTITY` non sono sempre accurati. Per ovviare al problema, recupera i valori nella stessa istruzione di sessione per assicurarti che restituiscano le informazioni corrette.
+ Se la connessione utilizza Multiple Active Result Set (MARS), Server proxy per RDS non esegue le query di inizializzazione. Per informazioni su MARS, consulta la documentazione di [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/native-client/features/using-multiple-active-result-sets-mars?view=sql-server-ver16).
+ Attualmente, Server proxy per RDS non supporta RDS per le istanze database di SQL Server eseguite sulla versione principale di *SQL Server 2022*.
+ Server proxy per RDS non supporta RDS per le istanze database di SQL Server eseguite sulla versione principale di *SQL Server 2014.*
+ Server proxy per RDS non supporta le applicazioni client che non sono in grado di gestire più messaggi di risposta in un unico record TLS.
+ RDS Proxy non supporta l'autenticazione end-to-end IAM per RDS per SQL Server.

### Limitazioni aggiuntive per RDS per MySQL
<a name="rds-proxy.limitations-my"></a>

 Le seguenti limitazioni aggiuntive si applicano a Server proxy per RDS con database RDS per MySQL:
+ Il supporto del proxy RDS per l’autenticazione `caching_sha2_password` richiede una connessione sicura (TLS).
+ È noto che il supporto Server proxy per RDS per `caching_sha2_password` presenta problemi di compatibilità con alcune versioni del driver go-sql.
+ Quando si utilizza il driver MySQL 8.4 C, l’API `mysql_stmt_bind_named_param` potrebbe formare pacchetti non validi se il conteggio dei parametri supera il conteggio dei segnaposto in un’istruzione preparata. Ciò si traduce in risposte errate. Per ulteriori informazioni, consulta il [report sui bug di MySQL](https://bugs.mysql.com/bug.php?id=116860&thanks=4).
+ Attualmente, tutti i proxy sono in ascolto di MySQL sulla porta 3306. I proxy si connettono ancora al database utilizzando la porta specificata nelle impostazioni del database. 
+  Non puoi utilizzare RDS Proxy con database MySQL gestiti dal cliente nelle istanze EC2.
+  Non è possibile utilizzare RDS Proxy con un'istanza database di RDS per MySQL con il parametro `read_only` nel suo gruppo di parametri database impostato su `1`.
+ RDS Proxy non supporta la modalità compressa MySQL. Ad esempio, non supporta la compressione utilizzata dalle opzioni `--compress` o `-C` del comando `mysql`.
+ Le connessioni al database che elaborano un comando `GET DIAGNOSTIC` potrebbero restituire informazioni imprecise quando Server proxy per RDS riutilizza la stessa connessione al database per eseguire un'altra query. Questo può accadere quando Server proxy per RDS crea multiplex delle connessioni al database.
+ Alcune istruzioni e funzioni SQL, ad esempio `SET LOCAL`, possono modificare lo stato della connessione senza causare l’aggiunta. Per il comportamento del pinning più aggiornato, consulta [Evitare di effettuare il pinning di un Server proxy per RDS](rds-proxy-pinning.md).
+ L’utilizzo della funzione `ROW_COUNT()` in una query con più istruzioni non è supportato.
+ Server proxy per RDS non supporta le applicazioni client che non sono in grado di gestire più messaggi di risposta in un unico record TLS.
+ Server proxy per RDS non supporta le doppie password MySQL.
+ Il proxy RDS potrebbe non funzionare come previsto quando si configura il parametro `init_connect` nel gruppo di parametri RDS DB per impostare le variabili dello stato della sessione. Imposta invece la query di inizializzazione per il proxy in modo che esegua le istruzioni di inizializzazione della sessione quando utilizzi il proxy per connetterti al database.

**Importante**  
 Per i proxy associati ai database MySQL, non impostare il parametro di configurazione `sql_auto_is_null` su `true` o un valore diverso da zero nella query di inizializzazione. Ciò potrebbe causare un comportamento non corretto dell'applicazione. 

### Limitazioni aggiuntive per RDS per PostgreSQL
<a name="rds-proxy.limitations-pg"></a>

 Le seguenti limitazioni aggiuntive si applicano a Server proxy per RDS con database RDS per PostgreSQL:
+ RDS Proxy non supporta i filtri di pinning della sessione per PostgreSQL.
+  Attualmente, tutti i proxy sono in ascolto di PostgreSQL sulla porta 5432.
+ Per PostgreSQL, RDS Proxy attualmente non supporta l'annullamento di una query da un client tramite l'emissione di una `CancelRequest`. Questo è il caso, ad esempio, di quando si annulla una query a esecuzione prolungata in una sessione psql interattiva utilizzando Ctrl\$1C. 
+  I risultati della funzione PostgreSQL [lastval](https://www.postgresql.org/docs/current/functions-sequence.html) non sono sempre accurati. Per risolvere il problema, utilizzare l'istruzione [INSERT](https://www.postgresql.org/docs/current/sql-insert.html) con la clausola `RETURNING`.
+ Server proxy per RDS attualmente non supporta la modalità di replica in streaming.
+ Con RDS per PostgreSQL 16, le modifiche al valore `scram_iterations` influiscono esclusivamente sul processo di autenticazione tra il proxy e il database. In particolare, se si configura `ClientPasswordAuthType` to`scram-sha-256`, eventuali personalizzazioni apportate al `scram_iterations` valore non influiscono sull' client-to-proxyautenticazione della password. Invece, il valore di iterazione per l'autenticazione client-to-proxy tramite password è fissato a 4096.
+ Il `postgres` database predefinito deve esistere nell'istanza RDS for PostgreSQL affinché RDS Proxy funzioni. Non eliminare questo database anche se l'applicazione utilizza database diversi.
+ Se si utilizza `ALTER ROLE` per modificare il ruolo dell’utente con `SET ROLE`, le connessioni successive dell’utente al proxy potrebbero non utilizzare questa impostazione del ruolo, se tali connessioni presentano un blocco. Per evitare che ciò si verifichi, quando si utilizza il proxy, è necessario utilizzarlo `SET ROLE` nella query di inizializzazione del proxy. Per ulteriori informazioni, consulta **Query di inizializzazione** in [Creazione di un proxy per Amazon RDS](rds-proxy-creating.md).

**Importante**  
Per i proxy esistenti con database PostgreSQL, se si modifica l'autenticazione del database in modo da utilizzare solo `SCRAM`, il proxy diventa non disponibile per un massimo di 60 secondi. Per evitare il problema, procedi in uno dei seguenti modi:  
Assicurati che il database consenta entrambe le autenticazioni `SCRAM` e `MD5`.
Per utilizzare solo l'autenticazione `SCRAM`, crea un nuovo proxy, esegui la migrazione del traffico dell'applicazione sul nuovo proxy, quindi elimina il proxy precedentemente associato al database.

# Pianificazione sull'utilizzo di RDS Proxy
<a name="rds-proxy-planning"></a>

 Puoi determinare quali tra le istanze DB, i cluster e le applicazioni possono trarre maggior vantaggio dall'utilizzo di RDS Proxy. Per fare ciò, considera questi fattori: 
+  Qualsiasi istanza database che genera errori del tipo "Troppe connessioni" è un buon candidato per l'associazione con un proxy. Questo è spesso caratterizzato da un valore elevato della `ConnectionAttempts` CloudWatch metrica. Il proxy consente alle applicazioni di aprire molte connessioni client, mentre il proxy gestisce un numero minore di connessioni di lunga durata all'istanza  database. 
+  Per le istanze DB, che utilizzano classi di AWS istanze più piccole, come T2 o T3, l'uso di un proxy può aiutare a evitare condizioni. out-of-memory Può anche contribuire a ridurre il sovraccarico della CPU per stabilire connessioni. Queste condizioni possono verificarsi quando vi è un numero elevato di connessioni. 
+  Puoi monitorare determinati CloudWatch parametri di Amazon per determinare se un di istanze DB si avvicina a determinati tipi di limite. Questi limiti riguardano il numero di connessioni e la memoria associata alla gestione delle connessioni. Puoi anche monitorare determinati CloudWatch parametri per determinare se un di istanze DB gestisce molte connessioni di breve durata. L'apertura e la chiusura di tali connessioni possono determinare un sovraccarico delle prestazioni sul database. Per informazioni sui parametri da monitorare, consulta [Monitoraggio dei parametri RDS Proxy con Amazon CloudWatchMonitoraggio di RDS Proxy con CloudWatch](rds-proxy.monitoring.md). 
+  AWS Lambda le funzioni possono anche essere buone candidate per l'utilizzo di un proxy. Queste funzioni effettuano frequenti connessioni del database brevi che beneficiano del pool di connessioni offerto da RDS Proxy. Puoi sfruttare qualsiasi autenticazione IAM che già possiedi per le funzioni Lambda, invece di gestire le credenziali del database nel codice dell'applicazione Lambda. 
+  Le applicazioni che in genere aprono e chiudono un numero elevato di connessioni al database e non dispongono di meccanismi di pooling delle connessioni incorporati sono ottimi candidati per l'utilizzo di un proxy. 
+  Le applicazioni che mantengono un numero elevato di connessioni aperte per lunghi periodi sono in genere buoni candidati per l'utilizzo con un proxy. Applicazioni in ambiti come software as a service (SaaS) o e-commerce spesso riducono al minimo la latenza per le richieste del database lasciando aperte le connessioni. Con Server proxy per RDS, un’applicazione può mantenere aperte un maggior numero di connessioni rispetto a quando si connette direttamente all’istanza database. 
+  Potresti non aver adottato l'autenticazione IAM e Secrets Manager a causa della complessità della configurazione di tale autenticazione per tutti i di istanze DB. Il proxy può applicare le policy di autenticazione per le connessioni client per applicazioni particolari. Puoi sfruttare qualsiasi autenticazione IAM che già possiedi per le funzioni Lambda, invece di gestire le credenziali del database nel codice dell'applicazione Lambda. 
+  Server proxy per RDS può contribuire a rendere le applicazioni più resilienti e trasparenti agli errori del database. Server proxy per RDS ignora le cache del sistema dei nomi di dominio (DNS) per ridurre i tempi di failover fino al 66% per le istanze database Amazon RDS Multi-AZ. Server proxy per RDS inoltre instrada automaticamente il traffico a una nuova istanza database, preservando al contempo le connessioni dell'applicazione. In tal modo i failover sono più trasparenti per le applicazioni.

# Concetti e terminologia RDS Proxy
<a name="rds-proxy.howitworks"></a>

 Puoi semplificare la gestione delle connessioni per le istanze database Amazon RDS utilizzando Server proxy per RDS. 

 RDS Proxy gestisce il traffico di rete tra l'applicazione client e il database. Lo fa in modo attivo prima comprendendo il protocollo del database. Quindi regola il suo comportamento in base alle operazioni SQL dell'applicazione e ai set di risultati dal database. 

 RDS Proxy riduce il sovraccarico di memoria e CPU per la gestione delle connessioni nel database. Il database richiede meno memoria e risorse della CPU quando le applicazioni aprono molte connessioni simultanee. Inoltre, non richiede alcuna logica nelle applicazioni al fine di chiudere e riaprire le connessioni che rimangono inattive per un lungo periodo di tempo. Allo stesso modo, richiede meno operazioni logiche dell'applicazione per ristabilire le connessioni in caso di problemi di database. 

 L'infrastruttura per RDS Proxy è altamente disponibile e distribuita su più zone di disponibilità ()AZs. Il calcolo, la memoria e l’archiviazione per server proxy per RDS sono indipendenti dal cluster di un’istanza database RDS. Questa separazione consente di ridurre il sovraccarico sui server di database, in modo da poter dedicare le risorse al servizio dei carichi di lavoro del database. Le risorse di calcolo RDS Proxy sono serverless e vengono scalate automaticamente in base al carico di lavoro del database. 

**Topics**
+ [Panoramica dei concetti RDS Proxy](#rds-proxy-overview)
+ [Pooling di connessioni](#rds-proxy-connection-pooling)
+ [Sicurezza di RDS Proxy](#rds-proxy-security)
+ [Failover](#rds-proxy-failover)
+ [Transazioni](#rds-proxy-transactions)

## Panoramica dei concetti RDS Proxy
<a name="rds-proxy-overview"></a>

 RDS Proxy gestisce l'infrastruttura per eseguire il pool di connessioni e le altre funzionalità descritte nelle sezioni seguenti. I proxy rappresentati nella console RDS vengono visualizzati nella pagina **Proxy**. 

Ogni proxy gestisce le connessioni a una singola istanza database RDS. Il proxy determina l'istanza di scrittura corrente per il cluster o l'istanza database Multi-AZ RDS.

 Le connessioni che un proxy mantiene aperte e disponibili per le applicazioni di database da utilizzare formano il *pool di connessioni*. 

 Per impostazione predefinita, RDS Proxy può riutilizzare una connessione dopo ogni transazione nella sessione. Questo riutilizzo a livello di transazione viene definito *multiplexing*. Quando RDS Proxy rimuove temporaneamente una connessione dal pool di connessioni per riutilizzarla, tale operazione viene chiamata *prestito* della connessione. Quando è sicuro farlo, RDS Proxy restituisce tale connessione al pool di connessioni. 

 In alcuni casi, per RDS Proxy non è possibile avere la certezza di riutilizzare una connessione al database al di fuori della sessione corrente. In questi casi, mantiene la sessione sulla stessa connessione fino al termine della sessione. Questo comportamento di fallback viene definito *pinning*. 

Un proxy ha un endpoint predefinito. Ti connetti a questo endpoint quando lavori con un'istanza database RDS  Per RDS DB, puoi anche creare endpoint aggiuntivi e di sola lettura. read/write Per ulteriori informazioni, consulta [Panoramica degli endpoint proxy](rds-proxy-endpoints.md#rds-proxy-endpoints-overview). 

 Ad esempio, è comunque possibile connettersi all'endpoint del cluster per connessioni senza pool di connessioni. read/write Puoi comunque connetterti all'endpoint di lettura per le connessioni di sola lettura con bilanciamento del carico. Puoi comunque connetterti agli endpoint dell'istanza per la diagnosi e la risoluzione dei problemi di istanze database specifiche all'interno di un cluster. Se utilizzi altri AWS servizi, ad esempio AWS Lambda per connetterti ai database RDS, modifica le relative impostazioni di connessione per utilizzare l'endpoint proxy. Ad esempio, se specifichi l'endpoint proxy per consentire alle funzioni Lambda di accedere al database sfruttando al contempo le funzionalità RDS Proxy. 

 Ogni proxy contiene un gruppo di destinazione. Questo *gruppo di destinazione* rappresenta l’istanza database RDS a cui il proxy può connettersi. L’istanza database RDS associata a un proxy è la *destinazione* di tale proxy. Per comodità, quando crei un proxy attraverso la console, RDS Proxy crea anche il gruppo di destinazione corrispondente e registra automaticamente le destinazioni associate. 

 Una *famiglia di motori* è un insieme correlato di motori di database che utilizzano lo stesso protocollo di DB. Scegli la famiglia di motori per ogni proxy creato. 

## Pooling di connessioni
<a name="rds-proxy-connection-pooling"></a>

Ogni proxy esegue il pooling delle connessioni separatamente per l’istanza di scrittura e di lettura del relativo database RDS associato. Il *pooling delle connessioni* è un’ottimizzazione che riduce il sovraccarico associato all’apertura e alla chiusura delle connessioni e mantiene aperte contemporaneamente molte connessioni. Questo sovraccarico include la memoria necessaria per gestire ogni nuova connessione. Ciò implica un sovraccarico della CPU anche per chiudere la connessione e aprirne una nuova. Gli esempi includono l'handshake di Transport Layer Security/Secure Sockets Layer (TLS/SSL), l'autenticazione, le funzionalità di negoziazione e così via. Il pooling delle connessioni semplifica la logica dell’applicazione. Non devi scrivere codice dell'applicazione per ridurre al minimo il numero di connessioni aperte simultanee. 

 Ogni proxy esegue anche il multiplexing delle connessioni, noto anche come riutilizzo della connessione. Con il *multiplexing*, Server proxy per RDS esegue tutte le operazioni per una transazione utilizzando una connessione al database sottostante, quindi può utilizzare una connessione diversa per la transazione successiva. Puoi aprire molte connessioni simultanee al proxy e il proxy mantiene un numero minore di connessioni aperte all'istanza database o al cluster. In questo modo si riduce ulteriormente il sovraccarico di memoria per le connessioni sul server di database. Questa tecnica riduce anche la possibilità di errori del tipo «troppe connessioni». 

## Sicurezza di RDS Proxy
<a name="rds-proxy-security"></a>

 RDS Proxy utilizza i meccanismi di sicurezza RDS esistenti come and (IAM). TLS/SSL AWS Identity and Access Management Per informazioni generali sulle funzionalità di sicurezza, consulta [Sicurezza in Amazon RDS ](UsingWithRDS.md). Inoltre, assicurati di familiarizzare con il modo in cui RDS utilizza l'autenticazione, l'autorizzazione e altri metodi di protezione. 

 RDS Proxy può fungere da ulteriore livello di sicurezza tra le applicazioni client e il database sottostante. Ad esempio, puoi connetterti al proxy utilizzando TLS 1.3, anche se l’istanza database sottostante supporta una versione precedente di TLS. È possibile connettersi al proxy utilizzando un ruolo IAM anche se il proxy si connette al database utilizzando il metodo di autenticazione utente e password del database. Utilizzando questa tecnica, puoi applicare requisiti di autenticazione avanzata per le applicazioni di database senza un costoso sforzo di migrazione per le istanze DB medesime. 

È possibile utilizzare i seguenti metodi di autenticazione con RDS Proxy:
+ **Credenziali del database**
+ **Autenticazione IAM standard**
+ **End-to-end Autenticazione IAM**

### Utilizzo di IAM con RDS Proxy
<a name="rds-proxy-security.IAM"></a>

RDS Proxy offre due metodi di autenticazione IAM:
+ **Autenticazione IAM standard**: applica l'autenticazione IAM per le connessioni al proxy mentre il proxy si connette al database utilizzando le credenziali archiviate in Secrets Manager. Ciò applica l'autenticazione IAM per l'accesso al database anche se i database utilizzano l'autenticazione con password nativa. Il proxy recupera le credenziali del database da Secrets Manager e gestisce l'autenticazione al database per conto dell'applicazione.
+ **End-to-end Autenticazione IAM**: applica l'autenticazione IAM per le connessioni direttamente dalle applicazioni al database tramite il proxy. End-to-end L'autenticazione IAM semplifica la configurazione di sicurezza ed evita la gestione delle credenziali del database in Secrets Manager. Questo ulteriore livello di sicurezza impone il controllo degli accessi basato su IAM dall'applicazione client al database.

Per utilizzare l'autenticazione IAM standard, configura il proxy per utilizzare i segreti di Secrets Manager per l'autenticazione e abilitare l'autenticazione IAM per le connessioni client. Le applicazioni si autenticano sul proxy utilizzando IAM, mentre il proxy si autentica nel database utilizzando le credenziali recuperate da Secrets Manager.

Per utilizzare l'autenticazione end-to-end IAM, configura il proxy in modo che utilizzi l'autenticazione IAM quando imposti lo schema di autenticazione predefinito durante la creazione o la modifica del proxy.

Per l'autenticazione end-to-end IAM, devi aggiornare il ruolo IAM associato al proxy per concedere l'`rds-db:connect`autorizzazione. Con l'autenticazione end-to-end IAM, questo elimina la necessità di registrare i singoli utenti del database con il proxy tramite Secrets Manager secrets.

### Utilizzo TLS/SSL con RDS Proxy
<a name="rds-proxy-security.tls"></a>

 È possibile connettersi a RDS Proxy utilizzando il TLS/SSL protocollo. 

**Nota**  
 RDS Proxy utilizza i certificati di AWS Certificate Manager (ACM). Se si utilizza RDS Proxy, non è necessario scaricare certificati Amazon RDS o aggiornare applicazioni che utilizzano connessioni RDS Proxy.

Per applicare TLS a tutte le connessioni tra il proxy e il database, è possibile specificare un’impostazione **Richiedi Transport Layer Security** quando si crea o si modifica un proxy nella Console di gestione AWS. 

RDS Proxy può anche garantire che la sessione venga utilizzata TLS/SSL tra il client e l'endpoint RDS Proxy. Per fare in modo che RDS Proxy proceda, specificare il requisito sul lato client. Le variabili di sessione SSL non sono configurate per le connessioni SSL a un database che utilizza RDS Proxy. 
+  Per RDS per MySQL, specifica il requisito sul lato client con il parametro `--ssl-mode` quando esegui il comando `mysql`. 
+  Per Amazon RDS PostgreSQL, specifica `sslmode=require` come parte della stringa `conninfo` quando esegui il comando `psql`. 

Server proxy per RDS supporta il protocollo TLS versione 1.0, 1.1, 1.2 e 1.3. È possibile connettersi al proxy utilizzando una versione superiore di TLS rispetto a quella utilizzata nel database sottostante. 

Per impostazione predefinita, i programmi client stabiliscono una connessione crittografata con RDS Proxy, con controllo aggiuntivo disponibile tramite l'opzione `--ssl-mode`. Dal lato client, RDS Proxy supporta tutte le modalità SSL. 

 Per il client, le modalità SSL sono le seguenti: 

**PREFERRED**  
 SSL è la prima scelta, ma non obbligatoria. 

**DISABLED**  
 Nessun SSL è abilitato. 

**REQUIRED**  
 Applica SSL. 

**VERIFY\$1CA**  
 Applicare SSL e verificare l'autorità di certificazione (CA). 

**VERIFY\$1IDENTITY**  
 Applica SSL e verifica CA e nome host CA. 

 Quando si utilizza un client con `--ssl-mode` `VERIFY_CA` o `VERIFY_IDENTITY`, specificare l'opzione `--ssl-ca` puntando a una CA in formato `.pem`. Per utilizzare il `.pem` file, scarica tutte le CA root PEMs da [Amazon Trust Services](https://www.amazontrust.com/repository/) e inseriscile in un unico `.pem` file.

 Server proxy per RDS utilizza certificati jolly, che si applicano sia a un dominio sia ai relativi sottodomini. Se utilizzi il client `mysql` per eseguire la connessione in modalità SSL `VERIFY_IDENTITY`, al momento devi utilizzare il comando compatibile `mysql` con MySQL 8.0. 

## Failover
<a name="rds-proxy-failover"></a>

 Il *failover* è una funzionalità ad alta disponibilità che sostituisce un'istanza di database con un'altra quando l'istanza originale diventa non disponibile. Un failover potrebbe verificarsi a causa di un problema con un'istanza di database. Potrebbe anche essere parte delle normali procedure di manutenzione, ad esempio durante un aggiornamento del database. Il failover si applica alle istanze database RDS in una configurazione Multi-AZ.

 La connessione tramite un proxy rende le applicazioni più resilienti ai failover del database. Quando l'istanza database originale diventa non disponibile, RDS Proxy si connette al database di standby senza far cadere le connessioni dell'applicazione inattiva. Ciò consente di velocizzare e semplificare il processo di failover. Il risultato è un failover meno dannoso per l’applicazione rispetto a un tipico problema di riavvio o del database. 

 Senza RDS Proxy, un failover comporta una breve interruzione. Durante l’interruzione, non è possibile eseguire operazioni di scrittura sul database in stato di failover. Tutte le connessioni al database esistenti vengono interrotte e l'applicazione deve riaprirle. Il database diventa disponibile per le nuove connessioni e le operazioni di scrittura quando un'istanza database di sola lettura viene promossa al posto di quella non disponibile. 

 Durante i failover DB, RDS Proxy continua ad accettare connessioni allo stesso indirizzo IP e indirizza automaticamente le connessioni alla nuova istanza database primaria. I client che si connettono tramite RDS Proxy non sono soggetti a quanto segue: 
+  Ritardi di propagazione DNS (Domain Name System) durante il failover. 
+  Cache DNS locale. 
+  Timeout di connessione. 
+  Incertezza su quale istanza database è il writer corrente. 
+  In attesa di una risposta di query da un precedente writer che è diventato non disponibile senza chiudere le connessioni. 

 Per le applicazioni che mantengono il proprio pool di connessioni, passare attraverso RDS Proxy significa che la maggior parte delle connessioni rimane attiva durante i failover o altre interruzioni. Vengono annullate solo le connessioni che si trovano nel mezzo di una transazione o istruzione SQL. RDS Proxy accetta immediatamente nuove connessioni. Quando l'istanza di scrittura del database non è disponibile, RDS Proxy accoda le richieste in arrivo. 

 Per le applicazioni che non mantengono i propri pool di connessioni, RDS Proxy offre velocità di connessione più rapide e connessioni più aperte. Si evita il costoso sovraccarico dovuto a frequenti riconnessioni dal database. Ciò avviene riutilizzando le connessioni al database mantenute nel pool di connessioni del RDS Proxy. Questo approccio è particolarmente importante per le connessioni TLS, dove i costi di installazione sono significativi. 

## Transazioni
<a name="rds-proxy-transactions"></a>

 Tutte le istruzioni all'interno di una singola transazione utilizzano sempre la stessa connessione al database sottostante. La connessione diventa disponibile per l'utilizzo da parte di una sessione diversa al termine della transazione. L'utilizzo della transazione come unità di granularità ha le seguenti conseguenze: 
+  Il riutilizzo della connessione può avvenire dopo ogni singola istruzione quando l'impostazione RDS per MySQL `autocommit` è attivata. 
+  Al contrario, quando l'impostazione `autocommit` è disattivata, la prima istruzione che viene emessa in una sessione inizia una nuova transazione. Ad esempio, supponi di immettere una sequenza di `SELECT`, `INSERT`, `UPDATE` e altre istruzioni DML (Data Manipulation Language). In questo caso, il riutilizzo della connessione non avviene fino a quando non invii un'istruzione come `COMMIT` o `ROLLBACK` per terminare la transazione. 
+  L'immissione di un'istruzione DDL (Data Definition Language) fa terminare la transazione dopo il completamento dell'istruzione. 

 RDS Proxy rileva quando una transazione termina attraverso il protocollo di rete utilizzato dall'applicazione client del database. Il rilevamento delle transazioni non si basa su parole chiave come `COMMIT` o `ROLLBACK` che appaiono nel testo dell'istruzione SQL. 

 In alcuni casi, RDS Proxy potrebbe rilevare una richiesta di database che rende impossibile spostare la sessione a una connessione diversa. In questi casi, disattiva il multiplexing per quella connessione al resto della sessione. La stessa regola si applica se RDS Proxy non può avere la certezza che il multiplexing sia praticabile per la sessione. Questa operazione è chiamata *pinning*. Per informazioni su come rilevare e ridurre al minimo il pinning, consulta [Evitare di effettuare il pinning di un Server proxy per RDS](rds-proxy-pinning.md). 

# Nozioni di base su RDS Proxy
<a name="rds-proxy-setup"></a>

Utilizza le informazioni contenute nelle pagine seguenti per configurare e gestire [Proxy Amazon RDS ](rds-proxy.md) e per impostare le opzioni di sicurezza correlate. Le opzioni di sicurezza controllano chi può accedere a ciascun proxy e in che modo ogni proxy si connette alle istanze database.

Se non conosci Server proxy per RDS, ti consigliamo di seguire le pagine nell’ordine in cui le presentiamo. 

**Topics**
+ [Configurazione dei prerequisiti di rete per Server proxy per RDS](rds-proxy-network-prereqs.md)
+ [Impostazione delle credenziali del database per RDS Proxy](rds-proxy-secrets-arns.md)
+ [Configurazione dell’autenticazione IAM per Server proxy per RDS](rds-proxy-iam-setup.md)
+ [Creazione di un proxy per Amazon RDS](rds-proxy-creating.md)
+ [Visualizzazione di un proxy](rds-proxy-viewing.md)
+ [Connessione a un database tramite RDS Proxy](rds-proxy-connecting.md)

# Configurazione dei prerequisiti di rete per Server proxy per RDS
<a name="rds-proxy-network-prereqs"></a>

 L’uso di Server proxy per RDS richiede un cloud privato virtuale (VPC) comune tra l’istanza database RDS e Proxy RDS. Questo VPC deve avere un minimo di due sottoreti che si trovano in zone di disponibilità diverse. Il tuo account può possedere queste sottoreti o condividerle con altri account. Per informazioni sulla condivisione di VPC, consulta [Work with](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html) shared. VPCs 

Per il IPv6 supporto, è richiesta una configurazione di rete aggiuntiva:
+ **IPv6 tipi di rete endpoint**: il VPC e le sottoreti devono essere configurati per il supporto. IPv6 Ciò include l'assegnazione di blocchi IPv6 CIDR al VPC e alle sottoreti.
+ Tipi di **rete endpoint dual-stack:** il VPC e le sottoreti devono supportare sia l'indirizzamento che l'indirizzamento. IPv4 IPv6 
+ **IPv6 tipi di rete di connessione di destinazione**: il database deve essere configurato per la modalità dual-stack per supportare le connessioni dal proxy. IPv6 

Le risorse dell'applicazione client come Amazon EC2, Lambda o Amazon ECS possono trovarsi nello stesso VPC del proxy. In alternativa, possono trovarsi in un VPC separato dal proxy. Se hai effettuato correttamente la connessione a un'istanza database RDS , sono già disponibili le risorse di rete necessarie. 

**Topics**
+ [Recupero delle informazioni sulle sottoreti](#rds-proxy-network-prereqs.subnet-info)
+ [Pianificazione della capacità degli indirizzi IP](#rds-proxy-network-prereqs.plan-ip-address)

## Recupero delle informazioni sulle sottoreti
<a name="rds-proxy-network-prereqs.subnet-info"></a>

Per creare un proxy, è necessario fornire le sottoreti e il VPC in cui opera il proxy. Il seguente esempio di Linux mostra AWS CLI i comandi che esaminano le sottoreti VPCs e le sottoreti di proprietà dell'utente. Account AWS In particolare, si passa la sottorete IDs come parametri quando si crea un proxy utilizzando la CLI. 

```
aws ec2 describe-vpcs
aws ec2 describe-internet-gateways
aws ec2 describe-subnets --query '*[].[VpcId,SubnetId]' --output text | sort
```

Il seguente esempio di Linux mostra AWS CLI i comandi per determinare la sottorete IDs corrispondente a una specifica istanza RDS DB del cluster  DB. Trova l’ID VPC dell’istanza database. Esamina il VPC per trovare le sottoreti. Il seguente esempio Linux mostra come.

```
$ #From the DB instance, trace through the DBSubnetGroup and Subnets to find the subnet IDs.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0]|[Subnets]|[0]|[*].SubnetIdentifier' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
...
```

```
$ #From the DB instance, find the VPC.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0].VpcId' --output text
```

```
my_vpc_id
```

```
$ aws ec2 describe-subnets --filters Name=vpc-id,Values=my_vpc_id --query '*[].[SubnetId]' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
subnet_id_4
subnet_id_5
subnet_id_6
```

## Pianificazione della capacità degli indirizzi IP
<a name="rds-proxy-network-prereqs.plan-ip-address"></a>

Server proxy per RDS regola automaticamente la sua capacità secondo le necessità in base alle dimensioni e al numero di istanze database registrate. Ad esempio, quando aumentano le dimensioni di un database registrato o le operazioni di manutenzione interne di Proxy RDS. Durante queste operazioni, il proxy può aver bisogno di più indirizzi IP per fornire la capacità aggiuntiva. Questi indirizzi aggiuntivi consentono al proxy di dimensionare senza interessare il carico di lavoro. La mancanza di indirizzi IP liberi nelle sottoreti impedisce al proxy di aumentare le dimensioni, causando eventuali latenze elevate nell'esecuzione di query o errori di connessione del client. RDS ti avvisa tramite l'evento `RDS-EVENT-0243` quando non ci sono abbastanza indirizzi IP liberi nelle tue sottoreti. Per informazioni su questo evento, consulta [Utilizzo degli eventi RDS ProxyUtilizzo degli eventi RDS Proxy](rds-proxy.events.md).

**Nota**  
Il proxy RDS non utilizza più di 215 indirizzi IP per ogni proxy in un VPC.

Riserva il numero minimo consigliato di indirizzi IP liberi nelle sottoreti per il proxy in base alle dimensioni della classe di istanza database.


|  DB instance class (Classe istanza database)  |  Numero minimo di indirizzi IP liberi  | 
| --- | --- | 
|  db.\$1.xlarge o più piccola   |  10  | 
|  db.\$1.2xlarge   |  15  | 
|  db.\$1.4xlarge   |  25  | 
|  db.\$1.8xlarge   |  45  | 
|  db.\$1.12xlarge   |  60  | 
|  db.\$1.16xlarge   |  75  | 
|  db.\$1.24xlarge   |  110  | 

Questi numeri consigliati di indirizzi IP sono stime per un proxy con solo l’endpoint predefinito. Un proxy con endpoint aggiuntivi o repliche di lettura potrebbe richiedere più indirizzi IP liberi. Per ogni endpoint aggiuntivo, ti consigliamo di riservare altri tre indirizzi IP. Per ogni replica di lettura, ti consigliamo di riservare gli indirizzi IP aggiuntivi specificati nella tabella in base alle dimensioni della replica di lettura.

# Impostazione delle credenziali del database per RDS Proxy
<a name="rds-proxy-secrets-arns"></a>

Il proxy RDS in Amazon RDS viene utilizzato Gestione dei segreti AWS per archiviare e gestire le credenziali del database in modo sicuro. Anziché essere incorporate nell’applicazione, le credenziali vengono impostate associando un proxy a un segreto Secrets Manager contenente i dettagli di autenticazione necessari. È necessario creare un segreto Secrets Manager separato per ogni account utente del database a cui si connette il proxy sull’istanza database RDS.

In alternativa, puoi configurare RDS Proxy per utilizzare l'autenticazione end-to-end IAM, che elimina la necessità di archiviare le credenziali del database in Secrets Manager. RDS Proxy utilizza l'autenticazione IAM per entrambe client-to-proxy le connessioni. proxy-to-database Ciò fornisce una soluzione di autenticazione basata su IAM completamente integrata che non richiede la gestione di segreti o password. Per informazioni sull'aggiunta di un nuovo utente IAM DB, consulta. [Creazione di un account database tramite l’autenticazione IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**Topics**
+ [Creazione di segreti da utilizzare con Server proxy per RDS](#rds-proxy-secrets-create)

## Creazione di segreti da utilizzare con Server proxy per RDS
<a name="rds-proxy-secrets-create"></a>

Prima di creare un proxy, devi creare almeno un segreto in cui archiviare le credenziali del database.

### Console
<a name="rds-proxy-secrets-create-console"></a>

**Per creare un segreto**

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Scegli **Archivia un nuovo segreto**.

1. Scegli **Credenziali per database Amazon RDS**.

1. Inserisci un nome utente e una password. Le credenziali inserite devono corrispondere a quelle di un utente esistente nel database RDS associato. Server proxy per RDS utilizza queste credenziali per autenticare e stabilire connessioni al database per conto delle applicazioni.

   In caso di mancata corrispondenza, puoi aggiornare il segreto in modo che corrisponda alla password del database. Finché non aggiorni il segreto, i tentativi di connessione effettuati tramite il proxy utilizzando tale segreto avranno esito negativo, ma le connessioni che utilizzano altri segreti validi continueranno a funzionare.
**Nota**  
Per RDS per SQL Server, Server proxy per RDS richiede un segreto con distinzione tra maiuscole e minuscole in Secrets Manager, indipendentemente dalle impostazioni di confronto delle istanze database. Se l’applicazione consente nomi utente con uso di maiuscole e minuscole diverse, come “Admin” e “admin”, è necessario creare segreti separati per ciascuno. Server proxy per RDS non supporta l’autenticazione senza distinzione tra maiuscole e minuscole tra client e proxy.  
Per ulteriori informazioni sul confronto in SQL Server, consulta la documentazione di [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver16).

1. Per **Database**, seleziona il database Amazon RDS a cui accederà il segreto.

1. Inserisci le altre impostazioni per il segreto, quindi scegli **Archivia**. Per le istruzioni complete, consulta [Creazione di un segreto Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) nella *Guida per l’utente di Gestione dei segreti AWS *. 

### AWS CLI
<a name="rds-proxy-secrets-create-cli"></a>

Quando crei un proxy tramite AWS CLI, specifichi gli Amazon Resource Names (ARNs) dei segreti corrispondenti. per tutti gli account utente del database a cui il proxy può accedere. In Console di gestione AWS, scegli i segreti in base ai loro nomi descrittivi.
+ Per creare un segreto Secrets Manager da utilizzare con Server proxy per RDS, utilizza il comando [create-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/create-secret.html):

  ```
  aws secretsmanager create-secret \
    --name "secret_name" \
    --description "secret_description" \
    --region region_name \
    --secret-string '{"username":"db_user","password":"db_user_password"}'
  ```
+ Puoi anche creare una chiave personalizzata per crittografare il segreto Secrets Manager. Il comando seguente crea una chiave di esempio.

  ```
  aws kms create-key --description "test-key" --policy '{
    "Id":"kms-policy",
    "Version": "2012-10-17",		 	 	 
    "Statement":
      [
        {
          "Sid":"Enable IAM User Permissions",
          "Effect":"Allow",
          "Principal":{"AWS":"arn:aws:iam::account_id:root"},
          "Action":"kms:*","Resource":"*"
        },
        {
          "Sid":"Allow access for Key Administrators",
          "Effect":"Allow",
          "Principal":
            {
              "AWS":
                ["$USER_ARN","arn:aws:iam:account_id::role/Admin"]
            },
          "Action":
            [
              "kms:Create*",
              "kms:Describe*",
              "kms:Enable*",
              "kms:List*",
              "kms:Put*",
              "kms:Update*",
              "kms:Revoke*",
              "kms:Disable*",
              "kms:Get*",
              "kms:Delete*",
              "kms:TagResource",
              "kms:UntagResource",
              "kms:ScheduleKeyDeletion",
              "kms:CancelKeyDeletion"
            ],
          "Resource":"*"
        },
        {
          "Sid":"Allow use of the key",
          "Effect":"Allow",
          "Principal":{"AWS":"$ROLE_ARN"},
          "Action":["kms:Decrypt","kms:DescribeKey"],
          "Resource":"*"
        }
      ]
  }'
  ```

 Ad esempio, i comandi seguenti creano segreti Secrets Manager per due utenti di database: 

```
aws secretsmanager create-secret \
  --name secret_name_1 --description "db admin user" \
  --secret-string '{"username":"admin","password":"choose_your_own_password"}'

aws secretsmanager create-secret \
  --name secret_name_2 --description "application user" \
  --secret-string '{"username":"app-user","password":"choose_your_own_password"}'
```

Per creare questi segreti crittografati con la tua AWS KMS chiave personalizzata, usa i seguenti comandi:

```
aws secretsmanager create-secret \
  --name secret_name_1 --description "db admin user" \
  --secret-string '{"username":"admin","password":"choose_your_own_password"}' \
  --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id

aws secretsmanager create-secret \
  --name secret_name_2 --description "application user" \
  --secret-string '{"username":"app-user","password":"choose_your_own_password"}' \
  --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id
```

Per vedere i segreti di proprietà del tuo AWS account, usa il comando [list-secrets](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/list-secrets.html):

```
aws secretsmanager list-secrets
```

Quando crei un proxy utilizzando la CLI, passi gli Amazon Resource Names (ARNs) di uno o più segreti al `--auth` parametro. L’esempio seguente mostra come preparare un report con solo il nome e l’ARN di ogni segreto di proprietà del tuo account AWS . Questo esempio utilizza il `--output table` parametro disponibile nella AWS CLI versione 2. Se stai usando la AWS CLI versione 1, usa `--output text` invece. 

```
aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table
```

Per confermare che il segreto contenga le credenziali corrette nel formato corretto, utilizzate il [get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html)comando. Sostituisci `your_secret_name` con il nome breve o l’ARN del segreto.

```
aws secretsmanager get-secret-value --secret-id your_secret_name
```

L’output contiene una riga con un valore con codifica JSON simile al seguente:

```
...
"SecretString": "{\"username\":\"your_username\",\"password\":\"your_password\"}",
...
```

# Configurazione dell’autenticazione IAM per Server proxy per RDS
<a name="rds-proxy-iam-setup"></a>

Per configurare l'autenticazione AWS Identity and Access Management (IAM) per RDS Proxy in Amazon RDS, crea e configura una policy IAM che conceda le autorizzazioni necessarie. 

Questo argomento fornisce i passaggi per configurare l’autenticazione IAM per Server proxy per RDS, inclusa la creazione della policy IAM richiesta e il suo collegamento a un ruolo IAM. 

**Suggerimento**  
Questa procedura è necessaria solo se desideri creare il tuo ruolo IAM. Altrimenti, RDS può creare automaticamente il ruolo richiesto quando configuri il proxy, quindi puoi saltare questi passaggi.

## Prerequisiti
<a name="rds-proxy-iam-setup-prereqs"></a>

Prima di configurare l’autenticazione IAM per Server proxy per RDS, assicurati di disporre di quanto segue:
+ **Gestione dei segreti AWS**: almeno un segreto archiviato che contiene le credenziali del database. Per istruzioni su come creare segreti, consulta [Impostazione delle credenziali del database per RDS Proxy](rds-proxy-secrets-arns.md).

  Questo non è necessario se utilizzi l'autenticazione IAM. end-to-end
+ **Autorizzazioni IAM**: un ruolo o un utente IAM con autorizzazioni per creare e gestire policy, ruoli e segreti IAM in Gestione dei segreti AWS.

## Creazione di una policy IAM per l'autenticazione end-to-end IAM
<a name="rds-proxy-iam-setup-e2e-steps"></a>

Quando si utilizza l'autenticazione end-to-end IAM, RDS Proxy si connette al database utilizzando l'autenticazione IAM anziché recuperare le credenziali da Secrets Manager. Ciò richiede la configurazione del ruolo IAM con `rds-db:connect` le autorizzazioni per gli account di database che desideri utilizzare con il proxy.

Per autenticare il proxy RDS nel database utilizzando IAM, crea un ruolo IAM con una policy che conceda le autorizzazioni di connessione al database necessarie.

### Console
<a name="rds-proxy-iam-e2e-console"></a>

**Per creare un ruolo per l'autenticazione end-to-end IAM con il tuo proxy**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Creazione di una policy delle autorizzazioni per il ruolo. Per i passaggi generali, consulta [Creare policy IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html).

   Incolla la seguente policy nell’editor JSON ed effettua le seguenti modifiche:
   + Sostituisci il tuo ID account.
   + Sostituiscilo `us-east-2` con il luogo in cui deve risiedere il proxy.
   + Sostituisci la risorsa del database IDs e i nomi utente con quelli che desideri utilizzare. Il formato dell'ID della risorsa è diverso tra le istanze RDS e. Aurora clusters

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "rds-db:connect",
               "Resource": [
                   "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1",
                   "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2"
               ]
           }
       ]
   }
   ```

1. Crea il ruolo e collega ad esso una policy delle autorizzazioni. Per i passaggi generali, consulta [Creare un ruolo per delegare le autorizzazioni](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) a un servizio. AWS 

   Per **Tipo di entità attendibile**, scegli **AWS Servizio**. In **Caso d’uso**, seleziona **RDS** e scegli **RDS - Aggiungi ruolo al database** per il caso d’uso.

1. In **Policy di autorizzazione**, scegli la policy creata.

1. In **Seleziona entità attendibili**, inserisci la seguente policy di attendibilità per il ruolo:

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "rds.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

### AWS CLI
<a name="rds-proxy-iam-e2e-cli"></a>

Per creare il ruolo utilizzando il AWS CLI, invia la seguente richiesta:

```
aws iam create-role \
  --role-name my_e2e_iam_role_name \

  --assume-role-policy-document '{"Version":"2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
```

Quindi, collega tale policy al ruolo:

```
aws iam put-role-policy \
  --role-name my_e2e_iam_role_name \
  --policy-name e2e_iam_db_connect_policy \
  --policy-document '{

    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds-db:connect",
            "Resource": [
                "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1",
                "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2"
            ]
        }
    ]
}'
```

Con il ruolo e le autorizzazioni end-to-end IAM configurati per l'autenticazione IAM, ora puoi creare un proxy con `DefaultAuthScheme` set to`IAM_AUTH`. Questo proxy si autentica direttamente nel database utilizzando IAM senza richiedere i segreti di Secrets Manager. Per istruzioni, consulta [Creazione di un proxy per Amazon RDS](rds-proxy-creating.md).

Quando utilizzi l'autenticazione end-to-end IAM, assicurati che gli utenti del database siano configurati per l'autenticazione IAM come descritto in. [Creazione di un account database tramite l’autenticazione IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)

## Creazione di una policy IAM per l’accesso a Secrets Manager
<a name="rds-proxy-iam-setup-steps"></a>

Per consentire a Server proxy per RDS di recuperare le credenziali del database da Secrets Manager, devi creare un ruolo IAM con una policy che concede le autorizzazioni necessarie.

## Console
<a name="rds-proxy-iam-console"></a>

**Per creare un ruolo che acceda ai segreti da utilizzare con il proxy**

1. Accedi a Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Creazione di una policy delle autorizzazioni per il ruolo. Per i passaggi generali, consulta [Creare policy IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html).

   Incolla la seguente policy nell’editor JSON ed effettua le seguenti modifiche:
   + Sostituisci il tuo ID account.
   + Sostituisci `us-east-2` con la Regione in cui risiederà il proxy.
   + Sostituisci i nomi segreti con quelli che hai creato. Per ulteriori informazioni, consulta [Specificazione delle chiavi KMS nelle istruzioni della policy IAM](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html).
   + Sostituisci l’ID della chiave KMS con quello utilizzato per crittografare i segreti di Secrets Manager, la chiave di default o la propria chiave.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": [
                   "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_1",
                   "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_2"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "kms:Decrypt",
               "Resource": "arn:aws:kms:us-east-2:111122223333:key/key_id",
               "Condition": {
                   "StringEquals": {
                       "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. Crea il ruolo e collega ad esso una policy delle autorizzazioni. Per i passaggi generali, consulta [Creare un ruolo per delegare le autorizzazioni a un AWS servizio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). 

   Per **Tipo di entità attendibile**, scegli **AWS Servizio**. In **Caso d’uso**, seleziona **RDS** e scegli **RDS - Aggiungi ruolo al database** per il caso d’uso.

1. In **Policy di autorizzazione**, scegli la policy creata.

1. In **Seleziona entità attendibili**, inserisci la seguente policy di attendibilità per il ruolo:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "rds.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

## AWS CLI
<a name="rds-proxy-iam-cli"></a>

Per creare il ruolo utilizzando il AWS CLI, invia la seguente richiesta:

```
aws iam create-role \
  --role-name my_role_name \
  --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
```

Quindi, collega tale policy al ruolo:

```
aws iam put-role-policy \
  --role-name my_role_name \
  --policy-name secret_reader_policy \
  --policy-document '{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_1",
                "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_2"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "arn:aws:kms:us-east-2:account_id:key/key_id",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com"
                }
            }
        }
    ]
}'
```

Con il ruolo e le autorizzazioni IAM configurati, ora puoi creare un proxy e associarlo a questo ruolo. Ciò consente al proxy di recuperare le credenziali del database in modo sicuro Gestione dei segreti AWS e di abilitare l'autenticazione IAM per le applicazioni. Per istruzioni, consulta [Creazione di un proxy per Amazon RDS](rds-proxy-creating.md).

# Creazione di un proxy per Amazon RDS
<a name="rds-proxy-creating"></a>

Puoi associare un proxy a un'istanza database RDS per MariaDB, RDS per Microsoft SQL Server, RDS per MySQL o RDS per PostgreSQL. 

## Console
<a name="rds-proxy-creating.console"></a>

**Per creare un proxy**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel riquadro di navigazione scegli **Proxy**. 

1. Scegli **Create proxy (Crea proxy)**. 

1. Configura il proxy utilizzando le impostazioni indicate di seguito.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy-creating.html)

1.  Scegli **Create proxy (Crea proxy)**. 

## AWS CLI
<a name="rds-proxy-creating.CLI"></a>

 Per creare un proxy utilizzando il AWS CLI, chiamate il [create-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-proxy.html)comando con i seguenti parametri obbligatori: 
+ `--db-proxy-name`
+ `--engine-family`
+ `--role-arn`
+ `--vpc-subnet-ids`

Il valore `--engine-family` prevede la distinzione tra lettere maiuscole e minuscole.

**Example**  
Per Linux, macOS o Unix:  

```
aws rds create-db-proxy \
    --db-proxy-name proxy_name \
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } \
    --role-arn iam_role \
    --vpc-subnet-ids space_separated_list \
    [--default-auth-scheme { NONE | IAM_AUTH }] \
    [--auth ProxyAuthenticationConfig_JSON_string] \
    [--vpc-security-group-ids space_separated_list] \
    [--require-tls | --no-require-tls] \
    [--idle-client-timeout value] \
    [--debug-logging | --no-debug-logging] \
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] \
    [--target-connection-network-type { IPV4 | IPV6 }] \
    [--tags comma_separated_list]
```
Per Windows:  

```
aws rds create-db-proxy ^
    --db-proxy-name proxy_name ^
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } ^
    --role-arn iam_role ^
    --vpc-subnet-ids space_separated_list ^
    [--default-auth-scheme { NONE | IAM_AUTH }] ^
    [--auth ProxyAuthenticationConfig_JSON_string] ^
    [--vpc-security-group-ids space_separated_list] ^
    [--require-tls | --no-require-tls] ^
    [--idle-client-timeout value] ^
    [--debug-logging | --no-debug-logging] ^
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] ^
    [--target-connection-network-type { IPV4 | IPV6 }] ^
    [--tags comma_separated_list]
```

Di seguito è riportato un esempio di valore JSON per l'opzione `--auth`. In questo esempio viene applicato un tipo di autenticazione client diverso per ciascun segreto.

```
[
  {
    "Description": "proxy description 1",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret/1234abcd-12ab-34cd-56ef-1234567890ab",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_SCRAM_SHA_256"
  },
  
  {
    "Description": "proxy description 2",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret/1234abcd-12ab-34cd-56ef-1234567890cd",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_MD5"
    
  },
  
  {
    "Description": "proxy description 3",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122221111:secret/1234abcd-12ab-34cd-56ef-1234567890ef",
    "IAMAuth": "REQUIRED"
  }
  
]
```

Il parametro `--endpoint-network-type` specifica la versione IP dell’endpoint proxy utilizzato dai client per connettersi al proxy. I valori validi sono:
+ `IPV4`— L'endpoint proxy utilizza solo IPv4 indirizzi (impostazione predefinita).
+ `IPV6`— L'endpoint proxy utilizza solo IPv6 indirizzi.
+ `DUAL`— L'endpoint proxy supporta entrambi IPv4 gli IPv6 indirizzi.

Il parametro `--target-connection-network-type` specifica la versione IP utilizzata dal proxy per connettersi al database di destinazione. I valori validi sono:
+ `IPV4`— Il proxy si connette al database utilizzando IPv4 gli indirizzi (impostazione predefinita).
+ `IPV6`— Il proxy si connette al database utilizzando IPv6 gli indirizzi.

Per utilizzare tipi IPv6 di rete endpoint dual-stack, il VPC e le sottoreti devono essere configurati per supportare il tipo di rete selezionato. Per utilizzare il tipo di rete con connessione IPv6 di destinazione, il database deve supportare la modalità dual-stack.

**Suggerimento**  
 Se non conosci già la sottorete IDs da utilizzare per il `--vpc-subnet-ids` parametro, consulta [Configurazione dei prerequisiti di rete per Server proxy per RDS](rds-proxy-network-prereqs.md) alcuni esempi su come trovarli. 

**Nota**  
Il gruppo di protezione deve consentire l'accesso al database a cui si connette il proxy. Lo stesso gruppo di protezione viene utilizzato per l'ingresso dalle applicazioni al proxy e per l'uscita dal proxy al database. Si supponga, ad esempio, di utilizzare lo stesso gruppo di protezione per il database e il proxy. In questo caso, assicurarsi di specificare che le risorse di tale gruppo di protezione possono comunicare con altre risorse dello stesso gruppo di protezione.  
Quando si utilizza un VPC condiviso, non è possibile utilizzare il gruppo di sicurezza predefinito per il VPC o uno appartenente a un altro account. Scegli un gruppo di sicurezza appartenente all'account. Se non esiste, creane uno. Per ulteriori informazioni su questa limitazione, consulta [Work with shared VPCs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html#vpc-share-limitations). 

 Per creare le associazioni corrette per il proxy, si usa anche il [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html)comando. Specificare il tipo di gruppo di destinazione `default` RDS Proxy crea automaticamente un gruppo di destinazione con questo nome quando si crea ogni proxy. 

```
aws rds register-db-proxy-targets
    --db-proxy-name value
    [--target-group-name target_group_name]
    [--db-instance-identifiers space_separated_list]  # rds db instances, or
    [--db-cluster-identifiers cluster_id]        # rds db cluster (all instances)
```

## API RDS
<a name="rds-proxy-creating.API"></a>

 [Per creare un proxy RDS, chiama l'operazione API Amazon RDS Create. DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBProxy.html) Passi un parametro con la struttura dei [AuthConfig](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AuthConfig.html)dati. 

 RDS Proxy crea automaticamente un gruppo di destinazione denominato `default` quando si crea ogni proxy. È possibile associare un cluster DB di istanze RDS al gruppo di destinazione chiamando la [funzione DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html) Register Targets. 

**Importante**  
Quando si seleziona **l'autenticazione IAM** per lo schema di autenticazione predefinito:  
È necessario abilitare l'autenticazione del database IAM sulle istanze o sui cluster del database di destinazione prima che il proxy possa connettersi correttamente.
Se scegli **Crea il ruolo IAM**, è obbligatorio il campo **Database accounts for IAM authentication**.
Se selezioni un ruolo IAM esistente, la console non aggiorna automaticamente il ruolo con le autorizzazioni di connessione al database. Verifica che il ruolo disponga delle `rds-db:connect` autorizzazioni necessarie.

# Visualizzazione di un proxy
<a name="rds-proxy-viewing"></a>

 Dopo aver creato uno o più proxy RDS, puoi visualizzarli e gestirli nella Console di gestione AWS, nella AWS CLI o nell’API RDS. È possibile esaminare i relativi dettagli di configurazione, monitorare le prestazioni e determinare quali proxy modificare o eliminare in base alle necessità.

Per consentire alle applicazioni di database di instradare il traffico attraverso un proxy, è necessario specificare l’endpoint del proxy nella stringa di connessione.

## Console
<a name="rds-proxy-viewing.console"></a>

**Per visualizzare un proxy nella console**

1. Accedi alla Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel riquadro di navigazione scegli **Proxies (Proxy)**. 

1. Seleziona il nome del proxy per visualizzarne i dettagli. 

1. Nella pagina dei dettagli, la sezione **Gruppi di destinazione** mostra come il proxy è associato a un’istanza database RDS specifica. È possibile accedere alla pagina del gruppo di destinazione predefinito per una visualizzazione più approfondita di questa associazione, comprese le impostazioni di configurazione definite durante la creazione del proxy. Queste impostazioni includono la percentuale massima di connessione, il timeout del prestito di connessione, la famiglia di motori e i filtri di pinning delle sessioni.

## CLI
<a name="rds-proxy-viewing.cli"></a>

 Per visualizzare il proxy utilizzando la CLI, utilizzare il comando [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html). Per impostazione predefinita, vengono visualizzati tutti i proxy di proprietà dell’account AWS. Per visualizzare i dettagli di un singolo proxy, specificarne il nome con il parametro `--db-proxy-name`. 

```
aws rds describe-db-proxies [--db-proxy-name proxy_name]
```

 Per visualizzare le altre informazioni associate al proxy, utilizza i seguenti comandi: 

```
aws rds describe-db-proxy-target-groups  --db-proxy-name proxy_name

aws rds describe-db-proxy-targets --db-proxy-name proxy_name
```

 Utilizza la seguente sequenza di comandi per visualizzare ulteriori dettagli sugli elementi associati al proxy: 

1.  Per ottenere un elenco di proxy, eseguire [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html). 

1.  Per visualizzare i parametri di connessione, ad esempio la percentuale massima di connessioni che il proxy può utilizzare, esegui [describe-db-proxy-target-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-target-groups.html) `--db-proxy-name`. Utilizza il nome del proxy come valore del parametro. 

1.  Per visualizzare i dettagli dell’istanza database RDS associata al gruppo di destinazione restituito, esegui [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html). 

## API RDS
<a name="rds-proxy-viewing.api"></a>

 Per visualizzare i proxy utilizzando l'API RDS, utilizza l'operazione [DescribedBProxies](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxies.html) . Restituisce valori del tipo di dati [DbProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxy.html) . 

 Puoi utilizzare gli identificatori proxy dal valore restituito per visualizzare i dettagli delle impostazioni di connessione per il proxy utilizzando l'operazione [DescribeDBProxyTargetGroups](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyTargetGroups.html). Restituisce valori del tipo di dati [DbProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxyTargetGroup.html) . 

 Puoi visualizzare l'istanza RDS o il cluster di database Aurora associato al proxy utilizzando l'operazione [DescribeDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyTargets.html). Restituisce valori del tipo di dati [DbProxyTarget](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxyTarget.html) . 

# Connessione a un database tramite RDS Proxy
<a name="rds-proxy-connecting"></a>

Il modo per connettersi a un’istanza database RDS tramite un proxy o connettendosi al database è generalmente lo stesso. Per ulteriori informazioni, consulta [Panoramica degli endpoint proxy](rds-proxy-endpoints.md#rds-proxy-endpoints-overview). 

**Topics**
+ [Connessione a un database utilizzando le credenziali del database](#rds-proxy-connecting-native)
+ [Connessione a un database tramite l'autenticazione IAM](#rds-proxy-connecting-iam)
+ [Considerazioni sulla connessione a Microsoft SQL Server](#rds-proxy-connecting-sqlserver)
+ [Considerazioni sulla connessione a PostgreSQL](#rds-proxy-connecting-postgresql)

## Connessione a un database utilizzando le credenziali del database
<a name="rds-proxy-connecting-native"></a>

 Utilizza i seguenti passaggi per connetterti a un proxy utilizzando le credenziali del database: 

1.  Trova l'endpoint del proxy. In Console di gestione AWS, puoi trovare l'endpoint nella pagina dei dettagli del proxy corrispondente. Con AWS CLI, è possibile utilizzare il [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html)comando. L’esempio seguente mostra come. 

   ```
   # Add --output text to get output as a simple tab-separated list.
   $ aws rds describe-db-proxies --query '*[*].{DBProxyName:DBProxyName,Endpoint:Endpoint}'
   [
       [
           {
               "Endpoint": "the-proxy.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy"
           },
           {
               "Endpoint": "the-proxy-other-secret.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-other-secret"
           },
           {
               "Endpoint": "the-proxy-rds-secret.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-rds-secret"
           },
           {
               "Endpoint": "the-proxy-t3.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-t3"
           }
       ]
   ]
   ```

1.  Specificare l’endpoint come parametro host nella stringa di connessione per l’applicazione client. Ad esempio, specificare l'endpoint proxy come valore per l'opzione `mysql -h` o l'opzione `psql -h`. 

1.  Fornisci lo stesso nome utente e la stessa password del database come fai normalmente. 

## Connessione a un database tramite l'autenticazione IAM
<a name="rds-proxy-connecting-iam"></a>

 Quando utilizzi l'autenticazione IAM con RDS Proxy, hai due opzioni per l'autenticazione tra il client e il proxy:
+ Configura gli utenti del database in modo che si autentichino con nomi utente e password normali. RDS Proxy recupera le credenziali del nome utente e della password da Secrets Manager. La connessione da RDS Proxy al database sottostante non passa tramite IAM.
+ È inoltre possibile utilizzare l'autenticazione end-to-end IAM, che si connette al database tramite il proxy utilizzando IAM senza richiedere le credenziali del database.

 Per connetterti a Server proxy per RDS con l’autenticazione IAM, utilizza la stessa procedura di connessione generale utilizzata per l’autenticazione IAM con un’istanza database RDS. Per informazioni generali sull'utilizzo di IAM, consulta [Sicurezza in Amazon RDS ](UsingWithRDS.md). Se utilizzi l'autenticazione end-to-end IAM, fornisci il plug-in di autenticazione IAM al tuo utente DB. Per informazioni, consulta [Creazione di un account database tramite l’autenticazione IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

 Le principali differenze nell'utilizzo di IAM per RDS Proxy includono le seguenti: 
+ Con l'autenticazione IAM standard, gli utenti del database dispongono di credenziali regolari all'interno del database. Si impostano i segreti Secrets Manager contenenti questi nomi utente e password e si autorizza RDS Proxy a recuperare le credenziali da Secrets Manager. L'autenticazione IAM si applica alla connessione tra il programma client e il proxy. Il proxy esegue quindi l'autenticazione nel database utilizzando il nome utente e le credenziali della password recuperate da Secrets Manager.
+ Con l'autenticazione end-to-end IAM, non è necessario configurare i segreti di Secrets Manager per le credenziali del database. L'autenticazione IAM si applica alla connessione tra il client al proxy e il proxy al database.
+ Invece dell'istanza, del cluster o dell'endpoint dell'istanza di lettura, specifica l'endpoint del proxy. Per informazioni dettagliate sull'endpoint proxy, vedere [Connessione all'istanza tramite l'autenticazione IAM](UsingWithRDS.IAMDBAuth.Connecting.md).
+ Quando ci si connette a un proxy utilizzando l'autenticazione IAM è necessario utilizzare Transport Layer Security (TLS)/Secure Sockets Layer (SSL).

È possibile concedere a un utente specifico l'accesso al proxy modificando la policy IAM. Di seguito è riportato un esempio.

```
"Resource": "arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-ABCDEFGHIJKL01234/db_user"
```

**Suggerimento**  
Quando configuri l'autenticazione IAM per le connessioni proxy RDS, segui queste importanti linee guida per evitare problemi di connessione:  
Non concedete il `rds_iam` ruolo mantenendo l'autenticazione generale con password per lo stesso utente o ruolo del database.
Ricorda che mentre i client si connettono al proxy RDS utilizzando l'autenticazione IAM, il proxy RDS si connette sempre al database utilizzando l'autenticazione tramite password tramite Secrets Manager.
Se si verificano frequenti interruzioni e riconnessioni della connessione, rimuovi eventuali `rds_iam` concessioni esistenti dall'utente o dal ruolo e utilizza solo l'autenticazione tramite password.
Assicurati che la tua politica in materia di password soddisfi i requisiti relativi ai caratteri sicuri SCRAM-SHA-256.
La combinazione di metodi di autenticazione IAM e password per lo stesso utente del database può causare instabilità della connessione.

## Considerazioni sulla connessione a Microsoft SQL Server
<a name="rds-proxy-connecting-sqlserver"></a>

Per connettere un proxy con l'autenticazione IAM, non utilizzare il campo della password. Fornisci invece la proprietà token appropriata per ogni tipo di driver di database nel campo del token. Ad esempio, utilizza la proprietà `accessToken` per JDBC, la proprietà `sql_copt_ss_access_token` per ODBC Oppure usa la `AccessToken` proprietà per il driver.NET SqlClient . Non puoi usare l'autenticazione IAM con i client che non supportano le proprietà dei token.

In alcune condizioni, il proxy non può condividere una connessione al database e associa la connessione dall'applicazione client al proxy a una connessione al database dedicata. Per ulteriori informazioni su queste condizioni, consulta [Evitare di effettuare il pinning di un Server proxy per RDS](rds-proxy-pinning.md).

## Considerazioni sulla connessione a PostgreSQL
<a name="rds-proxy-connecting-postgresql"></a>

Se si crea un nuovo utente del database PostgreSQL per la connessione a Server proxy per RDS, assicurarsi di concedere all’utente il privilegio `CONNECT` sul database. Senza questo privilegio, l’utente non può stabilire una connessione. Per ulteriori informazioni, consulta [Aggiungere un nuovo utente del database a un database PostgreSQL quando si utilizza Server proxy per RDS](rds-proxy-new-db-user.md#rds-proxy-new-db-user-pg).

Quando un client avvia una connessione a un database PostgreSQL, invia un messaggio di avvio che include coppie di stringhe di nome parametro e valore. Per i dettagli, vedere i `StartupMessage` in [Formati dei messaggi PostgreSQL](https://www.postgresql.org/docs/current/protocol-message-formats.html) nella documentazione di PostgreSQL. 

Quando si effettua la connessione tramite un proxy RDS, il messaggio di avvio può includere i seguenti parametri attualmente riconosciuti: 
+  `user` 
+  `database`

 Il messaggio di avvio può includere anche i seguenti parametri di runtime aggiuntivi: 
+ `[application\$1name](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-APPLICATION-NAME) `
+ `[client\$1encoding](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-CLIENT-ENCODING) `
+ `[DateStyle](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-DATESTYLE) `
+ `[TimeZone](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-TIMEZONE) `
+  `[extra\$1float\$1digits](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-EXTRA-FLOAT-DIGITS) `
+  `[ search\$1path ](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-SEARCH-PATH)` 

 Per ulteriori informazioni sulla messaggistica PostgreSQL, vedere [Frontend/Backend Protocol](https://www.postgresql.org/docs/current/protocol.html) nella documentazione di PostgreSQL.

 Per PostgreSQL, se si utilizza JDBC, è consigliabile effettuare quanto segue per evitare il pinning:
+ Impostare il parametro `assumeMinServerVersion` di connessione JDBC su almeno `9.0` per evitare il pinning. In questo modo si impedisce al driver JDBC di eseguire un ulteriore round trip durante l’avvio della connessione quando viene eseguito `SET extra_float_digits = 3`. 
+ Impostare il parametro di connessione JDBC `ApplicationName` su `any/your-application-name` per evitare il pinning. In questo modo si impedisce al driver JDBC di eseguire un ulteriore round trip durante l'avvio della connessione quando viene eseguito `SET application_name = "PostgreSQL JDBC Driver"`. Si noti che il parametro JDBC è `ApplicationName` ma il parametro `StartupMessage` PostgreSQL è `application_name`.

Per ulteriori informazioni, consulta [Evitare di effettuare il pinning di un Server proxy per RDS](rds-proxy-pinning.md). Per ulteriori informazioni sulla connessione tramite JDBC, vedere [Connessione al database](https://jdbc.postgresql.org/documentation/setup/) nella documentazione di PostgreSQL.

# Gestire un RDS Proxy
<a name="rds-proxy-managing"></a>

 Questa sezione fornisce informazioni su come gestire il funzionamento e la configurazione di Server proxy per RDS. Queste procedure consentono all'applicazione di utilizzare in modo più efficiente le connessioni al database e di ottenere il massimo riutilizzo della connessione. Più sfrutti il riutilizzo della connessione, maggiore sarà il risparmio in termini di sovraccarico di CPU e memoria. Questo a sua volta riduce la latenza per l'applicazione e consente al database di dedicare più risorse all'elaborazione delle richieste dell'applicazione. 

**Topics**
+ [Modifica di un RDS Proxy](rds-proxy-modifying-proxy.md)
+ [Aggiunta di un nuovo utente di database quando si utilizza Server proxy per RDS](rds-proxy-new-db-user.md)
+ [Passaggio dall'autenticazione IAM standard all'autenticazione end-to-end IAM per RDS Proxy](rds-proxy-iam-migration.md)
+ [Considerazioni sulla connessione a Server proxy per RDS](rds-proxy-connections.md)
+ [Evitare di effettuare il pinning di un Server proxy per RDS](rds-proxy-pinning.md)
+ [Eliminazione di un RDS Proxy](rds-proxy-deleting.md)

# Modifica di un RDS Proxy
<a name="rds-proxy-modifying-proxy"></a>

 Puoi modificare specifiche impostazioni associate a un proxy dopo aver creato il proxy. Esegui questa operazione modificando il proxy stesso, il suo gruppo di destinazione associato o entrambi. Ogni proxy ha un gruppo di destinazione associato. 

## Console di gestione AWS
<a name="rds-proxy-modifying-proxy.console"></a>

**Importante**  
I valori nei campi **Client authentication type** (Tipo di autenticazione client) e **IAM authentication** (autenticazione IAM) si applicano a tutti i segreti di Secrets Manager associati al proxy. Per specificare valori diversi per ogni segreto, modifica il proxy utilizzando invece l'API AWS CLI o.

**Per modificare le impostazioni di un proxy**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Nel riquadro di navigazione scegli **Proxies (Proxy)**. 

1.  Nell'elenco dei proxy, scegli il proxy di cui desideri modificare le impostazioni o passa alla relativa pagina dei dettagli. 

1.  Per **Actions (Operazioni)**, scegliere **Modify (Modifica)**. 

1.  Inserisci o scegli le proprietà da modificare. È possibile modificare le seguenti: 
   +  **Identificatore Proxy**: rinominare il proxy immettendo un nuovo identificatore. 
   +  **Timeout della connessione client per inattività**: immettere un periodo di tempo per il timeout della connessione client inattiva. 
   +  **Ruolo IAM**: modificare il ruolo IAM utilizzato per recuperare i segreti da Secrets Manager. 
**Nota**  
Non puoi creare un nuovo ruolo IAM se imposti **lo schema di autenticazione predefinito** sull'**autenticazione IAM**.
   +  **Segreti di Secrets Manager**: aggiungere o rimuovere segreti di Secrets Manager. Questi segreti corrispondono a nomi utente e password del database. 
   +  **Tipo di autenticazione client**: modifica il tipo di autenticazione per le connessioni dei client al proxy. 
   +  **Autenticazione IAM**: richiedi o disabilita l'autenticazione IAM per le connessioni al proxy. 
   +  **Schema di autenticazione predefinito**: modifica lo schema di autenticazione predefinito utilizzato dal proxy per le connessioni dei client al proxy e le connessioni dal proxy al database sottostante. 
   +  **Richiedi Transport Layer Security**: attivare o disattivare il requisito per Transport Layer Security (TLS). 
   +  **Gruppo di sicurezza VPC**: aggiungere o rimuovere gruppi di sicurezza VPC da utilizzare per il proxy. 
   +  **Abilitazione della registrazione avanzata**: abilitare o disabilitare la registrazione avanzata. 

1.  Scegliere **Modify (Modifica)**. 

Se non sono state trovate le impostazioni elencate che si desidera modificare, attenersi alla procedura seguente per aggiornare il gruppo di destinazione per il proxy. Il *gruppo di destinazione* associato a un proxy controlla le impostazioni relative alle connessioni del database fisico. Ogni proxy ha un gruppo di destinazione associato denominato `default`, che viene creato automaticamente insieme al proxy. Non è possibile rinominare il gruppo di destinazione predefinito.

 Puoi modificare il gruppo di destinazione solo dalla pagina dei dettagli del proxy, non dall'elenco nella pagina **Proxy** . 

**Per modificare le impostazioni di un gruppo di destinazione proxy**

1.  Dalla pagina **Proxy**, passa alla pagina dei dettagli di un proxy. 

1.  Per **Gruppi di destinazione**, scegli il collegamento di `default`. Attualmente, tutti i proxy hanno un singolo gruppo di destinazione denominato `default`. 

1.  Nella pagina dei dettagli del gruppo di destinazione di **default**, scegli **Modify (Modifica)**. 

1.  Scegli nuove impostazioni per le proprietà che è possibile modificare: 
   +  **Database**: puoi scegliere un diverso cluster o una diversa istanza database RDS. 
   +  **Connessioni massime del pool di connessioni**: puoi modificare la percentuale delle connessioni massime disponibili che il proxy può utilizzare. 
   +  **Filtri di pinning della sessione**: (opzionale) scegliere un filtro di pinning della sessione. Ciò elude le misure di sicurezza predefinite per il multiplexing delle connessioni al database tra connessioni client. Attualmente, l’impostazione non è supportata per PostgreSQL. L’unica scelta è `EXCLUDE_VARIABLE_SETS`. 

     L’abilitazione di questa impostazione può far sì che le variabili di sessione di una connessione interessino le altre connessioni. Ciò può causare errori o problemi di correttezza se le query dipendono dai valori delle variabili di sessione impostati al di fuori della transazione corrente. Valuta l'utilizzo di questa opzione dopo aver verificato che sia sicuro per le applicazioni condividere le connessioni al database tra connessioni client.

     I seguenti modelli possono essere considerati sicuri:
     + Istruzioni `SET` in cui non viene apportata alcuna modifica al valore della variabile di sessione effettiva, ovvero non viene apportata alcuna modifica alla variabile di sessione.
     + Modifichi il valore della variabile di sessione ed esegui un'istruzione nella stessa transazione.

     Per ulteriori informazioni, consulta [Evitare di effettuare il pinning di un Server proxy per RDS](rds-proxy-pinning.md). 
   +  **Timeout del prestito di connessione**: puoi regolare l'intervallo di timeout del prestito di connessione. Questa impostazione si applica quando il numero massimo di connessioni è già in uso per il proxy. In questi casi, è possibile specificare per quanto tempo il proxy attende che una connessione diventi disponibile prima di restituire un errore di timeout. 
   + **Query di inizializzazione**. (Opzionale) Aggiungi una query di inizializzazione o modifica quella corrente. Puoi specificare una o più istruzioni SQL per l'esecuzione del proxy all'apertura di ogni nuova connessione al database. L’impostazione è in genere utilizzata con le istruzioni `SET` per assicurarsi che ogni connessione abbia impostazioni identiche. Assicurati che la query che aggiungi sia valida. Per includere più variabili in una singola istruzione `SET`, utilizza la virgola come separatore. Ad esempio:

     ```
     SET variable1=value1, variable2=value2
     ```

     Per più istruzioni, utilizzare il punto e virgola come separatore.

    Alcune proprietà, ad esempio l'identificatore del gruppo di destinazione e il motore del database, sono fisse. 

1.  Scegli **Modify target group (Modifica gruppo di destinazione)**. 

## AWS CLI
<a name="rds-proxy-modifying-proxy.cli"></a>

 Per modificare un proxy utilizzando il AWS CLI, usa i comandi [modify-db-proxymodify-db-proxy-target](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy.html)[-group [deregister-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/deregister-db-proxy-targets.html)](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html)e [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html). 

 Con il comando `modify-db-proxy`, è possibile modificare proprietà come le seguenti: 
+  L'insieme di segreti Secrets Manager usati dal proxy. 
+  Indica se TLS è necessario. 
+  Il timeout del client inattivo. 
+  Indica se registrare ulteriori informazioni dalle istruzioni SQL per il debug. 
+  Il ruolo IAM utilizzato per recuperare i segreti Secrets Manager. 
+  I gruppi di sicurezza utilizzati dal proxy. 
+ Lo schema di autenticazione predefinito associato al proxy.

 Nell'esempio seguente viene illustrato come rinominare un proxy esistente. 

```
aws rds modify-db-proxy --db-proxy-name the-proxy --new-db-proxy-name the_new_name
```

Con il comando `modify-db-proxy-target-group`, puoi modificare le impostazioni relative alla connessione o rinominare il gruppo di destinazione. Attualmente, tutti i proxy hanno un singolo gruppo di destinazione denominato `default`. Quando utilizzi questo gruppo di destinazione, devi specificare il nome del proxy e `default` come nome del gruppo di destinazione. Non è possibile rinominare il gruppo di destinazione predefinito.

 Nell'esempio seguente viene illustrato come controllare prima l'impostazione `MaxIdleConnectionsPercent` per un proxy e quindi modificarla utilizzando il gruppo di destinazione. 

```
aws rds describe-db-proxy-target-groups --db-proxy-name the-proxy

{
    "TargetGroups": [
        {
            "Status": "available",
            "UpdatedDate": "2019-11-30T16:49:30.342Z",
            "ConnectionPoolConfig": {
                "MaxIdleConnectionsPercent": 50,
                "ConnectionBorrowTimeout": 120,
                "MaxConnectionsPercent": 100,
                "SessionPinningFilters": []
            },
            "TargetGroupName": "default",
            "CreatedDate": "2019-11-30T16:49:27.940Z",
            "DBProxyName": "the-proxy",
            "IsDefault": true
        }
    ]
}

aws rds modify-db-proxy-target-group --db-proxy-name the-proxy --target-group-name default --connection-pool-config '
{ "MaxIdleConnectionsPercent": 75 }'

{
    "DBProxyTargetGroup": {
        "Status": "available",
        "UpdatedDate": "2019-12-02T04:09:50.420Z",
        "ConnectionPoolConfig": {
            "MaxIdleConnectionsPercent": 75,
            "ConnectionBorrowTimeout": 120,
            "MaxConnectionsPercent": 100,
            "SessionPinningFilters": []
        },
        "TargetGroupName": "default",
        "CreatedDate": "2019-11-30T16:49:27.940Z",
        "DBProxyName": "the-proxy",
        "IsDefault": true
    }
}
```

 Con i comandi `deregister-db-proxy-targets` e `register-db-proxy-targets`, puoi modificare le istanze database RDS a cui il proxy è associato tramite il relativo gruppo di destinazione. Attualmente, ogni proxy può connettersi a un’istanza database RDS. Il gruppo di destinazione tiene traccia dei dettagli di connessione per tutte le istanze database RDS in una configurazione Multi-AZ.

 L'esempio seguente inizia con un proxy associato a un cluster Aurora MySQL denominato `cluster-56-2020-02-25-1399`. Nell'esempio viene illustrato come modificare il proxy in modo che possa connettersi a un cluster diverso denominato `provisioned-cluster`. 

 Quando lavori con un'istanza database RDS, puoi specificare l'opzione `--db-instance-identifier`. 

 L'esempio seguente modifica un proxy Aurora MySQL. Un proxy Aurora PostgreSQL ha la porta 5432. 

```
aws rds describe-db-proxy-targets --db-proxy-name the-proxy

{
    "Targets": [
        {
            "Endpoint": "instance-9814.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-9814"
        },
        {
            "Endpoint": "instance-8898.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-8898"
        },
        {
            "Endpoint": "instance-1018.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-1018"
        },
        {
            "Type": "TRACKED_CLUSTER",
            "Port": 0,
            "RdsResourceId": "cluster-56-2020-02-25-1399"
        },
        {
            "Endpoint": "instance-4330.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-4330"
        }
    ]
}

aws rds deregister-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier cluster-56-2020-02-25-1399

aws rds describe-db-proxy-targets --db-proxy-name the-proxy

{
    "Targets": []
}

aws rds register-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier provisioned-cluster

{
    "DBProxyTargets": [
        {
            "Type": "TRACKED_CLUSTER",
            "Port": 0,
            "RdsResourceId": "provisioned-cluster"
        },
        {
            "Endpoint": "gkldje.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "gkldje"
        },
        {
            "Endpoint": "provisioned-1.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "provisioned-1"
        }
    ]
}
```

## API RDS
<a name="rds-proxy-modifying-proxy.api"></a>

 [Per modificare un proxy utilizzando l'API RDS, si utilizzano le operazioni [Modify, Modify DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxy.html) DBProxyTargetGroup, [Deregister DBProxy Targets e [DBProxyRegister](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html) Targets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeregisterDBProxyTargets.html).](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html) 

 Con `ModifyDBProxy`, è possibile modificare proprietà come le seguenti: 
+  L'insieme di segreti Secrets Manager usati dal proxy. 
+  Indica se TLS è necessario. 
+  Il timeout del client inattivo. 
+  Indica se registrare ulteriori informazioni dalle istruzioni SQL per il debug. 
+  Il ruolo IAM utilizzato per recuperare i segreti Secrets Manager. 
+  I gruppi di sicurezza utilizzati dal proxy. 

Con `ModifyDBProxyTargetGroup`, puoi modificare le impostazioni relative alla connessione. Attualmente, tutti i proxy hanno un singolo gruppo di destinazione denominato `default`. Quando utilizzi questo gruppo di destinazione, devi specificare il nome del proxy e `default` come nome del gruppo di destinazione. Non è possibile rinominare il gruppo di destinazione predefinito.

 Con `DeregisterDBProxyTargets` e `RegisterDBProxyTargets`, puoi modificare l’istanza database RDS a cui il proxy è associato tramite il relativo gruppo di destinazione. Attualmente, ogni proxy può connettersi a un'istanza database RDS . Il gruppo di destinazione tiene traccia dei dettagli di connessione per le istanze database RDS in una configurazione Multi-AZ . 

# Aggiunta di un nuovo utente di database quando si utilizza Server proxy per RDS
<a name="rds-proxy-new-db-user"></a>

In alcuni casi, puoi aggiungere un nuovo utente di database a un cluster o un'istanza database RDS associato a un proxy. Procedi a seconda che tu stia utilizzando l'autenticazione standard con i segreti di Secrets Manager o l'autenticazione end-to-end IAM.

Se utilizzi l'autenticazione IAM standard, segui queste istruzioni:

1. Crea un nuovo segreto Secrets Manager, utilizzando la procedura descritta in [Impostazione delle credenziali del database per RDS Proxy](rds-proxy-secrets-arns.md). 

1. Aggiornare il ruolo IAM per consentire a RDS Proxy l'accesso al nuovo segreto Secrets Manager. A tale scopo, aggiornare la sezione Risorse della policy di ruolo IAM. 

1. Modifica il proxy RDS per aggiungere il nuovo segreto di Secrets Manager nell'area **Segreti Secrets Manager**.

1.  Se il nuovo utente sostituisce un utente esistente, aggiorna le credenziali memorizzate nel segreto Secrets Manager del proxy per l'utente esistente. 

Se utilizzi l'autenticazione end-to-end IAM, devi creare l'utente del database e configurare le autorizzazioni IAM. Per eseguire questa operazione, segui questa procedura:

1. Crea un nuovo utente del database nel tuo database che corrisponda al nome utente o ruolo IAM che desideri utilizzare per l'autenticazione.

1. Assicurati che l'utente del database sia configurato con il plug-in di autenticazione IAM nel database. Per informazioni, consulta [Creazione di un account database tramite l’autenticazione IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

1. Aggiorna la policy IAM per concedere l'`rds-db:connect`autorizzazione all'utente o al ruolo IAM, come descritto in[Creazione di una policy IAM per l'autenticazione end-to-end IAM](rds-proxy-iam-setup.md#rds-proxy-iam-setup-e2e-steps).

1. Assicurati che il proxy sia configurato per utilizzare l'autenticazione IAM come schema di autenticazione predefinito.

Con l'autenticazione end-to-end IAM, non è necessario gestire le credenziali del database nei segreti di Secrets Manager, poiché le credenziali IAM vengono utilizzate per l'autenticazione dal client al proxy e dal proxy al database. 

## Aggiungere un nuovo utente del database a un database PostgreSQL quando si utilizza Server proxy per RDS
<a name="rds-proxy-new-db-user-pg"></a>

Quando aggiungi un nuovo utente al database PostgreSQL, se hai eseguito il seguente comando:

```
REVOKE CONNECT ON DATABASE postgres FROM PUBLIC;
```

Concedi all’utente `rdsproxyadmin` il privilegio `CONNECT` in modo che possa monitorare le connessioni sul database di destinazione. 

```
GRANT CONNECT ON DATABASE postgres TO rdsproxyadmin;
```

È anche possibile consentire ad altri utenti del database di destinazione di eseguire controlli dell'integrità passando `rdsproxyadmin` all'utente del database nel comando precedente.

## Modifica della password per un utente di database quando si utilizza Server proxy per RDS
<a name="rds-proxy-changing-db-user-password"></a>

In alcuni casi, puoi modificare la password per un utente di database in un'istanza database RDS associata a un proxy. In tal caso, aggiorna il segreto Secrets Manager corrispondente con la nuova password.

Se utilizzi l'autenticazione end-to-end IAM, non devi aggiornare alcuna password nei segreti di Secrets Manager.

# Passaggio dall'autenticazione IAM standard all'autenticazione end-to-end IAM per RDS Proxy
<a name="rds-proxy-iam-migration"></a>

 Se attualmente utilizzi l'autenticazione IAM standard per RDS Proxy, in cui i client si autenticano sul proxy utilizzando IAM ma il proxy si connette al database tramite segreti, puoi migrare all'autenticazione end-to-end IAM in cui entrambe le client-to-proxy proxy-to-database connessioni utilizzano l'autenticazione IAM. 

**Per passare all'autenticazione IAM end-to-end**

1. **Aggiorna le autorizzazioni del ruolo IAM del proxy RDS**

   Crea una politica di autorizzazione proxy aggiornata che includa sia Secrets Manager che `rds:db-connect` le autorizzazioni:

   ```
   # Create updated proxy permission policy
   cat > updated-proxy-policy.json ≪ EOF
   ```

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "GetSecretsValue",
         "Action": [
           "secretsmanager:GetSecretValue"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-1234f"
         ]
       },
       {
         "Sid": "RdsDBConnect",
         "Action": [
           "rds-db:connect"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:rds-db:us-east-1:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/jane_doe"
         ]
       }
     ]
   }
   ```

   Aggiorna la politica relativa al tuo ruolo:

   ```
   aws iam put-role-policy \
               --role-name RDSProxyRole \
               --policy-name UpdatedProxyPermissions \
               --policy-document file://updated-proxy-policy.json
   ```

1. Modifica il tuo proxy RDS per abilitare l'autenticazione end-to-end IAM

   ```
   aws rds modify-db-proxy \
     --db-proxy-name my-database-proxy \
     --default-auth-scheme IAM_AUTH \
     --region us-east-1
   ```

   Verifica che lo stato del proxy RDS sia **Disponibile** e lo `DefaultAuthScheme` sia `IAM_AUTH` prima di procedere per garantire zero tempi di inattività durante la migrazione.

   ```
   aws rds describe-db-proxies --db-proxy-name my-database-proxy --region us-east-1
   ```

   Output previsto:

   ```
   {
     "DBProxies": [
       {
         "DBProxyName": "my-database-proxy",
         "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123456789abcdef",
         "Status": "available",
         ...
         "DefaultAuthScheme": "IAM_AUTH"
       }
     ]
   }
   ```

1. Abilita l'autenticazione IAM sul database

   ```
   aws rds modify-db-cluster \
     --db-cluster-identifier my-database-cluster \
     --enable-iam-database-authentication \
     --region us-east-1
   ```

1. Configura l'utente del database per l'autenticazione IAM

   Per RDS per PostgreSQL:

   ```
   GRANT rds_iam TO jane_doe;
   ```

   Per RDS per MySQL e RDS per MariaDB:

   ```
   ALTER USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
   ALTER USER 'jane_doe'@'%' REQUIRE SSL;
   ```

1. Non è necessario modificare il codice dell'applicazione client. Il processo di connessione rimane lo stesso:

   Per RDS per PostgreSQL:

   ```
   # Generate authentication token
   export PGPASSWORD=$(aws rds generate-db-auth-token \
     --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     --port 5432 \
     --username jane_doe \
     --region us-east-1)
   
   # Connect to database through proxy
   psql "host=my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com port=5432 user=jane_doe dbname=postgres password=$PGPASSWORD sslmode=require sslrootcert=us-east-1-bundle.pem"
   ```

   Per RDS per MySQL e RDS per MariaDB:

   ```
   # Generate authentication token
   export MYSQL_PWD=$(aws rds generate-db-auth-token \
     --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     --port 3306 \
     --username jane_doe \
     --region us-east-1)
   
   # Connect to database through proxy
   mysql -h my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     -P 3306 \
     -u jane_doe \
     --ssl-ca=us-east-1-bundle.pem \
     --enable-cleartext-plugin
   ```

# Considerazioni sulla connessione a Server proxy per RDS
<a name="rds-proxy-connections"></a>

## Configurazione delle impostazioni di connessione
<a name="rds-proxy-connection-pooling-tuning"></a>

Per regolare il pooling di connessioni del proxy RDS, è possibile modificare le seguenti impostazioni:
+ [IdleClientTimeout](#rds-proxy-connection-pooling-tuning.idleclienttimeout)
+ [MaxConnectionsPercent](#rds-proxy-connection-pooling-tuning.maxconnectionspercent)
+ [MaxIdleConnectionsPercent](#rds-proxy-connection-pooling-tuning.maxidleconnectionspercent)
+ [ConnectionBorrowTimeout](#rds-proxy-connection-pooling-tuning.connectionborrowtimeout)

### IdleClientTimeout
<a name="rds-proxy-connection-pooling-tuning.idleclienttimeout"></a>

È possibile specificare per quanto tempo una connessione client può essere inattiva prima che il proxy la chiuda. Il valore predefinito è 1.800 secondi (30 minuti). 

Una connessione client è considerata *inattiva* quando l'applicazione non invia una nuova richiesta entro il tempo specificato dopo il completamento della richiesta precedente. La connessione al database sottostante rimane aperta e viene restituita al pool di connessioni. Pertanto, è disponibile per essere riutilizzata per nuove connessioni client. Se si desidera che il proxy rimuova in modo proattivo le connessioni obsolete, è necessario ridurre il timeout della connessione client inattiva. Se il carico di lavoro stabilisce connessioni frequenti con il proxy, è possibile aumentare il timeout della connessione client inattiva per risparmiare sui costi di creazione delle connessioni.

Questa impostazione è rappresentata dal **timeout della connessione client per inattività** nella console RDS e nell'impostazione `IdleClientTimeout` nella AWS CLI e nell'API. Per informazioni su come modificare il valore del campo **Idle client connection timeout** (Timeout di connessione client inattivo) nella console RDS, consulta [Console di gestione AWS](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Per informazioni su come modificare il valore dell'impostazione `IdleClientTimeout`, consulta il comando della CLI [modify-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy.html) o l'operazione API [ModifyDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxy.html).

### MaxConnectionsPercent
<a name="rds-proxy-connection-pooling-tuning.maxconnectionspercent"></a>

Puoi limitare il numero di connessioni che un proxy RDS può stabilire con il database di destinazione. Puoi specificare il limite come percentuale delle connessioni massime disponibili per il tuo database. Questa impostazione è rappresentata dal campo **Connection pool maximum connection** (Connessioni massime del pool di connessioni) nella console RDS e nell'impostazione `MaxConnectionsPercent` della AWS CLI o dell'API. 

Il valore `MaxConnectionsPercent` viene espresso come percentuale dell'impostazione `max_connections` per l'istanza database RDS usata dal gruppo di destinazione. Il proxy non crea tutte queste connessioni in anticipo. Questa impostazione consente al proxy di stabilire queste connessioni in base al carico di lavoro necessario.

Ad esempio, per una destinazione di database registrata con il parametro `max_connections` impostato su 1000 e il parametro `MaxConnectionsPercent` impostato su 95, RDS Proxy imposta 950 connessioni come limite massimo per le connessioni simultanee al database di destinazione specificato.

Un effetto collaterale comune del raggiungimento del numero massimo di connessioni al database consentite dal carico di lavoro è un aumento della latenza complessiva delle query e un incremento del valore della metrica `DatabaseConnectionsBorrowLatency`. È possibile monitorare le connessioni al database attualmente utilizzate e il totale consentito confrontando le metriche `DatabaseConnections` e `MaxDatabaseConnectionsAllowed`.

Se imposti questo parametri, segui le best practice riportate di seguito:
+ Consenti un margine sufficiente per le connessioni per la modifica dello schema del carico di lavoro. Si consiglia di impostare il parametro su un valore superiore di almeno il 30% rispetto all'utilizzo massimo monitorato. Poiché RDS Proxy ridistribuisce le quote di connessione del database su più nodi, le modifiche alla capacità interna potrebbero richiedere un margine di almeno il 30% per connessioni aggiuntive per evitare l'incremento delle latenze di prestito.
+ RDS Proxy riserva un certo numero di connessioni per il monitoraggio attivo per supportare il failover rapido, l'instradamento del traffico e le operazioni interne. Il parametro `MaxDatabaseConnectionsAllowed` non include queste connessioni riservate. Rappresenta il numero di connessioni disponibili per servire il carico di lavoro e può essere inferiore al valore derivato dall'impostazione `MaxConnectionsPercent`.

  Valori `MaxConnectionsPercent` minimi consigliati
  + db.t3.small: 30
  + db.t3.medium o superiore: 20

Per informazioni su come modificare il valore del campo **Connection pool maximum connections** (Numero massimo di connessioni del pool di connessioni) nella console RDS, consulta [Console di gestione AWS](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Per informazioni su come modificare il valore dell'impostazione `MaxConnectionsPercent`, consulta il comando della CLI [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) o l'operazione API [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

 Per informazioni sui limiti di connessione al database, consulta [Numero massimo di connessioni di database](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.MaxConnections). 

### MaxIdleConnectionsPercent
<a name="rds-proxy-connection-pooling-tuning.maxidleconnectionspercent"></a>

Puoi controllare il numero di connessioni al database inattive che RDS Proxy può mantenere nel pool di connessione. Per impostazione predefinita, Server proxy per RDS considera che una connessione al database nel proprio pool sia *inattiva* quando non c’è stata alcuna attività sulla connessione per cinque minuti. 

Il valore `MaxIdleConnectionsPercent` viene espresso come percentuale dell’impostazione `max_connections` per il gruppo di destinazione dell’istanza database RDS. Il valore predefinito è 50% di `MaxConnectionsPercent` e il limite superiore è il valore di `MaxConnectionsPercent`. Ad esempio, se `MaxConnectionsPercent` è 80, il valore predefinito di `MaxIdleConnectionsPercent` è 40. Se il valore di `MaxConnectionsPercent` non è specificato, per RDS per SQL Server `MaxIdleConnectionsPercent` è 5, mentre per tutti gli altri motori il valore predefinito è 50.

Con un valore elevato, il proxy lascia aperta un'alta percentuale di connessioni al database inattive. Con un valore basso, il proxy chiude un'alta percentuale di connessioni al database inattive. Se i carichi di lavoro sono imprevedibili, valuta la possibilità di impostare un valore elevato per `MaxIdleConnectionsPercent`. In tal modo Server proxy per RDS può soddisfare i picchi di attività senza aprire molte nuove connessioni al database. 

Questa impostazione è rappresentata dall'impostazione `MaxIdleConnectionsPercent` di `DBProxyTargetGroup` nella AWS CLI e nell'API. Per informazioni su come modificare il valore dell'impostazione `MaxIdleConnectionsPercent`, consulta il comando della CLI [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) o l'operazione API [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

 Per informazioni sui limiti di connessione al database, consulta [Numero massimo di connessioni di database](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.MaxConnections). 

### ConnectionBorrowTimeout
<a name="rds-proxy-connection-pooling-tuning.connectionborrowtimeout"></a>

Puoi specificare per quanto tempo RDS Proxy attende che una connessione di database nel pool di connessione diventi disponibile per l'uso prima di restituire un errore di timeout. Il valore predefinito è 120 secondi. Questa impostazione si applica quando il numero di connessioni è pari al massimo e quindi non sono disponibili connessioni nel pool di connessioni. Si applica anche quando non è disponibile alcuna istanza database appropriata per gestire la richiesta, ad esempio quando è in corso un’operazione di failover. Utilizzando questa impostazione, è possibile impostare il periodo di attesa migliore per l’applicazione senza modificare il timeout della query nel codice dell’applicazione.

Questa impostazione è rappresentata dal campo **Connection borrow timeout** (Timeout del prestito della connessione) nella console RDS o nell'impostazione `ConnectionBorrowTimeout` di `DBProxyTargetGroup` nella AWS CLI o nell'API. Per informazioni su come modificare il valore del campo **Connection borrow timeout** (Timeout del prestito della connessione) nella console RDS, consulta [Console di gestione AWS](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Per informazioni su come modificare il valore dell'impostazione `ConnectionBorrowTimeout`, consulta il comando della CLI [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) o l'operazione API [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

## Connessioni client e database
<a name="rds-proxy-connection-life"></a>

Le connessioni dall'applicazione a Server proxy per RDS sono note come connessioni client. Le connessioni da un proxy al database sono le connessioni database. Quando si utilizza Server proxy per RDS, le connessioni client terminano sul proxy mentre le connessioni database vengono gestite all'interno di Server proxy per RDS.

Il pool di connessioni lato applicazione può offrire il vantaggio di ridurre la creazione di connessioni ricorrenti tra l’applicazione e Server proxy per RDS.

Considera i seguenti aspetti di configurazione prima di implementare un pool di connessioni lato applicazione:
+ Durata massima della connessione client: Server proxy per RDS applica una durata massima delle connessioni client di 24 ore. Questo valore non è configurabile. Configura il pool con una durata massima della connessione inferiore a 24 ore per evitare interruzioni impreviste delle connessioni client. 
+ Timeout di inattività della connessione client: Server proxy per RDS applica un tempo di inattività massimo per le connessioni client. Configura il pool con un valore di timeout di inattività della connessione inferiore all'impostazione di timeout di inattività della connessione client per Server proxy per RDS per evitare interruzioni impreviste della connessione.

Il numero massimo di connessioni client configurate nel pool di connessioni lato applicazione non deve essere limitato all’impostazione **max\$1connections** per Server proxy per RDS.

Il pooling consente di prolungare la durata delle connessioni client. In caso di pinning delle connessioni, il pooling delle connessioni client può ridurre l’efficienza del multiplexing. Le connessioni client bloccate tramite pinning ma inattive nel pool di connessioni lato applicazione continuano a mantenere la connessione al database e impediscono che venga riutilizzata da altre connessioni client. Esamina i log del proxy per verificare la presenza di pinning delle connessioni.

**Nota**  
RDS Proxy chiude le connessioni al database all'incirca dopo 24 ore quando non sono più in uso. Il proxy esegue questa operazione indipendentemente dal valore dell'impostazione massima delle connessioni inattive.

# Evitare di effettuare il pinning di un Server proxy per RDS
<a name="rds-proxy-pinning"></a>

 Il multiplexing è più efficiente quando le richieste del database non si basano su informazioni di stato provenienti da richieste precedenti. In tal caso, RDS Proxy può riutilizzare una connessione alla conclusione di ogni transazione. Esempi di tali informazioni sullo stato includono la maggior parte delle variabili e dei parametri di configurazione che puoi modificare attraverso le istruzioni `SET` o `SELECT`. Le transazioni SQL su una connessione client possono eseguire il multiplex tra le connessioni di database sottostanti per impostazione predefinita. 

 Le connessioni al proxy possono entrare in uno stato noto come *pinning*. Quando una connessione viene bloccata, ogni transazione successiva utilizza la stessa connessione al database sottostante fino al termine della sessione. Altre connessioni client, inoltre, non possono riutilizzare tale connessione al database fino al termine della sessione. La sessione termina quando viene interrotta la connessione client. 

 RDS Proxy collega automaticamente una connessione client a una specifica connessione DB quando rileva una modifica dello stato della sessione che non è appropriata per altre sessioni. Il pinning riduce l'efficacia del riutilizzo della connessione. Se tutte o quasi tutte le connessioni riscontrano il pinning, potresti modificare il codice dell'applicazione o il carico di lavoro per ridurre le condizioni che causano il blocco. 

Ad esempio, l’applicazione modifica una variabile di sessione o un parametro di configurazione. In questo caso, le istruzioni successive possono basarsi sulla nuova variabile o sul nuovo parametro per essere effettive. Pertanto, quando RDS Proxy elabora le richieste di modifica delle variabili di sessione o delle impostazioni di configurazione, il medesimo effettua il pinning di tale sessione alla connessione DB. In questo modo, lo stato della sessione rimane attivo per tutte le transazioni successive nella stessa sessione. 

 Per alcuni motori di database, questa regola non si applica a tutti i parametri che puoi impostare. RDS Proxy tiene traccia di determinate istruzioni e variabili. Pertanto, Server proxy per RDS non applica il pinning alla sessione quando si effettuano queste modifiche. In tal caso, RDS Proxy riutilizza la connessione solo per altre sessioni con gli stessi valori per tali impostazioni. Per dettagli sulle istruzioni che Server proxy per RDS può tracciare per un motore di database, consulta quanto segue: 
+ [Istruzioni tracciate da Server proxy per RDS per database RDS per SQL Server](#rds-proxy-pinning.sql-server-tracked-vars)
+ [Istruzioni tracciate da Server proxy per RDS per database RDS per MariaDB e RDS per MySQL](#rds-proxy-pinning.mysql-tracked-vars)

## Istruzioni tracciate da Server proxy per RDS per database RDS per SQL Server
<a name="rds-proxy-pinning.sql-server-tracked-vars"></a>

Il Server proxy per RDS tiene traccia delle seguenti istruzioni SQL Server:
+ `USE`
+ `SET ANSI_NULLS`
+ `SET ANSI_PADDING`
+ `SET ANSI_WARNINGS`
+ `SET ARITHABORT`
+ `SET CONCAT_NULL_YIELDS_NULL`
+ `SET CURSOR_CLOSE_ON_COMMIT`
+ `SET DATEFIRST`
+ `SET DATEFORMAT`
+ `SET LANGUAGE`
+ `SET LOCK_TIMEOUT`
+ `SET NUMERIC_ROUNDABORT`
+ `SET QUOTED_IDENTIFIER`
+ `SET TEXTSIZE`
+ `SET TRANSACTION ISOLATION LEVEL`

## Istruzioni tracciate da Server proxy per RDS per database RDS per MariaDB e RDS per MySQL
<a name="rds-proxy-pinning.mysql-tracked-vars"></a>

Di seguito sono riportate le istruzioni MySQL e MariaDB di cui Server proxy per RDS tiene traccia:
+ DROP DATABASE
+ DROP SCHEMA
+ USE

Di seguito sono riportate le variabili MySQL e MariaDB di cui Server proxy per RDS tiene traccia:
+ `AUTOCOMMIT`
+ `AUTO_INCREMENT_INCREMENT`
+ `CHARACTER SET (or CHAR SET)`
+ `CHARACTER_SET_CLIENT`
+ `CHARACTER_SET_DATABASE`
+ `CHARACTER_SET_FILESYSTEM`
+ `CHARACTER_SET_CONNECTION`
+ `CHARACTER_SET_RESULTS`
+ `CHARACTER_SET_SERVER`
+ `COLLATION_CONNECTION`
+ `COLLATION_DATABASE`
+ `COLLATION_SERVER`
+ `INTERACTIVE_TIMEOUT`
+ `NAMES`
+ `NET_WRITE_TIMEOUT`
+ `QUERY_CACHE_TYPE`
+ `SESSION_TRACK_SCHEMA`
+ `SQL_MODE`
+ `TIME_ZONE`
+ `TRANSACTION_ISOLATION (or TX_ISOLATION)`
+ `TRANSACTION_READ_ONLY (or TX_READ_ONLY)`
+ `WAIT_TIMEOUT`

**Nota**  
Server proxy per RDS tiene traccia delle modifiche alle variabili `TRANSACTION_ISOLATION` e `TRANSACTION_READ_ONLY` quando le imposti nell’ambito della sessione. Tuttavia, se le imposti nell’ambito della transazione successiva, Proxy RDS blocca le connessioni. Questo comportamento si applica sia che si utilizzi un’istruzione `SET` o un’istruzione `SET TRANSACTION` per configurare questi valori.

## Riduzione dell'associazione
<a name="rds-proxy-pinning.minimizing"></a>

 L'ottimizzazione delle prestazioni di RDS Proxy comporta il tentativo di massimizzare il riutilizzo della connessione a livello di transazione (multiplexing) riducendo al minimo il pinning. 

È possibile ridurre l'associazione effettuando le seguenti operazioni: 
+  Evitare richieste di database non necessarie che potrebbero causare il pinning. 
+  Impostare le variabili e le impostazioni di configurazione in modo coerente su tutte le connessioni. In questo modo, le sessioni successive hanno maggiori probabilità di riutilizzare le connessioni con quelle specifiche impostazioni. 

   Tuttavia, per l'impostazione di PostgreSQL una variabile porterà al pinning della sessione. 
+  Per un database della famiglia di motori MySQL, applica un filtro di pinning della sessione al proxy. Puoi esentare determinati tipi di operazioni dal pinning della sessione se sai che tale operazione non influisce sul corretto funzionamento dell'applicazione. 
+  Scopri con quale frequenza si verifica il pinning monitorando la CloudWatch metrica `DatabaseConnectionsCurrentlySessionPinned` di Amazon. Per informazioni su questa e altri parametri CloudWatch, consulta [Monitoraggio dei parametri RDS Proxy con Amazon CloudWatchMonitoraggio di RDS Proxy con CloudWatch](rds-proxy.monitoring.md). 
+  Se utilizzi istruzioni `SET` per eseguire l'inizializzazione identica per ogni connessione client, puoi farlo pur mantenendo il multiplexing a livello di transazione. In questo caso, sposta le istruzioni che impostano lo stato della sessione iniziale nella query di inizializzazione utilizzata da un proxy. Questa proprietà è una stringa contenente una o più istruzioni SQL, separate da punto e virgola. 

   Ad esempio, puoi definire una query di inizializzazione per un proxy che imposta determinati parametri di configurazione. Quindi, RDS Proxy applica tali impostazioni ogni volta che imposta una nuova connessione per tale proxy. Puoi rimuovere le istruzioni `SET` corrispondenti dal codice dell'applicazione, in modo che non interferiscano con il multiplexing a livello di transazione. 

   Per visualizzare i parametri sulla frequenza con cui si verifica il pinning in relazione a un proxy, consulta [Monitoraggio dei parametri RDS Proxy con Amazon CloudWatchMonitoraggio di RDS Proxy con CloudWatch](rds-proxy.monitoring.md). 

## Condizioni che causano il pinning per tutte le famiglie di motori
<a name="rds-proxy-pinning.all"></a>

 Il proxy effettua il pinning della sessione alla connessione corrente nelle seguenti situazioni in cui il multiplexing potrebbe causare un comportamento imprevisto: 
+ Qualsiasi istruzione con una dimensione del testo maggiore di 16 KB fa sì che il proxy effettui il pinning della sessione.

## Condizioni che causano l'associazione per RDS per Microsoft SQL Server
<a name="rds-proxy-pinning.sqlserver"></a>

 Per RDS per SQL Server, anche le seguenti interazioni causano l'associazione: 
+ L'utilizzo di più set di risultati attivi (MARS). Per informazioni su MARS, consulta la documentazione di [SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/native-client/features/using-multiple-active-result-sets-mars?view=sql-server-ver16).
+ L'utilizzo della comunicazione con Distributed Transaction Coordinator (DTC).
+ La creazione di tabelle temporanee, transazioni, cursori o istruzioni preparate.
+ L'utilizzo delle seguenti istruzioni `SET`:
  + `SET ANSI_DEFAULTS`
  + `SET ANSI_NULL_DFLT`
  + `SET ARITHIGNORE`
  + `SET DEADLOCK_PRIORITY`
  + `SET FIPS_FLAGGER`
  + `SET FMTONLY`
  + `SET FORCEPLAN`
  + `SET IDENTITY_INSERT`
  + `SET NOCOUNT`
  + `SET NOEXEC`
  + `SET OFFSETS`
  + `SET PARSEONLY`
  + `SET QUERY_GOVERNOR_COST_LIMIT`
  + `SET REMOTE_PROC_TRANSACTIONS`
  + `SET ROWCOUNT`
  + `SET SHOWPLAN_ALL`, `SHOWPLAN_TEXT` e `SHOWPLAN_XML`
  + `SET STATISTICS`
  + `SET XACT_ABORT`

## Condizioni che causano l'associazione per RDS per MariaDB e RDS per MySQL
<a name="rds-proxy-pinning.mysql"></a>

 Per MariaDB e MySQL, anche le seguenti interazioni causano il pinning: 
+ Le dichiarazioni di blocco esplicito delle tabelle `LOCK TABLE`, `LOCK TABLES` o `FLUSH TABLES WITH READ LOCK` causano il pinning della sessione da parte del proxy. 
+ La creazione di blocchi denominati mediante `GET_LOCK` fa sì che il proxy esegua il pinning della sessione. 
+ L’impostazione di una variabile utente o di una variabile di sistema (con alcune eccezioni) effettua il pinning al proxy. Se ciò limita in modo significativo il riutilizzo della connessione, è possibile configurare le operazioni `SET` per evitare il pinning. A tale scopo, regolate la proprietà dei filtri di blocco della sessione. Per ulteriori informazioni, consultare [Creazione di un proxy per Amazon RDS](rds-proxy-creating.md) e [Modifica di un RDS Proxy](rds-proxy-modifying-proxy.md).
+ La creazione di una tabella temporanea fa sì che il proxy effettui il pinning della sessione. In questo modo, il contenuto della tabella temporanea viene conservato per tutta la sessione indipendentemente dai limiti delle transazioni. 
+ Le chiamate delle funzioni `ROW_COUNT` e `FOUND_ROWS` talvolta causano il pinning. 
+ Le istruzioni preparate fanno sì che il proxy effettui il pinning della sessione. Questa regola si applica se l'istruzione preparata utilizza il testo SQL o il protocollo binario. 
+ RDS Proxy non blocca le connessioni quando si utilizza SET LOCAL.
+ Le chiamate di stored procedure e di funzioni archiviate non causano il pinning. RDS Proxy non rileva alcuna modifica dello stato della sessione derivante da tali chiamate. Assicurati che l’applicazione non cambi lo stato della sessione all’interno delle routine memorizzate se si fa affidamento su tale stato di sessione per persistere tra le transazioni. Ad esempio, Server proxy per RDS non è attualmente compatibile con una stored procedure crea una tabella temporanea che persiste tra tutte le transazioni. 
+ Interrogazioni con commenti eseguibili per MySQL (sintassi /\$1\$1 ... \$1/) o MariaDB (sintassi /\$1M\$1 ... \$1/) causa il blocco. RDS Proxy non è in grado di analizzare il codice SQL incorporato in questi commenti per tenere traccia delle modifiche allo stato della sessione.

 Se disponi di un'approfondita conoscenza del comportamento dell'applicazione, puoi scegliere di ignorare il comportamento del pinning per determinate istruzioni dell'applicazione. A tale scopo, puoi selezionare l'opzione **(Filtri di pinning della sessione** durante la creazione del proxy. Attualmente, è possibile disattivare l'aggiunta della sessione per l'impostazione delle variabili di sessione e delle impostazioni di configurazione. 

## Condizioni che causano l'associazione per RDS per PostgreSQL
<a name="rds-proxy-pinning.postgres"></a>

 Per PostgreSQL, le seguenti interazioni causano anche il pinning: 
+  L’utilizzo dei comandi `SET`.
+  Utilizzo dei comandi `PREPARE`, `DISCARD`, `DEALLOCATE` o `EXECUTE` per gestire le istruzioni preparate.
+  Creazione di sequenze temporanee, tabelle o viste.
+  Dichiarazione dei cursori.
+  Eliminazione dello stato della sessione.
+  Ascolto su un canale di notifica.
+  Caricamento di un modulo di libreria come `auto_explain`.
+  Manipolazione delle sequenze usando funzioni come `nextval` e `setval`.
+  Interazione con i blocchi utilizzando funzioni come `pg_advisory_lock` e `pg_try_advisory_lock`. 
**Nota**  
Server proxy per RDS non prevede blocchi di consulenza a livello di transazione, in particolare `pg_advisory_xact_lock`, `pg_advisory_xact_lock_shared`, `pg_try_advisory_xact_lock` e `pg_try_advisory_xact_lock_shared`.
+ Impostazione di un parametro o reimpostazione di un parametro sul valore predefinito. In particolare, utilizzo dei comandi `SET` e `set_config` per assegnare valori predefiniti alle variabili di sessione.
+ Le chiamate di stored procedure e di funzioni archiviate non causano il pinning. RDS Proxy non rileva alcuna modifica dello stato della sessione derivante da tali chiamate. Assicurati che l’applicazione non cambi lo stato della sessione all’interno delle routine memorizzate se si fa affidamento su tale stato di sessione per persistere tra le transazioni. Ad esempio, Server proxy per RDS non è attualmente compatibile con una stored procedure crea una tabella temporanea che persiste tra tutte le transazioni. 
+ Eliminazione dello stato della sessione. Se si utilizzano librerie di connection pooling con una query `DISCARD ALL` configurata come query di ripristino, Server proxy per RDS blocca la connessione client al momento del rilascio. Ciò riduce l’efficienza del multiplexing del proxy e potrebbe portare a risultati imprevisti perché il comando `DISCARD ALL` può interferire con la gestione dello stato della sessione.

# Eliminazione di un RDS Proxy
<a name="rds-proxy-deleting"></a>

 È possibile eliminare un proxy quando non è più necessario. Oppure, è possibile eliminare un proxy se si mette fuori servizio l’istanza database o il cluster ad esso associato. 

## Console di gestione AWS
<a name="rds-proxy-deleting.console"></a>

**Per eliminare un proxy**

1. Accedi alla Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Nel riquadro di navigazione scegli **Proxies (Proxy)**. 

1.  Scegli il proxy da eliminare dall'elenco. 

1.  Scegli **Delete Proxy (Elimina proxy)**. 

## AWS CLI
<a name="rds-proxy-deleting.CLI"></a>

 Per eliminare un proxy DB, utilizzare il comando AWS CLI [delete-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-proxy.html). Per rimuovere le associazioni correlate, utilizzare anche il comando [deregister-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/deregister-db-proxy-targets.html). 

```
aws rds delete-db-proxy --name proxy_name
```

```
aws rds deregister-db-proxy-targets
    --db-proxy-name proxy_name
    [--target-group-name target_group_name]
    [--target-ids comma_separated_list]       # or
    [--db-instance-identifiers instance_id]       # or
    [--db-cluster-identifiers cluster_id]
```

## API RDS
<a name="rds-proxy-deleting.API"></a>

 Per eliminare un proxy DB, chiama la funzione API Amazon RDS [DeleteDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxy.html). Per eliminare elementi e associazioni correlati, è anche possibile chiamare le funzioni [DeleteDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxyTargetGroup.html) e [DeregisterDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeregisterDBProxyTargets.html). 

# Utilizzo degli endpoint Amazon RDS Proxy
<a name="rds-proxy-endpoints"></a>

Gli endpoint Server proxy per RDS offrono modi flessibili ed efficienti per gestire le connessioni al database, migliorando la scalabilità, la disponibilità e la sicurezza. Con gli endpoint proxy, è possibile:
+ **Semplificare il monitoraggio e la risoluzione dei problemi**: utilizzare più endpoint per monitorare e gestire le connessioni da diverse applicazioni in modo indipendente.

**Topics**
+ [Panoramica degli endpoint proxy](#rds-proxy-endpoints-overview)
+ [Limitazioni per gli endpoint proxy](#rds-proxy-endpoints-limits)
+ [Endpoint proxy per cluster di database Multi-AZ](#rds-proxy-endpoints-overview-maz)
+ [Accesso ai su VPCs](#rds-proxy-cross-vpc)
+ [Creazione di un endpoint proxy](rds-proxy-endpoints.CreatingEndpoint.md)
+ [Visualizzazione degli endpoint proxy](rds-proxy-endpoints.DescribingEndpoint.md)
+ [Modifica di un endpoint proxy](rds-proxy-endpoints.ModifyingEndpoint.md)
+ [Eliminazione di un endpoint proxy](rds-proxy-endpoints.DeletingEndpoint.md)

## Panoramica degli endpoint proxy
<a name="rds-proxy-endpoints-overview"></a>

L'uso degli endpoint Server proxy per RDS include gli stessi tipi di procedure degli endpoint di istanza RDS. Se non hai familiarità con gli endpoint RDS, puoi consultare [Connessione a un'istanza database che esegue il motore del database MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html) e [Connessione a un'istanza database che esegue il modulo di gestione di database PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html). 

Quando si crea un endpoint proxy, è possibile associarlo a un cloud privato virtuale (VPC) diverso da quello del proxy. In questo modo è possibile connettersi al proxy da un altro VPC, ad esempio da un VPC utilizzato da un’applicazione diversa all’interno dell’organizzazione. 

Per informazioni sui limiti associati agli endpoint proxy, consulta [Limitazioni per gli endpoint proxy](#rds-proxy-endpoints-limits). 

Nei log Server proxy per RDS, ogni voce viene preceduta dal nome dell’endpoint proxy associato. Può essere il nome specificato per un endpoint definito dall'utente o il nome speciale `default` per l'endpoint predefinito del proxy. read/write 

Ogni endpoint proxy ha il proprio set di metriche. CloudWatch Monitora le metriche per tutti gli endpoint proxy, un endpoint specifico o tutti gli read/write endpoint di un proxy o di sola lettura. Per ulteriori informazioni, consulta [Monitoraggio dei parametri RDS Proxy con Amazon CloudWatchMonitoraggio di RDS Proxy con CloudWatch](rds-proxy.monitoring.md). 

Un endpoint proxy utilizza lo stesso meccanismo di autenticazione del proxy associato. RDS Proxy imposta automaticamente i permessi e le autorizzazioni per l'endpoint definito dall'utente, coerenti con le proprietà del proxy associato. 

## Limitazioni per gli endpoint proxy
<a name="rds-proxy-endpoints-limits"></a>

Gli endpoint Server proxy per RDS hanno le seguenti limitazioni:
+  L’endpoint Server proxy per RDS predefinito non può essere modificato. 
+  Il numero massimo di endpoint definiti dall'utente per un proxy è 20. Pertanto, un proxy può avere fino a 21 endpoint: l'endpoint predefinito più 20 creati. 
+  Quando associ degli endpoint aggiuntivi a un proxy, RDS Proxy determina automaticamente quali istanze database nel cluster utilizzare per ciascun endpoint. 
+  Per i IPv6 tipi di rete endpoint o dual-stack, il VPC e le sottoreti devono essere configurati per supportare il tipo di rete selezionato. 

Quando si crea un proxy, RDS crea automaticamente un endpoint VPC per comunicazioni sicure tra le applicazioni e il database. L’endpoint VPC è visibile e accessibile dalla console Amazon VPC.

L'aggiunta di un nuovo endpoint proxy fornisce un endpoint di interfaccia. AWS PrivateLink Se si aggiungono uno o più endpoint al proprio proxy, si incorre in costi aggiuntivi. Per ulteriori informazioni, consulta [Prezzi di Server proxy per RDS](https://aws.amazon.com/rds/proxy/pricing/).

## Endpoint proxy per cluster di database Multi-AZ
<a name="rds-proxy-endpoints-overview-maz"></a>

Per impostazione predefinita, l'endpoint a cui ci si connette quando si utilizza RDS Proxy con un cluster DB Multi-AZ è dotato di funzionalità. read/write Di conseguenza, questo endpoint invia tutte le richieste all'istanza di scrittura del cluster. Tutte queste connessioni vengono conteggiate nel valore `max_connections` dell'istanza di scrittura. Se il proxy è associato a un cluster DB Multi-AZ, è possibile creare endpoint aggiuntivi read/write o di sola lettura per quel proxy.

Puoi utilizzare un endpoint di sola lettura con il proxy per le query di sola lettura. Puoi farlo allo stesso modo in cui utilizzi l'endpoint di lettura per un cluster di database Multi-AZ. Puoi così sfruttare la scalabilità di lettura di un cluster di database Multi-AZ con una o più istanze database di lettura. Puoi eseguire più query simultanee e creare più connessioni simultanee utilizzando un endpoint di sola lettura e aggiungendo più istanze database di lettura al cluster di database Multi-AZ in base alle necessità. Questi endpoint di lettura consentono di migliorare la scalabilità di lettura delle applicazioni che richiedono un uso intensivo di query. Gli endpoint di lettura consentono inoltre di migliorare la disponibilità delle connessioni se un’istanza database di lettura nel cluster non è disponibile. 

### Endpoint di lettura per cluster di database Multi-AZ
<a name="rds-proxy-endpoints-reader-stub"></a>

 Con RDS Proxy, puoi creare e utilizzare gli endpoint di lettura. Tuttavia, questi endpoint funzionano solo per i proxy associati a cluster di database Multi-AZ. Se utilizzi la CLI RDS o l'API, è possibile che venga visualizzato l'attributo `TargetRole` con un valore di `READ_ONLY`. È possibile sfruttare tali proxy modificando la destinazione di un proxy da un’istanza database RDS a un cluster di database Multi-AZ.

 Puoi creare e connetterti a endpoint di sola lettura denominati *endpoint di lettura* quando utilizzi Server proxy per RDS con cluster di database Multi-AZ.

#### In che modo gli endpoint di lettura aiutano la disponibilità delle applicazioni
<a name="rds-proxy-endpoints-reader-hapa"></a>

 In alcuni casi, un'istanza di lettura nel cluster potrebbe non essere disponibile. In questo caso, le connessioni che utilizzano un endpoint di lettura di un proxy DB possono essere ripristinate più rapidamente di quelle che utilizzano l'endpoint di lettura del cluster di database Multi-AZ. Server proxy per RDS instrada le connessioni solo all'istanza del lettore disponibile nel cluster. Non vi è alcun ritardo dovuto alla memorizzazione nella cache DNS quando un’istanza diventa non disponibile. 

 Se la connessione è multiplexing, Server proxy per RDS indirizza le query successive a un'istanza di lettura diversa senza alcuna interruzione dell'applicazione. Se un'istanza di lettura si trova in uno stato non disponibile, tutte le connessioni client all'endpoint dell'istanza vengono chiuse. 

 Se la connessione è bloccata, la successiva query sulla connessione restituisce un errore. Tuttavia, l’applicazione può riconnettersi immediatamente allo stesso endpoint proxy. RDS Proxy indirizza la connessione a un’istanza database del lettore diversa che si trova nello stato `available`. Se ti riconnetti manualmente, Server proxy per RDS non controlla il ritardo di replica tra la vecchia e la nuova istanza di lettura. 

 Se il cluster di database Multi-AZ non dispone di istanze di lettura disponibili, Server proxy per RDS tenta di connettersi a un endpoint di lettura disponibile. Se nessuna istanza di lettura diventa disponibile entro il periodo di timeout di prestito della connessione, il tentativo di connessione ha esito negativo. Se invece un’istanza di lettura diventa disponibile, il tentativo di connessione ha esito positivo. 

#### In che modo gli endpoint di lettura aiutano la scalabilità delle query
<a name="rds-proxy-endpoints-reader-scalability"></a>

 Gli endpoint di lettura per un proxy supportano la scalabilità delle query del cluster di database Multi-AZ nei seguenti modi: 
+  Laddove possibile, RDS Proxy utilizza la stessa istanza database di lettura per tutti i problemi di query utilizzando una particolare connessione all’endpoint di lettura. In questo modo, un insieme di query correlate sulle stesse tabelle può sfruttare la memorizzazione nella cache, l'ottimizzazione del piano e così via, su una particolare istanza database. 
+  Se un'istanza database di lettura non è disponibile, l'effetto sull'applicazione dipende dal fatto che la sessione sia multiplexing o bloccata. Se la sessione è multiplexing, RDS Proxy indirizza tutte le query successive a un'istanza database di lettura diversa senza richiedere alcuna azione da parte tua. Se invece la sessione è bloccata, l'applicazione riceve un errore e deve riconnettersi. Puoi riconnetterti immediatamente all'endpoint di lettura e RDS Proxy indirizza la connessione a un'istanza database di lettura disponibile. Per ulteriori informazioni sul multiplexing e sul blocco per le sessioni proxy, consulta [Panoramica dei concetti RDS Proxy](rds-proxy.howitworks.md#rds-proxy-overview). 

## Accesso ai su VPCs
<a name="rds-proxy-cross-vpc"></a>

 Per impostazione predefinita, i componenti dello stack di tecnologia di RDS si trovano tutti nello stesso Amazon VPC. Supponi, ad esempio, che un'applicazione in esecuzione su un'istanza Amazon EC2 si connetta a un'istanza database Amazon RDS. In questo caso, il server delle applicazioni e il database devono trovarsi entrambi all'interno dello stesso VPC. 

 Con Server proxy per RDS è possibile configurare l’accesso a un’istanza database Amazon RDS in un VPC da risorse in un altro VPC come le istanze EC2. Ad esempio, l'organizzazione potrebbe avere più applicazioni che accedono alle stesse risorse del database. Ogni applicazione potrebbe trovarsi nel proprio VPC. 

 Per consentire l'accesso tra VPC, crea un nuovo endpoint per il proxy. Il proxy stesso risiede nello stesso VPC dell'istanza database Amazon RDS. Tuttavia, l'endpoint tra VPC si trova nell'altro VPC, insieme alle altre risorse, ad esempio le istanze EC2. L'endpoint tra VPC è associato a sottoreti e gruppi di sicurezza dello stesso VPC così come EC2 e altre risorse. Queste associazioni consentono di connettersi all'endpoint dalle applicazioni che altrimenti non potrebbero accedere al database a causa delle restrizioni del VPC. 

 Nella procedura seguente viene illustrato come creare e accedere a un endpoint tra VPC tramite RDS Proxy: 

1.  Creane due VPCs o scegline due VPCs che già usi per il lavoro con . Ogni VPC deve avere le proprie risorse di rete associate, ad esempio un gateway Internet, tabelle di routing, sottoreti e gruppi di sicurezza. Se si dispone di un solo VPC, è possibile consultare la procedura [Nozioni di base su Amazon RDS](CHAP_GettingStarted.md) per configurare un altro VPC per l'utilizzo corretto di RDS. È possibile inoltre esaminare il VPC esistente nella console Amazon EC2 per vedere quali tipi di risorse si connettono tra loro. 

1.  Crea un proxy database associato all'istanza database Amazon RDS a cui desideri connetterti. Segui la procedura riportata in [Creazione di un proxy per Amazon RDS](rds-proxy-creating.md). 

1.  Nella pagina **Dettagli** del proxy nella console RDS, nella sezione **Endpoint proxy** seleziona **Crea endpoint**. Segui la procedura riportata in [Creazione di un endpoint proxy](rds-proxy-endpoints.CreatingEndpoint.md). 

1.  Scegli se rendere l'endpoint read/write cross-VPC o di sola lettura. 

1.  Invece di accettare il valore predefinito dello stesso VPC dell'istanza database Amazon RDS, seleziona un VPC diverso. Questo VPC deve trovarsi nella stessa AWS regione del VPC in cui risiede il proxy. 

1.  Ora invece di accettare i valori predefiniti per le sottoreti e i gruppi di sicurezza dallo stesso VPC dell'istanza database Amazon RDS, effettua nuove selezioni. Le nuove selezioni dovranno essere relative alle sottoreti e ai gruppi di sicurezza del VPC scelto. 

1. Non è necessario modificare alcuna delle impostazioni per i segreti di Secrets Manager. Le stesse credenziali funzionano per tutti gli endpoint del proxy, indipendentemente dal VPC in cui si trova ciascun endpoint. Allo stesso modo, quando si utilizza l'autenticazione IAM, la configurazione e le autorizzazioni IAM funzionano in modo coerente su tutti gli endpoint proxy, anche quando gli endpoint sono diversi. VPCs Non è richiesta alcuna configurazione IAM aggiuntiva per endpoint.

1.  Attendi che il nuovo endpoint raggiunga lo stato **Disponibile**. 

1.  Prendi nota del nome completo dell'endpoint. Questo è il valore che termina in `Region_name.rds.amazonaws.com` fornito come parte della stringa di connessione per l'applicazione di database. 

1.  Accedi al nuovo endpoint da una risorsa nello stesso VPC dell'endpoint. Un modo semplice per testare questo processo consiste nel creare una nuova istanza EC2 in questo VPC. Accedere quindi all’istanza EC2 ed eseguire il comando `mysql` o `psql` per connettersi utilizzando il valore dell’endpoint nella stringa di connessione. 

# Creazione di un endpoint proxy
<a name="rds-proxy-endpoints.CreatingEndpoint"></a>

Per creare un endpoint proxy, seguire queste istruzioni:

## Console
<a name="rds-proxy-endpoints.CreatingEndpoint.CON"></a>

**Per creare un endpoint proxy**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Nel riquadro di navigazione scegli **Proxies (Proxy)**. 

1.  Fai clic sul nome del proxy per il quale desideri creare un nuovo endpoint. 

    Sarà visualizzata la pagina dei dettagli del proxy. 

1.  In **Endpoint proxy**, seleziona **Crea endpoint proxy**. 

    Verrà visualizzata la finestra **Crea endpoint proxy**. 

1.  Per **Nome endpoint proxy**, specifica un nome descrittivo a scelta. 

1.  Per il **ruolo Target**, scegli se rendere l'endpoint read/write o di sola lettura. 

    Le connessioni che utilizzano gli read/write endpoint possono eseguire qualsiasi tipo di operazione, come istruzioni DDL (Data Definition Language), istruzioni DML (Data Manipulation Language) e query. Questi endpoint si connettono sempre all'istanza primaria del cluster di database RDS. È possibile utilizzare gli read/write endpoint per operazioni generali sul database quando si utilizza un solo endpoint nell'applicazione. È inoltre possibile utilizzare gli read/write endpoint per operazioni amministrative, applicazioni di elaborazione delle transazioni online (OLTP) e lavori extract-transform-load (ETL). 

    Le connessioni che utilizzano un endpoint di sola lettura possono soltanto eseguire query. Server proxy per RDS può utilizzare una delle istanze di lettura per ogni connessione all'endpoint. In questo modo, un'applicazione ad uso intensivo di query può sfruttare i vantaggi della capacità di clustering dei cluster di database Multi-AZ. Queste connessioni di sola lettura non impongono alcun sovraccarico sull’istanza primaria del cluster. In questo modo, le query di report e analisi non rallentano le operazioni di scrittura delle applicazioni OLTP. 

1.  Per **Virtual Private Cloud (VPC)**, scegli l'impostazione predefinita per accedere all'endpoint dalle stesse EC2 istanze o altre risorse che normalmente vengono utilizzate per accedere al proxy o al database associato. Per impostare l'accesso tra VPC per questo proxy, scegli un VPC diverso da quello predefinito. Per ulteriori informazioni sull'accesso tra VPC, consulta [Accesso ai su VPCs](rds-proxy-endpoints.md#rds-proxy-cross-vpc). 

1.  Per il **tipo di rete dell’endpoint**, scegliere la versione IP per l’endpoint proxy. Le opzioni disponibili sono:
   + **IPv4**— L'endpoint proxy utilizza solo IPv4 indirizzi (impostazione predefinita).
   + **IPv6**— L'endpoint proxy utilizza solo IPv6 indirizzi.
   + **Dual-stack**: l'endpoint proxy supporta entrambi gli indirizzi. IPv4 IPv6 

   Per utilizzare IPv6 il dual-stack, il VPC e le sottoreti devono essere configurati per supportare il tipo di rete selezionato.

1.  Per **Sottoreti**, RDS Proxy riempie le stesse sottoreti del proxy associato per impostazione predefinita. Per limitare l’accesso all’endpoint in modo che solo una parte dell’intervallo di indirizzi del VPC possa connettersi, rimuovere una o più sottoreti. 

1.  Per **Gruppo di sicurezza VPC** puoi selezionare un gruppo di sicurezza esistente o crearne uno nuovo. Per impostazione predefinita, RDS Proxy riempie lo stesso gruppo o gruppi di sicurezza del proxy associato. Se le regole in entrata e in uscita per il proxy sono appropriate per questo endpoint, lasciare la scelta predefinita. 

    Se decidi di creare un nuovo gruppo di sicurezza, specifica un nome per il gruppo di sicurezza in questa pagina. Quindi modifica le impostazioni del gruppo di sicurezza dalla console in un secondo momento. EC2 

1.  Scegli **Crea endpoint proxy**. 

## AWS CLI
<a name="rds-proxy-endpoints.CreatingEndpoint.CLI"></a>

 Per creare un endpoint proxy, usa il AWS CLI [create-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-proxy-endpoint.html)comando. 

 Includi i parametri obbligatori seguenti: 
+  `--db-proxy-name value` 
+  `--db-proxy-endpoint-name value` 
+  `--vpc-subnet-ids list_of_ids`. Separa la sottorete IDs con degli spazi. Non specificare l'ID del VPC stesso. 

 Puoi inoltre includere i seguenti parametri facoltativi: 
+  `--target-role { READ_WRITE | READ_ONLY }`. Questo parametro per impostazione predefinita è `READ_WRITE`. Quando il proxy è associato a un cluster di database Multi-AZ che contiene solo un’istanza database di scrittura, non sarà possibile specificare `READ_ONLY`. Per ulteriori informazioni sull’uso previsto degli endpoint di sola lettura con cluster di database Multi-AZ, consulta [Endpoint di lettura per cluster di database Multi-AZ](rds-proxy-endpoints.md#rds-proxy-endpoints-reader-stub). 
+  `--vpc-security-group-ids value`. Separa il gruppo di sicurezza IDs con degli spazi. Se ometti questo parametro, RDS Proxy utilizza il gruppo di sicurezza predefinito per il VPC. Il proxy RDS determina il VPC in base alla IDs sottorete specificata per il parametro. `--vpc-subnet-ids` 
+  `--endpoint-network-type { IPV4 | IPV6 | DUAL }`. Questo parametro specifica la versione IP per l’endpoint proxy. Il valore predefinito è `IPV4`. Per utilizzare `IPV6` o `DUAL`, il VPC e le sottoreti devono essere configurati per supportare il tipo di rete selezionato. 

**Example**  
 Nell'esempio seguente viene creato un endpoint proxy denominato `my-endpoint`.   
Per Linux, macOS o Unix:  

```
aws rds create-db-proxy-endpoint \
  --db-proxy-name my-proxy \
  --db-proxy-endpoint-name my-endpoint \
  --vpc-subnet-ids subnet_id subnet_id subnet_id ... \
  --target-role READ_ONLY \
  --vpc-security-group-ids security_group_id \
  --endpoint-network-type DUAL
```
Per Windows:  

```
aws rds create-db-proxy-endpoint ^
  --db-proxy-name my-proxy ^
  --db-proxy-endpoint-name my-endpoint ^
  --vpc-subnet-ids subnet_id_1 subnet_id_2 subnet_id_3 ... ^
  --target-role READ_ONLY ^
  --vpc-security-group-ids security_group_id ^
  --endpoint-network-type DUAL
```

## API RDS
<a name="rds-proxy-endpoints.CreatingEndpoint.API"></a>

 [Per creare un endpoint proxy, utilizzare l'azione Create Endpoint dell'API RDS. DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBProxyEndpoint.html) 

# Visualizzazione degli endpoint proxy
<a name="rds-proxy-endpoints.DescribingEndpoint"></a>

Per visualizzare gli endpoint proxy esistenti, seguire queste istruzioni:

## Console
<a name="rds-proxy-endpoints.DescribingEndpoint.CON"></a>

**Per visualizzare i dettagli di un endpoint proxy**

1. Accedi alla Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Nel riquadro di navigazione scegli **Proxies (Proxy)**. 

1.  Nell'elenco scegli il proxy di cui si desidera visualizzare l'endpoint. Fai clic sul nome del proxy per visualizzarne la pagina dei dettagli. 

1.  Nella sezione **Endpoint proxy**, scegli l'endpoint che desideri visualizzare. Fai clic sul relativo nome per visualizzare la pagina dei dettagli. 

1.  Esamina i parametri di cui ti interessano i valori. Puoi controllare proprietà come le seguenti: 
   +  Se l'endpoint è di lettura/scrittura o di sola lettura.
   +  L'indirizzo dell'endpoint utilizzato in una stringa di connessione al database.
   +  Le sottoreti e i gruppi di sicurezza del VPC associati all'attività.

## AWS CLI
<a name="rds-proxy-endpoints.DescribingEndpoint.CLI"></a>

 Per visualizzare uno o più endpoint proxy, utilizzare il comando AWS CLI [describe-db-proxy-endpoints](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-endpoints.html).

 Puoi includere i seguenti parametri facoltativi: 
+  `--db-proxy-endpoint-name` 
+  `--db-proxy-name` 

 Nell'esempio seguente viene descritto l'endpoint proxy `my-endpoint`. 

**Example**  
Per Linux, macOS o Unix:  

```
aws rds describe-db-proxy-endpoints \
  --db-proxy-endpoint-name my-endpoint
```
Per Windows:  

```
aws rds describe-db-proxy-endpoints ^
  --db-proxy-endpoint-name my-endpoint
```

## API RDS
<a name="rds-proxy-endpoints.DescribingEndpoint.API"></a>

 Per descrivere uno o più endpoint proxy, utilizza l'operazione [DescribeDBProxyEndpoints](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyEndpoints.html) dell'API RDS. 

# Modifica di un endpoint proxy
<a name="rds-proxy-endpoints.ModifyingEndpoint"></a>

Per modificare gli endpoint proxy, segui queste istruzioni:

## Console
<a name="rds-proxy-endpoints.ModifyingEndpoint.CON"></a>

**Per modificare uno o più endpoint proxy**

1. Accedi alla Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Nel riquadro di navigazione scegli **Proxies (Proxy)**. 

1. Nell'elenco seleziona il proxy di cui desideri modificare l'endpoint. Fai clic sul nome del proxy per visualizzarne la pagina dei dettagli.

1.  Nella sezione **Endpoint proxy**, scegli l'endpoint che desideri modificare. Puoi selezionarlo dall'elenco oppure fare clic sul relativo nome e visualizzarne la pagina dei dettagli. 

1.  Nella pagina dei dettagli del proxy, sotto la sezione **Endpoint proxy**, seleziona **Modifica**. In alternativa, nella pagina dei dettagli dell’endpoint proxy, in **Operazioni**, seleziona **Modifica**.

1.  Modificare i valori dei parametri desiderati.

1.  Scegli **Save changes** (Salva modifiche). 

## AWS CLI
<a name="rds-proxy-endpoints.ModifyingEndpoint.CLI"></a>

 Per modificare un endpoint proxy, utilizza il comando AWS CLI [modify-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-endpoint.html) con i seguenti parametri obbligatori: 
+  `--db-proxy-endpoint-name` 

 Specifica le modifiche alle proprietà dell'endpoint utilizzando uno o più dei seguenti parametri: 
+  `--new-db-proxy-endpoint-name` 
+  `--vpc-security-group-ids`. Separa gli ID dei gruppi di sicurezza con gli spazi. 

 Nel seguente esempio l'endpoint proxy `my-endpoint` viene ridenominato in `new-endpoint-name`. 

**Example**  
Per Linux, macOS o Unix:  

```
aws rds modify-db-proxy-endpoint \
  --db-proxy-endpoint-name my-endpoint \
  --new-db-proxy-endpoint-name new-endpoint-name
```
Per Windows:  

```
aws rds modify-db-proxy-endpoint ^
  --db-proxy-endpoint-name my-endpoint ^
  --new-db-proxy-endpoint-name new-endpoint-name
```

## API RDS
<a name="rds-proxy-endpoints.ModifyingEndpoint.API"></a>

 Per modificare un endpoint proxy, utilizza l'operazione [ModifyDBProxyEndpoint](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyEndpoint.html) dell'API RDS. 

# Eliminazione di un endpoint proxy
<a name="rds-proxy-endpoints.DeletingEndpoint"></a>

 Per eliminare un endpoint per il proxy, seguire queste istruzioni: 

**Nota**  
 Non è possibile eliminare l’endpoint proxy predefinito creato automaticamente da Server proxy per RDS per ogni proxy.   
 Quando elimini un proxy, RDS Proxy elimina automaticamente tutti gli endpoint associati. 

## Console
<a name="rds-proxy-endpoints.DeleteEndpoint.console"></a>

**Per eliminare un endpoint proxy utilizzando il Console di gestione AWS**

1.  Nel riquadro di navigazione scegli **Proxies (Proxy)**. 

1.  Nell'elenco seleziona il proxy per cui desideri eliminare l'endpoint. Fai clic sul nome del proxy per visualizzarne la pagina dei dettagli. 

1.  Nella sezione **Endpoint proxy**, scegli l'endpoint che desideri eliminare. Puoi selezionare uno o più endpoint dall'elenco oppure fare clic sul nome di un singolo endpoint e visualizzarne la pagina dei dettagli. 

1.  Nella pagina dei dettagli del proxy, sotto la sezione **Endpoint proxy**, seleziona **Elimina**. In alternativa, nella pagina dei dettagli dell’endpoint proxy, in **Operazioni**, seleziona **Elimina**. 

## AWS CLI
<a name="rds-proxy-endpoints.DeleteEndpoint.cli"></a>

 Per eliminare un endpoint proxy, esegui il comando [delete-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-proxy-endpoint.html) con i seguenti parametri obbligatori: 
+  `--db-proxy-endpoint-name` 

 Il comando seguente elimina l'endpoint proxy denominato `my-endpoint`. 

Per Linux, macOS o Unix:

```
aws rds delete-db-proxy-endpoint \
  --db-proxy-endpoint-name my-endpoint
```

Per Windows:

```
aws rds delete-db-proxy-endpoint ^
  --db-proxy-endpoint-name my-endpoint
```

## API RDS
<a name="rds-proxy-endpoints.DeleteEndpoint.api"></a>

 Per eliminare un endpoint proxy con l'API RDS, esegui l'operazione [DeleteDBProxyEndpoint](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxyEndpoint.html). Specifica il nome dell'endpoint proxy per il parametro `DBProxyEndpointName`. 

# Monitoraggio dei parametri RDS Proxy con Amazon CloudWatch
<a name="rds-proxy.monitoring"></a>

 Puoi monitorare RDS Proxy utilizzando Amazon CloudWatch. CloudWatch raccoglie ed elabora i dati non elaborati dai proxy trasformandoli in parametri leggibili quasi in tempo reale. Per trovare questi parametri nella console CloudWatch, seleziona **Metrics (Parametri)**, quindi seleziona **RDS** e scegli **Per-Proxy Metrics (Parametri per proxy)**. Per maggiori informazioni, consulta [Utilizzo dei parametri di Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) nella Guida per l'utente di Amazon CloudWatch. 

**Nota**  
 RDS pubblica questi parametri per ogni istanza Amazon EC2 sottostante associata al proxy. Un singolo proxy potrebbe essere servito da più di un'istanza EC2. Utilizza le statistiche di CloudWatch per aggregare i valori di un proxy in tutte le istanze associate.   
 Alcuni di questi parametri potrebbero non essere visibili fino al completamento della prima connessione mediante un proxy. 

 Nei log RDS Proxy, ogni voce è preceduta dal nome dell'endpoint proxy associato. Questo nome può essere il nome specificato per un endpoint definito dall’utente o il nome speciale `default` relativo all’endpoint predefinito di un proxy che esegue richieste di lettura/scrittura. 

 Tutte le metriche RDS Proxy sono nel gruppo `proxy`. 

 Ogni endpoint proxy ha i propri parametri CloudWatch. Puoi monitorare l'utilizzo di ciascun endpoint proxy in modo indipendente. Per ulteriori informazioni sugli endpoint proxy, consulta [Utilizzo degli endpoint Amazon RDS Proxy](rds-proxy-endpoints.md). 

 Puoi aggregare i valori per ogni parametro utilizzando uno dei seguenti set di dimensioni. Ad esempio, utilizzando il metodo `ProxyName`, puoi analizzare tutto il traffico per un determinato proxy. Utilizzando gli altri set di dimensioni, puoi suddividere i parametri in modi diversi. Puoi suddividere i parametri in base ai diversi endpoint o ai database di destinazione di ciascun proxy oppure al traffico di lettura/scrittura e di sola lettura verso ciascun database. 
+  Set di dimensioni  1: `ProxyName` 
+  Set di dimensioni  2: `ProxyName`, `EndpointName` 
+  Set di dimensioni  3: `ProxyName`, `TargetGroup`, `Target` 
+  Set di dimensioni  4: `ProxyName`, `TargetGroup`, `TargetRole` 


|  Parametro  |  Descrizione  |  Periodo valido  |  Set di dimensioni CloudWatch  | 
| --- | --- | --- | --- | 
|  `AvailabilityPercentage`   |   Percentuale di tempo durante il quale il gruppo target era disponibile nel ruolo indicato dalla dimensione. Questa metrica viene segnalata ogni minuto. La statistica più utile per questo parametro è `Sum`.   |  1 minuto  |  [Dimension set 4](#proxy-dimension-set-4)  | 
| ClientConnections  |   Il numero corrente di connessioni client. Questa metrica viene segnalata ogni minuto. La statistica più utile per questo parametro è `Sum`.   |   1 minuto   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsClosed  |   Il numero di connessioni client chiuse. La statistica più utile per questo parametro è `Sum`.   |   1 minuto e oltre   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsInSetup |  Il numero corrente di connessioni client aperte ma non ancora completamente configurate. Questa metrica viene segnalata ogni minuto. La statistica più utile per questo parametro è Sum.  |  1 minuto  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `ClientConnectionsNoTLS`   |  Numero corrente di connessioni client senza Transport Layer Security (TLS). Questa metrica viene segnalata ogni minuto. La statistica più utile per questo parametro è Sum.  |  1 minuto |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `ClientConnectionsReceived`   |   Numero di richieste di connessione client ricevute. La statistica più utile per questo parametro è `Sum`.   |   1 minuto e oltre   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsSetupFailedAuth  |   Numero di tentativi di connessione client non riusciti a causa di autenticazione errata o configurazione TLS errata. La statistica più utile per questo parametro è `Sum`.   |   1 minuto e oltre   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsSetupSucceeded  |   Il numero di connessioni client stabilito correttamente con qualsiasi meccanismo di autenticazione con o senza TLS. La statistica più utile per questo parametro è `Sum`.   |   1 minuto e oltre   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsTLS  |  Il numero corrente di connessioni client con TLS. Questa metrica viene segnalata ogni minuto. La statistica più utile per questo parametro è Sum.  | 1 minuto |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| DatabaseConnectionRequests  |   Numero di richieste per creare una connessione al database. La statistica più utile per questo parametro è `Sum`.   |   1 minuto e oltre   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionRequestsWithTLS`   |  Numero di richieste per creare una connessione al database con TLS. La statistica più utile per questo parametro è Sum.  |  1 minuto e oltre  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnections  |   Il numero corrente di connessioni al database. Questa metrica viene segnalata ogni minuto. La statistica più utile per questo parametro è `Sum`.   |   1 minuto   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionsBorrowLatency`   |  Il tempo in microsecondi necessario per il proxy monitorato per ottenere una connessione al database. La statistica più utile per questo parametro è Sum.  |  1 minuto e oltre  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| DatabaseConnectionsCurrentlyBorrowed  |   Il numero corrente di connessioni al database nello stato di prestito. Questa metrica viene segnalata ogni minuto. La statistica più utile per questo parametro è `Sum`.   |   1 minuto   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsCurrentlyInTransaction  |   Il numero corrente di connessioni al database in una transazione. Questa metrica viene segnalata ogni minuto. La statistica più utile per questo parametro è `Sum`.   |   1 minuto   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsCurrentlySessionPinned  |   Il numero corrente di connessioni al database attualmente bloccati a causa di operazioni nelle richieste client che modificano lo stato della sessione. Questa metrica viene segnalata ogni minuto. La statistica più utile per questo parametro è `Sum`.   |   1 minuto   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsSetupFailed  |   Il numero di richieste di connessione al database non riuscite. La statistica più utile per questo parametro è `Sum`.   |   1 minuto e oltre   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsSetupSucceeded  |   Il numero di connessioni al database stabilito correttamente con o senza TLS. La statistica più utile per questo parametro è `Sum`.   |   1 minuto e oltre   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionsWithTLS`   |  Il numero corrente di connessioni al database con TLS. Questa metrica viene segnalata ogni minuto. La statistica più utile per questo parametro è Sum.  |  1 minuto  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| MaxDatabaseConnectionsAllowed  |   Il numero massimo di connessioni al database consentite. Questa metrica viene segnalata ogni minuto. La statistica più utile per questo parametro è `Sum`.   |   1 minuto   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `QueryDatabaseResponseLatency`   |  Tempo in microsecondi impiegato dal database per rispondere alla query. La statistica più utile per questo parametro è Average.  |  1 minuto e oltre  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| QueryRequests  |   Il numero di query ricevute. Una query che include più istruzioni viene conteggiata come una query. La statistica più utile per questo parametro è `Sum`.   |   1 minuto e oltre   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| QueryRequestsNoTLS  |  Numero di query ricevute da connessioni non TLS. Una query che include più istruzioni viene conteggiata come una query. La statistica più utile per questo parametro è Sum.  |  1 minuto e oltre  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `QueryRequestsTLS`   |  Numero di query ricevute dalle connessioni TLS. Una query che include più istruzioni viene conteggiata come una query. La statistica più utile per questo parametro è Sum.  |  1 minuto e oltre  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| QueryResponseLatency  |  Il tempo in microsecondi tra l'ottenimento di una richiesta di query e il proxy che risponde ad essa. La statistica più utile per questo parametro è Average.  |  1 minuto e oltre  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 

 Puoi trovare i log dell'attività di RDS Proxy in CloudWatch nella Console di gestione AWS. Ogni proxy ha una voce nella pagina **Log groups (Gruppi di registro)** . 

**Importante**  
 Questi registri sono destinati all'utilizzo umano per scopi di risoluzione dei problemi e non per l'accesso programmatico. Il formato e il contenuto dei registri sono soggetti a modifiche.   
 In particolare, i log meno recenti non contengono prefissi che indicano l'endpoint per ogni richiesta. Nei log più recenti, ogni voce è preceduta dal nome dell'endpoint proxy associato. Questo nome può essere il nome specificato per un endpoint definito dall'utente o il nome speciale `default` per le richieste che utilizzano l'endpoint predefinito di un proxy. 

# Utilizzo degli eventi RDS Proxy
<a name="rds-proxy.events"></a>

Un *evento* segnala una modifica in un ambiente, ad esempio un ambiente AWS, un’applicazione o un servizio di un partner che fornisce software as a service (SaaS) oppure uno dei tuoi servizi o applicazioni personalizzati. Ad esempio, Amazon RDS genera un evento quando si crea o si modifica un proxy RDS. Amazon RDS distribuisce gli eventi ad Amazon EventBridge quasi in tempo reale. Di seguito puoi trovare un elenco di eventi RDS Proxy a cui puoi iscriverti e un esempio di evento RDS Proxy. 

Per ulteriori informazioni sull'utilizzo degli eventi, consulta quanto segue:
+ Per istruzioni su come visualizzare gli eventi utilizzando la Console di gestione AWS, la AWS CLI o l'API RDS, consulta [Visualizzazione di eventi Amazon RDS](USER_ListEvents.md).
+ Per informazioni su come configurare Amazon RDS per inviare eventi a EventBridge, consulta [Creazione di una regola che si attiva su un evento Amazon RDS](rds-cloud-watch-events.md).

## Eventi RDS Proxy
<a name="rds-proxy.events.list"></a>

La tabella seguente riporta la categoria di eventi e un elenco di eventi applicabili quando il tipo di origine è un proxy RDS.


|  Categoria  | ID evento RDS |  Messaggio  |  Note  | 
| --- | --- | --- | --- | 
| modifica della configurazione | RDS-EVENT-0204 |  Proxy DB *nome* modificato da RDS.  | Nessuno | 
| modifica della configurazione | RDS-EVENT-0207 |  RDS ha modificato l'endpoint del proxy DB *nome*.  | Nessuno | 
| modifica della configurazione | RDS-EVENT-0213 |  RDS ha rilevato l'aggiunta dell'istanza database e l'ha aggiunta automaticamente al gruppo di destinazione del proxy DB *nome*.  | Nessuno | 
|  modifica della configurazione  | RDS-EVENT-0214 |  RDS ha rilevato l'eliminazione dell'istanza database *nome* e l'ha rimossa automaticamente dal gruppo di destinazione *nome* del proxy DB *nome*.  | Nessuno | 
|  modifica della configurazione  | RDS-EVENT-0215 |  RDS ha rilevato l'eliminazione del cluster database *nome* e l'ha rimosso automaticamente dal gruppo di destinazione *nome* del proxy DB *nome*.  | Nessuno | 
|  creazione  | RDS-EVENT-0203 |  RDS ha creato il proxy DB *nome*.  | Nessuno | 
|  creazione  | RDS-EVENT-0206 |  RDS ha creato l'endpoint *nome* del proxy DB *nome*.  | Nessuno | 
| eliminazione | RDS-EVENT-0205 |  RDS ha eliminato il proxy DB *nome*.  | Nessuno | 
|  eliminazione  | RDS-EVENT-0208 |  RDS ha eliminato l'endpoint *nome* per il proxy DB *nome*.  | Nessuno | 
|  errore  | RDS-EVENT-0243 |  RDS non è riuscito ad eseguire il provisioning della capacità per il proxy *nome* perché non ci sono sufficienti indirizzi IP disponibili nelle sottoreti: *nome*. Per risolvere il problema, assicurarsi che le sottoreti abbiano il numero minimo di indirizzi IP non utilizzati come consigliato nella documentazione di Server proxy per Amazon RDS.  |  Per determinare il numero consigliato per la classe di istanza, consulta [Pianificazione della capacità degli indirizzi IP](rds-proxy-network-prereqs.md#rds-proxy-network-prereqs.plan-ip-address).  | 
|  errore | RDS-EVENT-0275 |  RDS ha limitato alcune connessioni al proxy di database *nome*. Il numero di richieste di connessione simultanee dal client al proxy ha superato il limite.  | Nessuno | 

Di seguito è riportato un esempio di evento di RDS Proxy in formato JSON. L'evento mostra che RDS ha modificato l'endpoint denominato `my-endpoint` del proxy RDS denominato `my-rds-proxy`. L'ID evento è RDS-EVENT-0207.

```
{
  "version": "0",
  "id": "68f6e973-1a0c-d37b-f2f2-94a7f62ffd4e",
  "detail-type": "RDS DB Proxy Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-09-27T22:36:43Z",
  "region": "us-east-1",
  "resources": [
     "arn:aws:rds:us-east-1:123456789012:db-proxy:my-rds-proxy"
  ],
  "detail": {
    "EventCategories": [
      "configuration change"
    ],
    "SourceType": "DB_PROXY",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:my-rds-proxy",
    "Date": "2018-09-27T22:36:43.292Z",
    "Message": "RDS modified endpoint my-endpoint of DB Proxy my-rds-proxy.",
    "SourceIdentifier": "my-endpoint",
    "EventID": "RDS-EVENT-0207"
  }
}
```

# Risoluzione dei problemi per RDS Proxy
<a name="rds-proxy.troubleshooting"></a>

 Di seguito, sono disponibili idee per la risoluzione di alcuni problemi comuni relativi al proxy RDS e informazioni sui CloudWatch registri di RDS Proxy. 

 Nei log RDS Proxy, ogni voce è preceduta dal nome dell'endpoint proxy associato. Questo nome può essere quello specificato per un endpoint definito dall'utente. In alternativa, può essere il nome `default` speciale dell'endpoint predefinito di un proxy che esegue le richieste. read/write Per ulteriori informazioni sugli endpoint proxy, consulta [Utilizzo degli endpoint Amazon RDS Proxy](rds-proxy-endpoints.md). 

**Topics**
+ [Verifica della connettività a un proxy](#rds-proxy-verifying)
+ [Problemi e soluzioni comuni](#rds-proxy-diagnosis)
+ [Risoluzione dei problemi di Server proxy per RDS con RDS per MySQL](#rds-proxy-MySQL-troubleshooting)
+ [Risoluzione dei problemi di Server proxy per RDS con RDS per PostgreSQL](#rds-proxy-PostgreSQL-troubleshooting)

## Verifica della connettività a un proxy
<a name="rds-proxy-verifying"></a>

 Per verificare che tutti i componenti, come il proxy, il database e le istanze di calcolo nella connessione, possano comunicare tra loro, è possibile utilizzare i seguenti comandi. 

 Esamina il proxy stesso usando il [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html)comando. Esamina anche il gruppo target associato utilizzando il comando [describe-db-proxy-target-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-target-groups.html). Verifica che i dettagli delle destinazioni corrispondano all'istanza database RDS che intendi associare al proxy. Utilizzare comandi come i seguenti. 

```
aws rds describe-db-proxies --db-proxy-name $DB_PROXY_NAME
aws rds describe-db-proxy-target-groups --db-proxy-name $DB_PROXY_NAME
```

 Per confermare che il proxy è in grado di connettersi al database sottostante, esamina le destinazioni specificate nei gruppi di destinazione utilizzando il [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html)comando. Utilizzare un comando come il seguente. 

```
aws rds describe-db-proxy-targets --db-proxy-name $DB_PROXY_NAME
```

 L'output del [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html)comando include un `TargetHealth` campo. È possibile esaminare i campi `State`, `Reason` e `Description` all'interno di `TargetHealth` per verificare se il proxy può comunicare con l'istanza database sottostante. 
+  Un valore `State` di `AVAILABLE` indica che il proxy può connettersi all'istanza database. 
+  Un valore `State` di `UNAVAILABLE` indica un problema di connessione temporaneo o permanente. In questo caso, esaminare i campi `Reason` e `Description`. Ad esempio, se `Reason` ha un valore pari a `PENDING_PROXY_CAPACITY`, provare a connettersi nuovamente dopo che il proxy ha terminato l'operazione di ridimensionamento. Se `Reason` ha un valore di `UNREACHABLE`, `CONNECTION_FAILED` o `AUTH_FAILURE`, utilizzare la spiegazione del campo `Description` per facilitare la diagnosi del problema. 
+  Il valore del campo `State` potrebbe essere `REGISTERING` per un breve periodo prima di passare a `AVAILABLE` o `UNAVAILABLE`. 

 Se il seguente comando Netcat (`nc`) ha esito positivo, puoi accedere all'endpoint proxy dall' EC2 istanza o da un altro sistema a cui hai effettuato l'accesso. Questo comando segnala un errore se non ti trovi nello stesso VPC del proxy e del database associato. Potresti essere in grado di accedere direttamente al database senza essere nello stesso VPC. Tuttavia, non puoi accedere al proxy a meno che non ti trovi nello stesso VPC. 

```
nc -zx MySQL_proxy_endpoint 3306

nc -zx PostgreSQL_proxy_endpoint 5432
```

 Puoi usare i seguenti comandi per assicurarti che l' EC2 istanza abbia le proprietà richieste. In particolare, il VPC dell' EC2 istanza deve essere lo stesso del VPC per il cluster dell' a cui si connette il proxy. 

```
aws ec2 describe-instances --instance-ids your_ec2_instance_id
```

 Esamina i segreti Secrets Manager utilizzati per il proxy. 

```
aws secretsmanager list-secrets
aws secretsmanager get-secret-value --secret-id your_secret_id
```

 Assicurati che il campo `SecretString` visualizzato da `get-secret-value` sia codificato come stringa JSON che include i campi `username` e `password`. Nell'esempio seguente viene illustrato il formato del campo `SecretString`. 

```
{
  "ARN": "some_arn",
  "Name": "some_name",
  "VersionId": "some_version_id",
  "SecretString": '{"username":"some_username","password":"some_password"}',
  "VersionStages": [ "some_stage" ],
  "CreatedDate": some_timestamp
}
```

Durante la risoluzione dei problemi di autenticazione IAM, verifica quanto segue:
+ Nel database è abilitata l'autenticazione IAM.
+ Il proxy è configurato con lo schema di autenticazione corretto.
+ Le politiche IAM nel ruolo IAM fornite al proxy concedono le `rds-db:connect` autorizzazioni necessarie al database appropriato e al relativo nome utente.
+ Per l'autenticazione end-to-end IAM, esistono utenti del database che corrispondono ai nomi degli utenti o dei ruoli IAM.
+ SSL/TLS è abilitato per la connessione.

## Problemi e soluzioni comuni
<a name="rds-proxy-diagnosis"></a>

Questa sezione descrive alcuni problemi comuni e potenziali soluzioni quando si utilizza Server proxy per RDS.

Dopo l’esecuzione del comando `aws rds describe-db-proxy-targets` della CLI, se la descrizione `TargetHealth` riporta `Proxy does not have any registered credentials`, verifica quanto segue:
+ L’utente dispone di credenziali registrate per l’accesso al proxy.
+ Il ruolo IAM per l’accesso al segreto Secrets Manager utilizzato dal proxy è valido.

È possibile che si verifichino i seguenti eventi RDS durante la creazione di o la connessione a un proxy DB.


| Categoria | ID evento RDS | Description | 
| --- | --- | --- | 
|  errore  | RDS-EVENT-0243 | RDS non è stato in grado di allocare la capacità per il proxy perché non ci sono sufficienti indirizzi IP disponibili nelle sottoreti. Per risolvere il problema, assicurati che le sottoreti abbiano il numero minimo di indirizzi IP non utilizzati. Per determinare il numero consigliato per la classe di istanza, consulta [Pianificazione della capacità degli indirizzi IP](rds-proxy-network-prereqs.md#rds-proxy-network-prereqs.plan-ip-address). | 
|  errore  | RDS-EVENT-0275 |  RDS ha limitato alcune connessioni al proxy DB. *name* Il numero di richieste di connessione simultanee dal client al proxy ha superato il limite.  | 

 È possibile che si verifichino i seguenti problemi durante la creazione di un nuovo proxy o la connessione a un proxy. 


|  Errore  |  Cause o soluzioni alternative  | 
| --- | --- | 
|   `403: The security token included in the request is invalid`   |  Seleziona un ruolo IAM esistente invece di crearne uno nuovo.  | 

## Risoluzione dei problemi di Server proxy per RDS con RDS per MySQL
<a name="rds-proxy-MySQL-troubleshooting"></a>

 È possibile che si verifichino i seguenti problemi durante la connessione a un proxy MySQL. 


|  Errore  |  Cause o soluzioni alternative  | 
| --- | --- | 
|  ERROR 1040 (HY000): Connections rate limit exceeded (limit\$1value)  |  La velocità di richieste di connessione dal client al proxy ha superato il limite.  | 
|  ERROR 1040 (HY000): IAM authentication rate limit exceeded  |  Il numero di richieste simultanee con autenticazione IAM dal client al proxy ha superato il limite.  | 
|  ERROR 1040 (HY000): Number simultaneous connections exceeded (limit\$1value)  |  Il numero di richieste di connessione simultanee dal client al proxy ha superato il limite.  | 
|   `ERROR 1045 (28000): Access denied for user 'DB_USER'@'%' (using password: YES)`   |  Il segreto Secrets Manager utilizzato dal proxy non corrisponde al nome utente e alla password di un utente di database esistente. Aggiorna le credenziali nel segreto Secrets Manager o assicurati che l'utente del database esista e disponga della stessa password del segreto.  | 
|  ERROR 1105 (HY000): Unknown error  |  Si è verificato un errore sconosciuto.  | 
|  ERROR 1231 (42000): Variable ''character\$1set\$1client'' can't be set to the value of value  |   Il valore impostato per il parametro `character_set_client` non è valido. Ad esempio, il valore `ucs2` non è valido perché può provocare un arresto anomalo del server MySQL.   | 
|  ERROR 3159 (HY000): This RDS Proxy requires TLS connections.  |   Hai abilitato l'impostazione **Richiedi Transport Layer Security** nel proxy ma la tua connessione includeva il parametro `ssl-mode=DISABLED` nel client MySQL. Eseguire una delle operazioni seguenti:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  ERROR 2026 (HY000): SSL connection error: Internal Server Error  |   L'handshake TLS con il proxy non è riuscito. Alcuni possibili motivi includono quanto segue:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  ERROR 9501 (HY000): Timed-out waiting to acquire database connection  |   Il proxy è in attesa di acquisire una connessione al database. Alcuni possibili motivi includono quanto segue:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 

## Risoluzione dei problemi di Server proxy per RDS con RDS per PostgreSQL
<a name="rds-proxy-PostgreSQL-troubleshooting"></a>

 È possibile che si verifichino i seguenti problemi durante la connessione a un proxy PostgreSQL. 


|  Errore  |  Causa  |  Soluzione  | 
| --- | --- | --- | 
|   `ERROR 28000: IAM authentication is allowed only with SSL connections.`   |   L'utente ha tentato di connettersi al database utilizzando l'autenticazione IAM con l'impostazione `sslmode=disable` nel client PostgreSQL.   |   L'utente deve connettersi al database utilizzando l'impostazione minima di `sslmode=require` nel client PostgreSQL. Per ulteriori informazioni, consulta la documentazione [Supporto SSL PostgreSQL](https://www.postgresql.org/docs/current/libpq-ssl.html).   | 
|  `ERROR 28000: This RDS proxy has no credentials for the role role_name. Check the credentials for this role and try again.`   |   Non c'è un Secrets Manager segreto per questo ruolo.   |   Aggiungere un Secrets Manager segreto per questo ruolo. Per ulteriori informazioni, consulta [Configurazione dell’autenticazione IAM per Server proxy per RDS](rds-proxy-iam-setup.md).  | 
|  `ERROR 28000: RDS supports only IAM, MD5, or SCRAM authentication.`   |   Il client di database utilizzato per connettersi al proxy utilizza un meccanismo di autenticazione non attualmente supportato dal proxy.   |   Se non utilizzi l'autenticazione IAM, utilizza l'autenticazione tramite password MD5 o SCRAM.   | 
|  `ERROR 28000: A user name is missing from the connection startup packet. Provide a user name for this connection.`   |   Il client di database utilizzato per connettersi al proxy non invia un nome utente quando si tenta di stabilire una connessione.   |   Assicurarsi di definire un nome utente quando si imposta una connessione al proxy utilizzando il client PostgreSQL di propria scelta.   | 
|  `ERROR 28000: IAM is allowed only with SSL connections.`   |   Un client ha tentato di connettersi utilizzando l'autenticazione IAM, ma SSL non è stato abilitato.   |   Abilitare SSL nel client PostgreSQL.   | 
|  `ERROR 28000: This RDS Proxy requires TLS connections.`   |   L'utente ha abilitato l'impostazione **Richiedi Transport Layer Security** ma ha tentato di connettersi con `sslmode=disable` nel client PostgreSQL.   |   Per risolvere questo errore, effettuare una delle seguenti operazioni:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR 28P01: IAM authentication failed for user user_name. Check the IAM token for this user and try again.`   |   Questo errore potrebbe essere dovuto ai seguenti fattori:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  |   Per correggere questo errore, effettuare le seguenti operazioni:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR 28P01: The password that was provided for the role role_name is wrong.`   |   La password per questo ruolo non corrisponde al segreto Secrets Manager.   |   Controlla il segreto per questo ruolo in Secrets Manager per vedere se la password è uguale a quella utilizzata nel client PostgreSQL.   | 
|  `ERROR 28P01: The IAM authentication failed for the role role_name. Check the IAM token for this role and try again.`   |   Si è verificato un problema con il token IAM utilizzato per l'autenticazione IAM.   |   Generare un nuovo token di autenticazione e utilizzarlo in una nuova connessione.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy supports only version 3.0 of the PostgreSQL messaging protocol.`   |   Il client PostgreSQL utilizzato per connettersi al proxy utilizza un protocollo precedente a 3.0.   |   Utilizzare un client PostgreSQL più recente che supporti il protocollo di messaggistica 3.0. Se si utilizza la CLI `psql` di PostgreSQL, utilizzare una versione maggiore o uguale a 7.4.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy currently doesn't support streaming replication mode.`   |   Il client PostgreSQL utilizzato per connettersi al proxy sta tentando di utilizzare la modalità di replica in streaming, che non è attualmente supportata dal proxy RDS.   |   Disattivare la modalità di replica in streaming nel client PostgreSQL utilizzato per la connessione.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy currently doesn't support the option option_name.`   |   Tramite il messaggio di avvio, il client PostgreSQL utilizzato per connettersi al proxy richiede un'opzione che non è attualmente supportata dal proxy RDS.   |   Disattivare l'opzione visualizzata come non supportata dal messaggio precedente nel client PostgreSQL utilizzato per connettersi.   | 
|  `ERROR 53300: The IAM authentication failed because of too many competing requests.`   |   Il numero di richieste simultanee con autenticazione IAM dal client al proxy ha superato il limite.   |   Ridurre la velocità con cui vengono stabilite le connessioni che utilizzano l'autenticazione IAM da un client PostgreSQL.   | 
|  `ERROR 53300: The maximum number of client connections to the proxy exceeded number_value.`   |   Il numero di richieste di connessione simultanee dal client al proxy ha superato il limite.   |   Ridurre il numero di connessioni attive dai client PostgreSQL a questo proxy RDS.   | 
|  `ERROR 53300: Rate of connection to proxy exceeded number_value.`   |   La velocità di richieste di connessione dal client al proxy ha superato il limite.   |   Ridurre la velocità con cui vengono stabilite le connessioni da un client PostgreSQL.   | 
|  `ERROR XX000: Unknown error.`   |   Si è verificato un errore sconosciuto.   |   Contatta l' AWS assistenza per esaminare il problema.   | 
|  `ERROR 08000: Timed-out waiting to acquire database connection.`   |   Il proxy è entrato in timeout durante l’attesa di acquisire una connessione al database entro la durata specificata dall’impostazione `ConnectionBorrowTimeout`. Alcuni possibili motivi includono quanto segue:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  |   Le possibili soluzioni sono le seguenti:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR XX000: Request returned an error: database_error.`   |   La connessione al database stabilita dal proxy ha restituito un errore.   |   La soluzione dipende dall'errore specifico del database. Un esempio : `Request returned an error: database "your-database-name" does not exist`. Ciò significa che il nome del database specificato non esiste nel server di database oppure che il nome utente utilizzato come nome del database (se non è specificato un nome del database) non esiste nel server.   | 
|  `ERROR 53300: The IAM authentication failed because of too many competing requests.`  |  Il numero di richieste simultanee con autenticazione IAM dal client al proxy ha superato il limite.  |  Ridurre la velocità con cui vengono stabilite le connessioni che utilizzano l'autenticazione IAM da un client PostgreSQL.  | 
|  `ERROR 28000: Enable IAM authentication for the client connection to the proxy and try again.`  |  Il proxy RDS non può connettersi al database perché l'autenticazione IAM non è abilitata per la connessione del client al proxy. Ciò si verifica quando il `DefaultAuthScheme` parametro del proxy è impostato `IAM_AUTH` su un utente registrato, ma il client utilizza l'autenticazione tramite password anziché l'autenticazione IAM.  |  Abilita l'autenticazione IAM per la connessione del client al proxy e riprova.  | 
|  `ERROR 28000: Configure IAM authentication as the DefaultAuthScheme in your proxy and try again.`  |  Il proxy RDS non può connettersi al database perché `DefaultAuthScheme` non è impostato `IAM_AUTH` su. Il `DefaultAuthScheme` parametro del proxy è impostato su`NONE`, ma il client sta tentando di utilizzare l'autenticazione IAM.  |  Imposta `DefaultAuthScheme` su `IAM_AUTH` per il tuo proxy e riprova.  | 

### Risoluzione dei problemi relativi al database `postgres` eliminato
<a name="rds-proxy-PostgreSQL-troubleshooting.postgresDBDelete"></a>

Se elimini erroneamente il database `postgres` dall’istanza, devi ripristinare il database per ristabilire la connettività all’istanza. Esegui i comandi seguenti all’interno dell’istanza database:

```
CREATE DATABASE postgres;
GRANT CONNECT ON DATABASE postgres TO rdsproxyadmin;
```

# Utilizzo di RDS Proxy con AWS CloudFormation
<a name="rds-proxy-cfn"></a>

 Puoi usare RDS Proxy con AWS CloudFormation. In questo modo è possibile creare gruppi di risorse correlate. Un gruppo di questo tipo può includere un proxy che può connettersi a un'istanza database Amazon RDS appena creata. Il supporto di RDS Proxy in CloudFormation coinvolge due nuovi tipi di registro: `DBProxy` e `DBProxyTargetGroup`. 

 L'elenco seguente mostra un modello CloudFormation di esempio per RDS Proxy. 

```
Resources:
 DBProxy:
   Type: AWS::RDS::DBProxy
   Properties:
     DBProxyName: CanaryProxy
     EngineFamily: MYSQL
     RoleArn:
      Fn::ImportValue: SecretReaderRoleArn
     Auth:
       - {AuthScheme: SECRETS, SecretArn: !ImportValue ProxySecret, IAMAuth: DISABLED}
     VpcSubnetIds:
       Fn::Split: [",", "Fn::ImportValue": SubnetIds]

 ProxyTargetGroup: 
   Type: AWS::RDS::DBProxyTargetGroup
   Properties:
     DBProxyName: CanaryProxy
     TargetGroupName: default
     DBInstanceIdentifiers: 
       - Fn::ImportValue: DBInstanceName
   DependsOn: DBProxy
```

 Per ulteriori informazioni sulle risorse di questo esempio, consulta [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html) e [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html). 

 Per ulteriori informazioni sulle risorse che è possibile creare utilizzando CloudFormation, consulta [RDS resource type reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html). 