Usando AWS re:Post, accetti AWS re:Post Termini di utilizzo

Perché sto riscontrando problemi di connettività intermittente con il mio cluster Amazon Redshift?

8 minuti di lettura
0

Voglio scoprire come risolvere i problemi di connettività intermittente che ho con il mio cluster Amazon Redshift causati da fattori quali accesso limitato, finestre di manutenzione, guasti dei nodi, rotazioni delle chiavi di crittografia, troppe connessioni attive, elevato utilizzo della CPU e problemi di connessione sul lato client che ho riscontrato.

Breve descrizione

I problemi di connettività intermittente nel tuo cluster Amazon Redshift sono causati da quanto segue:

  • Accesso limitato per un particolare indirizzo IP o blocco CIDR
  • Aggiornamenti della finestra di manutenzione
  • Errori dei nodi o attività di amministrazione pianificate
  • Rotazioni delle chiavi di crittografia
  • Troppe connessioni di rete attive
  • Elevato utilizzo della CPU del nodo leader
  • Problemi di connessione lato client

Soluzione

Accesso limitato per un particolare indirizzo IP o blocco CIDR

Verifica se esiste un accesso limitato per un particolare indirizzo IP o blocco CIDR nel tuo gruppo di sicurezza. A causa della configurazione DHCP, l'indirizzo IP del client può cambiare, il che può causare problemi di connettività. Inoltre, se non utilizzi indirizzi IP elastici per il tuo cluster Amazon Redshift, l’indirizzo IP gestito da AWS dei nodi del cluster potrebbe cambiare. Ad esempio, l'indirizzo IP può cambiare quando si elimina il cluster e lo si ricrea da uno snapshot o quando si riprende un cluster in pausa.

Nota: Gli indirizzi IP pubblici vengono ruotati quando il cluster Amazon Redshift viene eliminato e ricreato. Gli indirizzi IP privati cambiano ogni volta che i nodi vengono sostituiti.

Per risolvere eventuali restrizioni di rete, intraprendi una delle seguenti azioni:

  • Se la tua applicazione memorizza nella cache l'indirizzo IP pubblico dietro un endpoint del cluster, assicurati di utilizzare questo endpoint per la tua connessione Amazon Redshift. Per mantenere la connessione di rete stabile e sicura, non utilizzare una cache DNS per la connessione.
  • È consigliabile utilizzare un indirizzo IP elastico per il tuo cluster Amazon Redshift. Un indirizzo IP elastico consente di modificare la configurazione sottostante senza influire sull'indirizzo IP utilizzato dai client per connettersi al cluster. Questo approccio è utile se si sta ripristinando un cluster dopo un errore. Per ulteriori informazioni, consulta Gestione dei cluster in un VPC.
  • Se utilizzi un indirizzo IP privato per connetterti a un nodo leader o a un nodo di calcolo, utilizza il nuovo indirizzo IP nelle tue impostazioni. Ad esempio, se hai eseguito l'acquisizione SSH o hai una configurazione Amazon EMR che utilizza il nodo di elaborazione, aggiorna le impostazioni con il nuovo indirizzo IP. Un nuovo indirizzo IP privato viene concesso ai nuovi nodi dopo la sostituzione di un nodo.

Aggiornamenti della finestra di manutenzione

Controlla il periodo di manutenzione per il tuo cluster Amazon Redshift. Durante un periodo di manutenzione, il tuo cluster Amazon Redshift non è in grado di elaborare operazioni di lettura o scrittura. Se un evento di manutenzione è programmato per una determinata settimana, inizia durante il periodo di manutenzione assegnato di 30 minuti. Mentre Amazon Redshift esegue la manutenzione, qualsiasi query o altra operazione in corso viene interrotta. Puoi modificare la finestra di manutenzione programmato dalla console Amazon Redshift.

Errori dei nodi o attività di amministrazione pianificate

Dalla console Amazon Redshift, controlla la scheda Eventi per eventuali errori dei nodi o attività di amministrazione pianificate, come il ridimensionamento o il riavvio del cluster.

In caso di guasto hardware, Amazon Redshift potrebbe non essere disponibile per un breve periodo e potrebbero verificarsi query non riuscite. Quando una query fallisce, viene visualizzata una descrizione Eventi come la seguente:

"A hardware issue was detected on Amazon Redshift cluster [cluster name]. A replacement request was initiated at [time]."

Oppure, se un amministratore dell'account pianifica un'operazione di riavvio o ridimensionamento sul tuo cluster Amazon Redshift, possono verificarsi problemi di connettività intermittente. Viene visualizzata una descrizione Eventi simile a quella seguente:

"Cluster [cluster name] began restart at [time].""Cluster [cluster name] completed restart at [time]."

Per ulteriori informazioni, consulta Categorie di eventi Amazon RDS e messaggi di evento.

Rotazioni delle chiavi di crittografia

Controlla le impostazioni di gestione delle chiavi del tuo cluster Amazon Redshift per determinare se utilizzi la crittografia e la rotazione della crittografia delle chiavi di AWS Key Management Service (AWS KMS).

Se la chiave di crittografia è abilitata e viene ruotata, il cluster Amazon Redshift non è disponibile durante questo periodo. Di conseguenza, viene visualizzato il seguente messaggio di errore:

"pg_query(): Query failed: Errore SSL SYSCALL: EOF detected"

La frequenza della rotazione delle chiavi dipende dalle policy del tuo ambiente per gli standard e la sicurezza dei dati. Ruota le chiavi tutte le volte che è necessario o ogni volta che la chiave crittografata potrebbe essere compromessa. Inoltre, assicurati di disporre di un piano di gestione delle chiavi che supporti sia le tue esigenze di sicurezza che quelle di disponibilità del cluster.

Troppe connessioni attive

In Amazon Redshift, tutte le connessioni al cluster vengono inviate al nodo leader ed esiste un limite massimo per le connessioni attive. Il tipo di nodo determina la quota massima supportata dal cluster Amazon Redshift, non il numero di nodi.

Quando ci sono troppe connessioni attive nel tuo cluster Amazon Redshift, ricevi il seguente errore:

"[Amazon](500310) Invalid operation: connection limit "500" exceeded for non-bootstrap users"

Se ricevi un errore di operazione non valida quando ti connetti al tuo cluster Amazon Redshift, allora hai raggiunto la quota di connessione. Per verificare il numero di connessioni attive per il tuo cluster, consulta la metrica DatabaseConnections in Amazon CloudWatch.

Se noti un picco nelle connessioni al database, potrebbero essere presenti diverse connessioni inattive nel tuo cluster Amazon Redshift. Per verificare il numero di connessioni inattive, esegui la seguente query SQL:

select process, trim(a.user_name) as user_name, a.usesysid, a.starttime,
  datediff(s,a.starttime,sysdate) as session_dur, b.last_end,
 datediff(s,case when b.last_end is not null then b.last_end else
 a.starttime end,sysdate) idle_dur
     FROM
    (select starttime,process,u.usesysid,user_name
     from stv_sessions s, pg_user u
     where
     s.user_name = u.usename
      and u.usesysid>1
and process NOT IN (select pid from stv_inflight where userid>1
 union select pid from stv_recents where status != 'Done' and
  userid>1)
    ) a
     LEFT OUTER JOIN (select
 userid,pid,max(endtime) as last_end from svl_statementtext where
  userid>1 and sequence=0 group by 1,2) b ON a.usesysid = b.userid AND
 a.process = b.pid
    WHERE (b.last_end > a.starttime OR b.last_end is null)
    ORDER BY idle_dur;

L'output sarà simile all'esempio seguente:

 process | user_name  | usesysid |      starttime      | session_dur | last_end | idle_dur
---------+------------+----------+---------------------+-------------+----------+----------
   14684 | myuser     |      100 | 2020-06-04 07:02:36 |           6 |          |        6
(1 row)

Quando vengono identificate delle connessioni inattive, la connessione può essere interrotta utilizzando la seguente sintassi di comando:

select pg_terminate_backend(process);

L'output sarà simile all'esempio seguente:

pg_terminate_backend ----------------------
                    1
(1 row)

Elevato utilizzo della CPU del nodo leader

Tutti i client si connettono a un cluster Amazon Redshift utilizzando un nodo leader. L'elevato utilizzo di CPU del nodo leader può causare problemi di connessione intermittente.

Se provi a connetterti al tuo cluster Amazon Redshift e il nodo leader sta consumando una quantità elevata di CPU, ricevi il seguente messaggio di errore:

"Error setting/closing connection"

Per confermare se il tuo nodo leader ha raggiunto un elevato utilizzo di CPU, controlla la metrica CPUUtilization in Amazon CloudWatch. Per ulteriori informazioni, consulta le metriche di Amazon Redshift.

Problemi di connessione lato client

Verifica la presenza di un problema di connessione tra il client, come Workbench/J o PostgreSQL e il tuo cluster Amazon Redshift. Se il client tenta di inviare una richiesta da una porta che è stata rilasciata, potrebbe verificarsi un ripristino della connessione sul lato client. Di conseguenza, il ripristino della connessione può causare problemi di connessione intermittente.

Per prevenire questi problemi di connessione sul lato client, intraprendi una delle seguenti azioni:

  • Usa la funzionalità keepalive in Amazon Redshift per verificare che la connessione tra client e server funzioni correttamente. La funzionalità keepalive aiuta anche a prevenire l'interruzione di qualsiasi collegamento di connessione. Per controllare o configurare i valori per keepalive, consulta Modifica le impostazioni di timeout TCP/IP e Modifica le impostazioni di timeout DSN.
  • Controlla l'unità di transizione massima (MTU) se le tue query sembrano essere in esecuzione ma si bloccano nello strumento client SQL. A volte, le query non vengono visualizzate in Amazon Redshift a causa di una perdita di pacchetti. Una perdita di pacchetti si verifica quando ci sono diverse dimensioni MTU nei percorsi di rete tra due host IP. Per ulteriori informazioni su come gestire i problemi di rilascio dei pacchetti, consulta Le query sembrano bloccarsi e talvolta non riescono a raggiungere il cluster.
AWS UFFICIALE
AWS UFFICIALEAggiornata 8 mesi fa