Ir para o conteúdo

Como faço para solucionar erros de conexão do Amazon Redshift?

6 minuto de leitura
0

Quero solucionar problemas de conexão com meu cluster do Amazon Redshift.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Recentemente, você redimensionou ou restaurou seu cluster do Amazon Redshift a partir de um snapshot

Se você redimensionou recentemente seu cluster do Amazon Redshift ou o restaurou a partir de um snapshot, verifique a sub-rede do seu cluster. Você deve iniciar seu cluster na mesma sub-rede antes do redimensionamento ou restauração do snapshot.

Se você não redimensionou ou restaurou recentemente seu cluster do Amazon Redshift, verifique suas configurações de rede. As configurações de rede devem ser as mesmas para as sub-redes antigas e novas.

Seu cluster do Amazon Redshift reside em uma sub-rede pública

Se você estiver tentando se conectar a um cluster do Amazon Redshift que está em uma sub-rede pública, verifique se o cluster está definido como Acessível publicamente. Para mais informações sobre opções acessíveis publicamente, consulte Recursos do Redshift em uma nuvem privada virtual (VPC).

Confirme se sua tabela de rotas tem um gateway da internet conectado.

Para testar a conexão com o cluster do Amazon Redshift, execute o comando telnet:

telnet cluster_endpoint cluster_port

Observação: substitua cluster_endpoint e cluster_port por seus valores.

Seu cluster do Amazon Redshift reside em uma sub-rede privada

Se o seu cluster do Amazon Redshift residir em uma sub-rede privada, certifique-se de conectar o gateway NAT à tabela de rotas da sub-rede pública. O gateway NAT permite que clusters em uma sub-rede privada se conectem à Internet. Verifique se o cluster não está definido como Acessível publicamente.

Para confirmar que o cliente pode acessar o endereço IP privado do nó líder do cluster do Amazon Redshift, execute o comando dig:

dig cluster_endpoint

Observação: substitua cluster_endpoint pelo endpoint do seu cluster.

Para testar a conexão com o cluster do Amazon Redshift, execute o comando telnet:

telnet cluster_endpoint cluster_port

Observação: substitua cluster_endpoint e cluster_port por seus valores.

O Telnet não teve êxito ou o cluster do Amazon Redshift ainda está inacessível

Se a saída do comando telnet mostrar que sua conexão de cluster do Amazon Redshift não foi bem-sucedida, verifique as seguintes condições:

  • A regra de entrada do grupo de segurança permite a porta 5439 do Amazon Redshift do tipo TCP.
  • A regra de entrada do grupo de segurança inclui o intervalo CIDR ou o endereço IP que você usa para se conectar ao cluster do Amazon Redshift.

Se a saída mostrar que a conexão do cluster do Amazon Redshift foi bem-sucedida, mas seu cluster ainda estiver inacessível, verifique o firewall da sua rede. Seu firewall pode bloquear a porta 5439 do Amazon Redshift.

Erro de conexão de operação inválida

Se seu cluster do Amazon Redshift exigir que você ative o SSL para qualquer conexão, você poderá receber o seguinte erro de conexão:

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

Para verificar se o parâmetro require_ssl está definido como verdadeiro, conclua as seguintes etapas:

  1. Abra o console do Amazon Redshift.
  2. No painel de navegação, escolha Configuração.
  3. Escolha Gerenciamento de workload.
  4. Modifique o grupo de parâmetros associado ao cluster do Amazon Redshift.
  5. (Opcional) Execute o comando describe-cluster-parameters da AWS CLI para verificar a configuração de SSL:
    aws redshift describe-cluster-parameters --parameter-group-name exampleparametergroupname

Se a configuração SSL estiver definida como verdadeiro, atualize o parâmetro require_ssl para o valor padrão do parâmetro de falso. Para alterar a configuração de SSL, edite o grupo de parâmetros associado ao seu cluster do Amazon Redshift. É possível o grupo de parâmetros na guia Parâmetros do console do Amazon Redshift.

No entanto, se a conexão SSL for necessária para seu caso de uso ou ambiente, certifique-se de que sua cadeia de conexão inclua o parâmetro SSL necessário.

Por exemplo:

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

Erro fatal de conexão

Se houver muitas conexões abertas em seu cluster do Amazon Redshift, você poderá receber o seguinte erro:

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

Como mostra a mensagem de erro, 500 é o limite máximo de conexão para os tipos de nós dc2.large no Amazon Redshift. Para os nós dc2.8xlarge, ra3.xlplus, ra3.4xlarge e ra3.16xlarge, o limite máximo de conexão é 2.000.

Para verificar o número de conexões abertas no seu cluster do Amazon Redshift, conclua as seguintes etapas:

  1. Abra o console do Amazon CloudWatch.

  2. Procure a métrica DatabaseConnections nas suas entradas do Amazon CloudWatch Logs.

  3. Use a tabela STL_CONNECTION_LOG para verificar suas conexões abertas:

    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. Use a tabela STV_SESSIONS para visualizar informações sobre as sessões de usuário ativas do Amazon Redshift:

    select * from stv_sessions;

Se você tiver um grande número de conexões abertas, execute uma das seguintes ações:

  • Use o comando PG_TERMINATE_BACKEND para encerrar qualquer sessão ociosa.
  • Altere as configurações de tempo limite de TCP/IP no lado do cliente com base no sistema operacional usado para se conectar ao cluster do Amazon Redshift. A atualização das configurações de tempo limite de TCP/IP pode ajudar a evitar que sessões ociosas permaneçam abertas.

Erro de conexão recusada

Se o cluster do Amazon Redshift não conseguir estabelecer uma conexão, você poderá receber o seguinte erro Connection Refused:

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

Quando você tenta acessar seu cluster do Amazon Redshift, um problema de permissão pode causar o erro anterior. Para resolver esse erro de conexão, execute uma das seguintes ações:

Informações relacionadas

Como posso tornar um cluster privado do Amazon Redshift acessível publicamente?

Por que não consigo me conectar ao meu cluster do Amazon Redshift?

AWS OFICIALAtualizada há um ano