Utilizzo degli endpoint Amazon RDS 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à.

Utilizzo degli endpoint Amazon RDS Proxy

Scopri gli endpoint for RDS Proxy e come utilizzarli. Utilizzando gli endpoint proxy, puoi sfruttare le seguenti funzionalità:

  • Puoi utilizzare più endpoint con un proxy per monitorare e risolvere i problemi di connessione da diverse applicazioni in modo indipendente.

  • È possibile utilizzare gli endpoint di lettura con cluster di database Aurora per migliorare la scalabilità di lettura e l'elevata disponibilità per le applicazioni che richiedono un uso intensivo di query.

  • Puoi utilizzare un VPC cross-endpoint per consentire l'accesso ai database in uno VPC da risorse come le EC2 istanze Amazon in un altro. VPC

Panoramica degli endpoint proxy

L'utilizzo degli endpoint RDS Proxy implica lo stesso tipo di procedure degli endpoint del cluster Aurora DB e degli RDS endpoint reader . Se non hai familiarità con gli endpoint Aurora, puoi consultare Connessioni endpoint Amazon Aurora.

Per impostazione predefinita, l'endpoint a cui ti connetti quando usi RDS Proxy con un cluster Aurora ha funzionalità di lettura/scrittura. 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 di database Aurora, puoi creare ulteriori endpoint di lettura/scrittura o di sola lettura per tale 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 Aurora con provisioning. In questo modo è possibile sfruttare la scalabilità di lettura di un cluster Aurora 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 Aurora in base alle necessità.

Suggerimento

Quando si crea un proxy per un cluster Aurora utilizzando AWS Management Console, è possibile fare in modo che RDS Proxy crei automaticamente un endpoint di lettura. Per informazioni sui vantaggi di un endpoint di lettura, consulta Utilizzo degli endpoint di lettura con cluster Aurora.

Per un endpoint proxy creato da te, puoi anche associare l'endpoint a un cloud privato virtuale (VPC) diverso da quello utilizzato dal proxy stesso. In questo modo, è possibile connettersi al proxy da un altroVPC, ad esempio VPC utilizzato da un'applicazione diversa all'interno dell'organizzazione.

Per informazioni sui limiti associati agli endpoint proxy, consulta Limitazioni per gli endpoint proxy.

Nei registri del 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 speciale default per l'endpoint predefinito di un proxy che esegue richieste di lettura/scrittura.

Ogni endpoint proxy ha il proprio set di metriche. CloudWatch Puoi monitorare i parametri per tutti gli endpoint di un proxy. Puoi inoltre monitorare i parametri per un endpoint specifico o per tutti gli endpoint di lettura/scrittura o di sola lettura di un proxy. Per ulteriori informazioni, consulta Monitoraggio dei parametri del proxy RDS con Amazon CloudWatch.

Un endpoint proxy utilizza lo stesso meccanismo di autenticazione del proxy associato. RDSIl proxy imposta automaticamente le autorizzazioni e le autorizzazioni per l'endpoint definito dall'utente, coerentemente con le proprietà del proxy associato.

Per informazioni su come funzionano gli endpoint proxy per i cluster database di un database globale Aurora, consulta Come funzionano gli endpoint Server proxy per RDS con i database globali.

Limitazioni per gli endpoint proxy

RDSGli endpoint proxy presentano le seguenti limitazioni:

  • Ogni proxy dispone di un endpoint predefinito che è possibile modificare ma non creare o eliminare.

  • 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 si associano endpoint aggiuntivi a un proxy, RDS Proxy determina automaticamente quali istanze DB del cluster utilizzare per ogni endpoint. Non è possibile scegliere istanze specifiche come invece è possibile con gli endpoint personalizzati Aurora.

Utilizzo degli endpoint di lettura con cluster Aurora

Puoi creare e connetterti a endpoint di sola lettura chiamati endpoint reader quando usi Proxy RDS con cluster Aurora. 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.

Nota

Quando si specifica che un nuovo endpoint è di sola lettura, RDS Proxy richiede che il cluster Aurora disponga di una o più istanze DB reader. In alcuni casi, è possibile modificare la destinazione del proxy in un cluster Aurora contenente un solo writer. In questo caso, qualsiasi richiesta all'endpoint di lettura ha esito negativo e restituisce un errore. Le richieste hanno esito negativo anche se la destinazione del proxy è un'RDSistanza anziché un cluster Aurora.

Se un cluster Aurora dispone di istanze di lettura ma tali istanze non sono disponibili, RDS Proxy attende di inviare la richiesta invece di restituire immediatamente un errore. Se nessuna istanza di lettura diventa disponibile entro il periodo di timeout di prestito della connessione, la richiesta ha esito negativo con un errore.

In che modo gli endpoint di lettura aiutano la disponibilità delle applicazioni

In alcuni casi, una o più istanze di lettura nel cluster potrebbero non essere disponibili. 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 Aurora. RDSIl proxy indirizza le connessioni solo alle istanze di lettura disponibili nel cluster. Non vi è alcun ritardo dovuto alla DNS memorizzazione nella cache quando un'istanza diventa non disponibile.

Se la connessione è multiplexata, RDS Proxy indirizza le query successive a un'altra istanza Reader DB senza alcuna interruzione dell'applicazione. Durante il passaggio automatico a una nuova istanza di lettura, RDS Proxy verifica il ritardo di replica della vecchia e della nuova istanza del lettore. RDSProxy si assicura che la nuova istanza del lettore sia aggiornata con le stesse modifiche dell'istanza di lettura precedente. In questo modo, l'applicazione non vede mai dati obsoleti quando RDS Proxy passa da un'istanza Reader DB all'altra.

Se la connessione è bloccata, la successiva query sulla connessione restituisce un errore. Tuttavia, l'applicazione può riconnettersi immediatamente allo stesso endpoint. RDSIl proxy indirizza la connessione a un'altra istanza Reader DB che si trova in available uno stato. Quando ci si riconnette manualmente, RDS Proxy non verifica il ritardo di replica tra la vecchia e la nuova istanza del lettore.

Se il cluster Aurora non dispone di istanze di lettura disponibili, RDS Proxy verifica se questa condizione è temporanea o permanente. Il comportamento in ogni caso è il seguente:

  • Si assuma che il cluster abbia una o più istanze database di lettura, ma nessuna di esse si trova nello stato Available. Ad esempio, tutte le istanze di lettura potrebbero essere riavviate o potrebbero riscontrare dei problemi. In tal caso, i tentativi di connessione a un endpoint di lettura attendono la disponibilità di un'istanza di lettura. 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.

  • Si assuma che il cluster non abbia istanze database di lettura. In tal caso, RDS Proxy restituisce immediatamente un errore se si tenta di connettersi a un endpoint di lettura. Per risolvere il problema, aggiungi una o più istanze di lettura al cluster prima di connetterti all'endpoint di lettura.

In che modo gli endpoint di lettura aiutano la scalabilità delle query

Gli endpoint di lettura per un proxy aiutano con la scalabilità delle query di Aurora nei seguenti modi:

  • Man mano che aggiungi istanze reader al tuo cluster AuroraRDS, Proxy può instradare nuove connessioni a qualsiasi endpoint reader verso le diverse istanze di lettura. In questo modo, le query eseguite utilizzando una connessione all'endpoint di lettura non rallentano le query eseguite utilizzando un'altra connessione all'endpoint di lettura. Le query vengono eseguite su istanze database separate. Ogni istanza database ha le proprie risorse di calcolo, cache di buffer e così via.

  • Ove possibile, RDS Proxy utilizza la stessa istanza Reader DB per tutte le query emesse utilizzando una particolare connessione 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 è multiplexata, RDS Proxy indirizza tutte le query successive a un'altra istanza Reader DB senza alcuna azione da parte dell'utente. Se invece la sessione è bloccata, l'applicazione riceve un errore e deve riconnettersi. È possibile riconnettersi immediatamente all'endpoint del lettore e RDS Proxy indirizza la connessione a un'istanza DB di lettura disponibile. Per ulteriori informazioni sul multiplexing e sul blocco per le sessioni proxy, consulta Panoramica dei concetti relativi al proxy RDS.

  • Maggiore è il numero di istanze database di lettura presenti nel cluster, maggiore sarà il numero di connessioni simultanee che è possibile effettuare utilizzando gli endpoint di lettura. Supponi, ad esempio, che il cluster disponga di quattro istanze database di lettura, ciascuna configurata per supportare 200 connessioni simultanee. Supponi anche che il proxy sia configurato per utilizzare il 50% del numero massimo di connessioni. Qui, il numero massimo di connessioni che è possibile effettuare attraverso gli endpoint di lettura nel proxy è 100 (50% di 200) per la lettura 1. È 100 anche per la lettura 2, e così via, per un totale di 400. Se raddoppi il numero di istanze database di lettura del cluster a otto, anche il numero massimo di connessioni attraverso gli endpoint di lettura raddoppia a 800.

Esempi di utilizzo degli endpoint di lettura

Il seguente esempio di Linux mostra come è possibile confermare di essere connessi a un SQL cluster Aurora My tramite un endpoint reader. L'impostazione di configurazione di innodb_read_only è abilitata. I tentativi di esecuzione di operazioni di scrittura come le istruzioni CREATE DATABASE non riescono e restituiscono un errore. Inoltre, puoi confermare di essere connesso a un'istanza database di lettura controllando il nome dell'istanza database utilizzando la variabile aurora_server_id.

Suggerimento

Non fare affidamento solo sul controllo del nome dell'istanza database per determinare se la connessione è di lettura/scrittura o di sola lettura. Ricorda che le istanze database in un cluster Aurora possono cambiare ruolo tra scrittura e lettura quando si verificano i failover.

$ mysql -h endpoint-demo-reader.endpoint.proxy-demo.us-east-1.rds.amazonaws.com -u admin -p ... mysql> select @@innodb_read_only; +--------------------+ | @@innodb_read_only | +--------------------+ | 1 | +--------------------+ mysql> create database shouldnt_work; ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement mysql> select @@aurora_server_id; +---------------------------------------+ | @@aurora_server_id | +---------------------------------------+ | proxy-reader-endpoint-demo-instance-3 | +---------------------------------------+

L'esempio seguente mostra come la connessione a un endpoint di lettura proxy può continuare a funzionare anche quando l'istanza database di lettura viene eliminata. In questo esempio, il cluster Aurora dispone di due istanze di lettura, instance-5507 e instance-7448 . La connessione all'endpoint di lettura inizia utilizzando una delle istanze di lettura. Durante l'esempio, questa istanza di lettura viene eliminata da un comando delete-db-instance. RDSIl proxy passa a un'istanza di lettore diversa per le query successive.

$ mysql -h reader-demo.endpoint.proxy-demo.us-east-1.rds.amazonaws.com -u my_user -p ... mysql> select @@aurora_server_id; +--------------------+ | @@aurora_server_id | +--------------------+ | instance-5507 | +--------------------+ mysql> select @@innodb_read_only; +--------------------+ | @@innodb_read_only | +--------------------+ | 1 | +--------------------+ mysql> select count(*) from information_schema.tables; +----------+ | count(*) | +----------+ | 328 | +----------+

Mentre la sessione mysql è ancora in esecuzione, il comando seguente elimina l'istanza di lettura a cui è connesso l'endpoint di lettura.

aws rds delete-db-instance --db-instance-identifier instance-5507 --skip-final-snapshot

Le query nella sessione mysql continuano a funzionare senza la necessità di riconnettersi. RDSIl proxy passa automaticamente a un'istanza DB di lettura diversa.

mysql> select @@aurora_server_id; +--------------------+ | @@aurora_server_id | +--------------------+ | instance-7448 | +--------------------+ mysql> select count(*) from information_schema.TABLES; +----------+ | count(*) | +----------+ | 328 | +----------+

Accesso ai database Aurora attraverso VPCs

Per impostazione predefinita, i componenti dello stack tecnologico Aurora si trovano tutti nello stesso Amazon. VPC Ad esempio, supponiamo che un'applicazione in esecuzione su un'EC2istanza Amazon si connetta a un'istanza DB del cluster Aurora DB. In questo caso, il server delle applicazioni e il database devono trovarsi entrambi all'interno dello stesso. VPC

Con RDS Proxy, puoi configurare l'accesso a un'istanza Amazon RDS DB del cluster Aurora DB VPC dalle risorse presenti in un'altraVPC, come EC2 le istanze. Ad esempio, l'organizzazione potrebbe avere più applicazioni che accedono alle stesse risorse del database. Ogni applicazione potrebbe essere a sé stante. VPC

Per abilitare VPC l'accesso incrociato, è necessario creare un nuovo endpoint per il proxy. Il proxy stesso risiede nella VPC stessa istanza DB del cluster Aurora DB. Tuttavia, il VPC cross-endpoint risiede nell'altraVPC, insieme alle altre risorse come le istanze. EC2 Il VPC cross-endpoint è associato a sottoreti e gruppi di sicurezza provenienti dalle stesse VPC risorse e da altre risorse. EC2 Queste associazioni consentono di connettersi all'endpoint da applicazioni che altrimenti non potrebbero accedere al database a causa delle restrizioni. VPC

I passaggi seguenti spiegano come creare e accedere a un VPC cross-endpoint tramite RDS Proxy:

  1. Creane due VPCs o scegline due VPCs che già usi per il lavoro di Aurora . Ciascuno VPC dovrebbe avere le proprie risorse di rete associate, come un gateway Internet, tabelle di routing, sottoreti e gruppi di sicurezza. Se ne hai solo unoVPC, puoi consultare i passaggi Nozioni di base su Amazon Aurora per configurarne un altro per VPC utilizzare Aurora con successo. Puoi anche esaminare le tue risorse esistenti VPC nella EC2 console Amazon per vedere i tipi di risorse da connettere tra loro.

  2. Crea un proxy DB associato all' a cui desideri connetterti. Segui la procedura riportata in Creazione di un RDS proxy.

  3. Nella pagina Dettagli del proxy nella RDS console, nella sezione Endpoint proxy, scegli Crea endpoint. Segui la procedura riportata in Creazione di un endpoint proxy.

  4. Scegli se rendere il VPC cross-endpoint di lettura/scrittura o di sola lettura.

  5. Invece di accettare l'impostazione predefinita dell'VPC DB del cluster Aurora DB, scegline un'altra. VPC VPCDeve trovarsi nella stessa AWS regione in VPC cui risiede il proxy.

  6. Ora, invece di accettare le impostazioni predefinite per sottoreti e gruppi di sicurezza della stessa istanza DB VPC del cluster Aurora DB, effettua nuove selezioni. Creale in base alle sottoreti e ai gruppi di sicurezza tra quelli che hai scelto. VPC

  7. Non è necessario modificare alcuna delle impostazioni per i segreti di Secrets Manager. Le stesse credenziali funzionano per tutti gli endpoint del proxy, indipendentemente dall'endpoint in cui VPC si trova.

  8. Attendi che il nuovo endpoint raggiunga lo stato Disponibile.

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

  10. Accedi al nuovo endpoint da una risorsa nella stessa VPC dell'endpoint. Un modo semplice per testare questo processo è creare una nuova EC2 istanza al suo interno. VPC Quindi, accedi all'EC2istanza ed psql esegui i comandi mysql or per connetterti utilizzando il valore dell'endpoint nella stringa di connessione.