

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

# 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). 