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à.
RDSConsiderazioni sulla connessione proxy
Configurazione delle impostazioni di connessione
Per modificare il pool di connessioni di RDS Proxy, è possibile modificare le seguenti impostazioni:
IdleClientTimeout
È possibile specificare per quanto tempo una connessione client può rimanere 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 desideri che il proxy rimuova in modo proattivo le connessioni obsolete, riduci il timeout della connessione del client inattivo. Se il carico di lavoro stabilisce connessioni frequenti con il proxy, aumenta il timeout di connessione del client inattivo per risparmiare sui costi di creazione delle connessioni.
Questa impostazione è rappresentata dal campo di timeout della connessione del client Idle nella RDS console e dall'IdleClientTimeout
impostazione in and. AWS CLI API Per informazioni su come modificare il valore del campo di timeout della connessione del client Idle nella RDS console, vedere. AWS Management Console Per informazioni su come modificare il valore dell'IdleClientTimeout
impostazione, vedere il CLI comando modify-db-proxyo l'APIoperazione M. odifyDBProxy
MaxConnectionsPercent
È possibile limitare il numero di connessioni che un RDS proxy 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 Numero massimo di connessioni del pool di connessioni nella RDS console e dall'MaxConnectionsPercent
impostazione in AWS CLI e nelAPI.
Il MaxConnectionsPercent
valore è espresso come percentuale dell'max_connections
impostazione per il utilizzato dal gruppo di destinazione. Il proxy non crea tutte queste connessioni in anticipo. Questa impostazione consente al proxy di stabilire queste connessioni quando il carico di lavoro le richiede.
Ad esempio, per una destinazione di database registrata max_connections
impostata su 1000 e MaxConnectionsPercent
impostata su 95, RDS Proxy imposta 950 connessioni come limite superiore per le connessioni simultanee a quella destinazione del database.
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 al database su più nodi, le modifiche alla capacità interna potrebbero richiedere almeno il 30% di margine per ulteriori connessioni per evitare un aumento delle latenze di prestito.
RDSIl proxy riserva un certo numero di connessioni per il monitoraggio attivo per supportare il failover rapido, il routing 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'impostazioneMaxConnectionsPercent
.Valori
MaxConnectionsPercent
minimi consigliatidb.t3.small: 30
db.t3.medium o superiore: 20
Per informazioni su come modificare il valore del campo Numero massimo di connessioni del pool di connessioni nella RDS console, vedi. AWS Management Console Per informazioni su come modificare il valore dell'MaxConnectionsPercent
impostazione, vedi il CLI comando modify-db-proxy-target-group o l'APIoperazione M. odifyDBProxy TargetGroup
Per informazioni sui limiti di connessione al database, consulta Numero massimo di connessioni di database.
MaxIdleConnectionsPercent
È possibile controllare il numero di connessioni al database inattive che RDS Proxy può mantenere nel pool di connessioni. Per impostazione predefinita, RDS Proxy considera inattiva una connessione al database nel proprio pool quando non vi è stata alcuna attività sulla connessione per cinque minuti.
Il MaxIdleConnectionsPercent
valore è espresso come percentuale dell'max_connections
impostazione per il gruppo target dell'istanza RDS DB. Il valore predefinito è 50% di MaxConnectionsPercent
e il limite superiore è il valore di MaxConnectionsPercent
. Ad esempio, seMaxConnectionsPercent
, è 80, il valore predefinito di MaxIdleConnectionsPercent
è 40. Se il valore di MaxConnectionsPercent
non è specificato, RDS per SQL Server MaxIdleConnectionsPercent
è 5 e 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 questo modo RDS Proxy è in grado di far fronte a picchi di attività senza aprire molte nuove connessioni al database.
Questa impostazione è rappresentata dall'MaxIdleConnectionsPercent
impostazione di DBProxyTargetGroup
in AWS CLI e diAPI. Per informazioni su come modificare il valore dell'MaxIdleConnectionsPercent
impostazione, vedere il CLI comando modify-db-proxy-target-group o l'APIoperazione M. odifyDBProxy TargetGroup
Per informazioni sui limiti di connessione al database, consulta Numero massimo di connessioni di database.
ConnectionBorrowTimeout
È possibile scegliere per quanto tempo RDS Proxy attende che una connessione al database nel pool di connessioni 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 un'istanza di 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 nella RDS console o dall'ConnectionBorrowTimeout
impostazione di DBProxyTargetGroup
in or. AWS CLI API Per informazioni su come modificare il valore del campo Connection borrow timeout nella console, vedi. RDS AWS Management Console Per sapere come modificare il valore dell'ConnectionBorrowTimeout
impostazione, vedi il CLI comando modify-db-proxy-target-group o l'operazione M. API odifyDBProxy TargetGroup
Connessioni client e database
Le connessioni dall'applicazione al RDS proxy sono note come connessioni client. Le connessioni da un proxy al database sono le connessioni database. Quando si utilizza RDS Proxy, le connessioni client terminano sul proxy mentre le connessioni al database vengono gestite all'interno di RDS Proxy.
Il pool di connessioni lato applicazione può offrire il vantaggio di ridurre la creazione di connessioni ricorrenti tra l'applicazione e il proxy. RDS
Considerate i seguenti aspetti di configurazione prima di implementare un pool di connessioni lato applicazione:
-
Durata massima della connessione client: il RDS proxy impone 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 della connessione del client.
-
Timeout di inattività della connessione client: il RDS proxy impone un tempo di inattività massimo per le connessioni client. Configura il tuo pool con un timeout di connessione inattiva di un valore inferiore all'impostazione di timeout di inattività della connessione client per Proxy per evitare interruzioni impreviste della connessione. RDS
Il numero massimo di connessioni client configurate nel pool di connessioni lato applicazione non deve essere limitato all'impostazione max_connections per Proxy. RDS
Il pooling delle connessioni dei client comporta una maggiore durata della connessione del client. Se si verifica il pinning delle connessioni, il pool delle connessioni client può ridurre l'efficienza del multiplexing. Le connessioni client bloccate ma inattive nel pool di connessioni lato applicazione continuano a mantenere una connessione al database e impediscono che la connessione al database venga riutilizzata da altre connessioni client. Esamina i log del proxy per verificare se le connessioni presentano problemi di blocco.
Nota
RDSIl proxy chiude le connessioni al database qualche tempo dopo 24 ore quando non sono più in uso. Il proxy esegue questa operazione indipendentemente dal valore dell'impostazione massima delle connessioni inattive.