RDSConsiderazioni sulla connessione proxy - Amazon Aurora

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'IdleClientTimeoutimpostazione 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'IdleClientTimeoutimpostazione, 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'MaxConnectionsPercentimpostazione in AWS CLI e nelAPI.

Il MaxConnectionsPercent valore è espresso come percentuale dell'max_connectionsimpostazione per il cluster Aurora DB 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'impostazione MaxConnectionsPercent.

    MaxConnectionsPercentI valori minimi consigliati sono i seguenti:

    • db.t3.small: 100

    • db.t3.medium: 55

    • db.t3.large: 35

    • db.r3.large o superiore: 20

    Se più istanze di destinazione sono registrate con RDS Proxy, ad esempio un cluster Aurora con nodi di lettura, imposta il valore minimo in base all'istanza registrata più piccola.

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'MaxConnectionsPercentimpostazione, vedi il CLI comando modify-db-proxy-target-group o l'APIoperazione M. odifyDBProxy TargetGroup

Importante

Se il cluster database fa parte di un database globale con l'inoltro di scrittura attivato, riduci il valore MaxConnectionsPercent del proxy con la quota assegnata all'inoltro di scrittura. La quota di inoltro di scrittura è impostata nel parametro aurora_fwd_writer_max_connections_pct del cluster database. Per informazioni sull'inoltro di scrittura, consulta Utilizzo dell'inoltro di scrittura in un database globale Amazon Aurora.

Per informazioni sui limiti di connessione al database, vedere Numero massimo di connessioni a un'istanza Aurora My SQL DB e Numero massimo di connessioni a un'istanza Aurora Postgre DB. SQL

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

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'MaxIdleConnectionsPercentimpostazione di DBProxyTargetGroup in AWS CLI e diAPI. Per informazioni su come modificare il valore dell'MaxIdleConnectionsPercentimpostazione, vedere il CLI comando modify-db-proxy-target-group o l'APIoperazione M. odifyDBProxy TargetGroup

Per informazioni sui limiti di connessione al database, vedere Numero massimo di connessioni a un'istanza Aurora My SQL DB e Numero massimo di connessioni a un'istanza Aurora Postgre DB. SQL

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'ConnectionBorrowTimeoutimpostazione 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'ConnectionBorrowTimeoutimpostazione, 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.