Salta al contenuto

Come posso risolvere gli errori di connessione ad Amazon Redshift?

6 minuti di lettura
0

Desidero risolvere i problemi di connessione al mio cluster Amazon Redshift.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Di recente hai ridimensionato o ripristinato il cluster Amazon Redshift da uno snapshot

Se di recente hai ridimensionato il cluster Amazon Redshift o lo hai ripristinato da uno snapshot, controlla la sottorete del cluster. Devi avviare il cluster nella stessa sottorete prima del ridimensionamento o del ripristino dallo snapshot.

Se di recente non hai ridimensionato o ripristinato il cluster Amazon Redshift, verifica le configurazioni di rete. Le configurazioni di rete devono essere le stesse sia per la vecchia che per la nuova sottorete.

Il cluster Amazon Redshift risiede in una sottorete pubblica

Se stai cercando di connetterti a un cluster Amazon Redshift che si trova in una sottorete pubblica, verifica che il cluster sia impostato su Accessibile pubblicamente. Per ulteriori informazioni sulle opzioni di accessibilità pubblica, consulta Risorse Redshift in un VPC.

Verifica che la tabella di routing abbia un gateway Internet collegato.

Per verificare la connessione al cluster Amazon Redshift, esegui il comando telnet:

telnet cluster_endpoint cluster_port

Nota: sostituisci cluster_endpoint e cluster_port con i tuoi valori.

Il cluster Amazon Redshift risiede in una sottorete privata

Se il cluster Amazon Redshift risiede in una sottorete privata, assicurati di collegare il gateway NAT alla tabella di routing della sottorete pubblica. Il gateway NAT consente ai cluster in una sottorete privata di connettersi a Internet. Verifica che il cluster non sia impostato su Accessibile pubblicamente.

Per verificare che il client possa raggiungere l'indirizzo IP privato del nodo principale del cluster Amazon Redshift, esegui il comando dig:

dig cluster_endpoint

Nota: sostituisci cluster_endpoint con l'endpoint del tuo cluster.

Per verificare la connessione al cluster Amazon Redshift, esegui il comando telnet:

telnet cluster_endpoint cluster_port

Nota: sostituisci cluster_endpoint e cluster_port con i tuoi valori.

Telnet ha esito negativo o il cluster Amazon Redshift è ancora inaccessibile

Se l'output del comando telnet indica che la connessione al cluster Amazon Redshift non è riuscita, verifica le seguenti condizioni:

  • La regola in entrata del gruppo di sicurezza consente la porta Amazon Redshift 5439 di tipo TCP.
  • La regola in entrata del gruppo di sicurezza include l'intervallo CIDR o l'indirizzo IP che utilizzi per connetterti al cluster Amazon Redshift.

Se l'output mostra che la connessione al cluster Amazon Redshift è riuscita, ma il cluster è ancora inaccessibile, controlla il firewall della rete. Il firewall potrebbe bloccare la porta 5439 di Amazon Redshift.

Errore di connessione Invalid operation

Se il cluster Amazon Redshift richiede l'attivazione di SSL per qualsiasi connessione, potresti ricevere il seguente errore di connessione:

"Error: [Amazon](500310) Invalid operation: no pg_hba.conf entry for host "::ffff:205.xxx.xxx.xxx", user "username", database "dbname", SSL off;"

Per verificare se il parametro require_ssl è impostato su true, completa i seguenti passaggi:

  1. Apri la console Amazon Redshift.
  2. Nel pannello di navigazione, scegli Configurazione.
  3. Scegli Gestione del carico di lavoro.
  4. Modifica il gruppo di parametri associato al cluster Amazon Redshift.
  5. (Facoltativo) Esegui il comando AWS CLI describe-cluster-parameters per verificare la configurazione SSL:
    aws redshift describe-cluster-parameters --parameter-group-name exampleparametergroupname

Se la configurazione SSL è impostata su true, aggiorna il parametro require_ssl al valore predefinito del parametro false. Per modificare la configurazione SSL, modifica il gruppo di parametri associato al cluster Amazon Redshift. Puoi modificare il gruppo di parametri dalla scheda Parametri della console Amazon Redshift.

Tuttavia, se la connessione SSL è necessaria per il caso d'uso o l'ambiente, assicurati che la stringa di connessione includa il parametro SSL richiesto.

Ad esempio:

jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev?ssl=true

Errore di connessione Fatal

Se ci sono troppe connessioni aperte nel cluster Amazon Redshift, potresti ricevere il seguente errore:

"Error: FATAL: connection limit [500]/[2000] exceeded for user"

Come mostra il messaggio di errore, 500 è il limite massimo di connessioni per i tipi di nodi dc2.large in Amazon Redshift. Per i nodi dc2.8xlarge, ra3.xlplus, ra3.4xlarge e ra3.16xlarge, il limite massimo di connessioni è 2.000.

Per verificare il numero di connessioni aperte nel cluster Amazon Redshift, completa i seguenti passaggi:

  1. Apri la console Amazon CloudWatch.

  2. Cerca la metrica DatabaseConnections nelle voci di Amazon CloudWatch Logs.

  3. Utilizza la tabella STL_CONNECTION_LOG per verificare le connessioni aperte:

    select recordtime, username, dbname, remotehost, remoteportfrom stl_connection_log
    where event = 'initiating session'
    and pid not in
    (select pid from stl_connection_log
    where event = 'disconnecting session')
    order by 1 desc;
  4. Utilizza la tabella STV_SESSIONS per visualizzare informazioni sulle sessioni utente attive per Amazon Redshift:

    select * from stv_sessions;

Se hai un numero elevato di connessioni aperte, esegui una di queste azioni:

  • Utilizza il comando PG_TERMINATE_BACKEND per chiudere tutte le sessioni inattive.
  • Modifica le impostazioni di timeout TCP/IP sul lato client in base al sistema operativo che utilizzi per connetterti al cluster Amazon Redshift. L'aggiornamento delle impostazioni di timeout TCP/IP può aiutare a evitare che le sessioni inattive rimangano aperte.

Errore Connection refused

Se il cluster Amazon Redshift non riesce a stabilire una connessione, potresti ricevere il seguente errore Connection refused:

"Error: amazon 500150 error setting/closing connection: operation timed out/ connection refused."

Quando provi ad accedere al cluster Amazon Redshift, un problema di autorizzazioni può causare l'errore precedente. Per risolvere questo errore di connessione, esegui una di queste azioni:

Informazioni correlate

Come posso rendere accessibile pubblicamente un cluster Amazon Redshift privato?

Non riesco a connettermi al mio cluster Amazon Redshift

AWS UFFICIALEAggiornata 7 mesi fa