Server proxy per Amazon RDS - Amazon Relational Database Service

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

Server proxy per Amazon RDS

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 RDS Proxy, è possibile 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. AWS Secrets Manager

Una panoramica del modo in cui le applicazioni si connettono al proxy RDS

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.

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.

Disponibilità di regioni e versioni

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.

Quote e limiti per RDS Proxy

A RDS Proxy si applicano i seguenti limiti:

  • Ogni Account AWS ID è limitato a 20 proxy. Se l’applicazione necessita di più proxy, richiedi un aumento tramite la pagina Service Quotas all’interno della AWS Management Console. Nella pagina Service Quotas, seleziona Amazon Relational Database Service (Amazon RDS) e individua Proxy per richiedere un aumento della quota. AWS può aumentare automaticamente la quota o rimanere in attesa della revisione della richiesta da parte del Support.

  • 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 ha un endpoint predefinito. Per ciascun proxy puoi anche aggiungere fino a 20 endpoint, che puoi creare, visualizzare, modificare ed eliminare.

  • 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 creando un prototipo del database su un host locale, non puoi connetterti al proxy a meno che non abbia configurato i requisiti di rete necessari per consentire tale connessione. 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.

  • 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 Configurazione dell’autenticazione IAM per Server proxy per RDS

  • 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 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 è scelto di applicare immediatamente le modifiche. Per i parametri a livello di cluster, è necessario un riavvio a livello di cluster.

  • Al momento della registrazione di una destinazione proxy, il proxy crea automaticamente l’utente rdsproxyadmin del database. Si tratta di un utente protetto essenziale per la funzionalità del proxy. È consigliabile 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

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 RDS Proxy 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.

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

  • 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

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.

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

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

  • 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

Le seguenti limitazioni aggiuntive si applicano a Server proxy per RDS con database RDS per MySQL:

  • Il supporto di Server proxy per 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 numero di parametri supera il numero di segnaposto in un’istruzione preparata. In tal caso, verrebbero generate risposte errate. Per ulteriori informazioni, consulta il report sui bug di MySQL.

  • 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 è possibile utilizzare RDS Proxy con database MySQL autogestiti in 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 il pinning. Per il comportamento del pinning più aggiornato, consulta Evitare di effettuare il pinning di un Server proxy per RDS.

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

  • Server proxy per RDS potrebbe non funzionare come previsto quando configuri il parametro init_connect nel gruppo di parametri di database RDS per impostare le variabili dello stato della sessione. In alternativa, imposta 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

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+C.

  • I risultati della funzione PostgreSQL lastval non sono sempre accurati. Per risolvere il problema, utilizzare l'istruzione INSERT 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 toscram-sha-256, eventuali personalizzazioni apportate al scram_iterations valore non influiscono sull'autenticazione della password. client-to-proxy 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 utilizzi 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, in caso di pinning di tali connessioni. Per evitare che ciò si verifichi, quando utilizzi il proxy, specifica SET ROLE nella relativa query di inizializzazione. Per ulteriori informazioni, consulta la sezione Query di inizializzazione in Creazione di un proxy per Amazon RDS.

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.