Por que estou tendo problemas de conectividade intermitente com meu cluster do Amazon Redshift?

8 minuto de leitura
0

Estou enfrentando problemas de conectividade intermitentes quando tento me conectar ao meu cluster do Amazon Redshift. Por que isso está acontecendo e como solucionar isso?

Breve descrição

Os problemas de conectividade intermitentes em seu cluster do Amazon Redshift são causados pelo seguinte:

  • Acesso restrito a um determinado endereço IP ou bloco CIDR
  • Atualizações da janela de manutenção
  • Falhas de nós ou tarefas administrativas agendadas
  • Rotações de chaves de criptografia
  • Muitas conexões de rede ativas
  • Alta utilização da CPU do node líder
  • Problemas de conexão no lado do cliente

Resolução

Acesso restrito a um determinado endereço IP ou bloco CIDR

Verifique se há acesso restrito a um determinado endereço IP ou bloco CIDR no seu grupo de segurança. Devido à configuração do DHCP, o endereço IP do seu cliente pode mudar, o que pode causar problemas de conectividade. Além disso, se você não estiver usando endereços IP elásticos para seu cluster do Amazon Redshift, o endereço IP gerenciado pela AWS dos nós do seu cluster poderá mudar. Por exemplo, seu endereço IP pode mudar quando você exclui o cluster e o recria a partir de um snapshot ou quando você retoma um cluster pausado.

Observação: endereços IP públicos são alternados quando o cluster do Amazon Redshift é excluído e recriado. Os endereços IP privados mudam sempre que os nós são substituídos.

Para resolver qualquer restrição de rede, considere as seguintes abordagens:

  • Se a aplicação estiver armazenando em cache o endereço IP público por trás de um endpoint de cluster, certifique-se de usar esse endpoint para sua conexão com o Amazon Redshift. Para garantir a estabilidade e a segurança na conexão de rede, evite usar um cache DNS para a conexão.
  • A prática recomendada é usar um endereço IP elástico para seu cluster do Amazon Redshift. Um endereço IP elástico permite que você altere sua configuração base sem afetar o endereço IP que os clientes usam para se conectar ao seu cluster. Essa abordagem é útil quando você está recuperando um cluster após uma falha. Para mais informações, consulte Gerenciar clusters em uma VPC.
  • Se você estiver usando um endereço IP privado para se conectar a um nó líder ou a um nó de computação, certifique-se de usar o novo endereço IP. Por exemplo, se você realizou a ingestão de SSH ou tem uma configuração do Amazon EMR que usa o nó de computação, atualize suas configurações com o novo endereço IP. Um novo endereço IP privado é concedido aos novos nós após a substituição de um nó.

Atualizações da janela de manutenção

Verifique a janela de manutenção do seu cluster do Amazon Redshift. Durante uma janela de manutenção, o cluster do Amazon Redshift não consegue processar operações de leitura ou gravação. Se um evento de manutenção estiver programado para uma determinada semana, ele começará durante a janela de manutenção de 30 minutos designada. Enquanto o Amazon Redshift está realizando a manutenção, todas as consultas ou outras operações em andamento são encerradas. Você pode alterar a janela de manutenção programada no console do Amazon Redshift.

Falhas de nós ou tarefas administrativas agendadas

No console do Amazon Redshift, verifique a guia Eventos para ver se há falhas no nó ou tarefas administrativas programadas (como redimensionar ou reinicializar um cluster).

Se houver uma falha de hardware, o Amazon Redshift poderá ficar indisponível por um curto período, o que pode resultar em falhas nas consultas. Quando uma consulta falhar, você verá uma descrição de Eventos, como a seguinte:

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

Ou, se um administrador de conta programar uma operação de reinicialização ou redimensionamento no seu cluster do Amazon Redshift, poderão ocorrer problemas intermitentes de conectividade. A descrição de Eventos então indica o seguinte:

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

Para mais informações, leia Categorias de eventos e mensagens de eventos do Amazon Redshift.

Rotações de chaves de criptografia

Verifique suas configurações de gerenciamento de chaves para seu cluster do Amazon Redshift. Verifique se você está usando a criptografia e a rotação de chaves e a alternância de criptografia de chaves do AWS Key Management Service (AWS KMS).

Se sua chave de criptografia estiver habilitada e estiver sendo alternada, seu cluster do Amazon Redshift não estará disponível durante esse período. Como resultado, você recebe a seguinte mensagem de erro:

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

A frequência da alternância de suas chaves depende das políticas e padrões de segurança de dados do seu ambiente. Alterne as chaves sempre que necessário ou sempre que a chave criptografada estiver comprometida. Além disso, certifique-se de ter um plano de gerenciamento de chaves que ofereça suporte às suas necessidades de segurança e disponibilidade do cluster.

Muitas conexões ativas

No Amazon Redshift, todas as conexões com seu cluster são enviadas para o nó líder, e há um limite máximo para conexões ativas. O limite máximo que seu cluster do Amazon Redshift pode suportar é determinado pelo tipo de nó (em vez da contagem de nós).

Quando há muitas conexões ativas no seu cluster do Amazon Redshift, você recebe o seguinte erro:

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

Se você receber um erro de Operação inválida ao se conectar ao cluster do Amazon Redshift, isso indica que você atingiu o limite de conexão. Você pode verificar o número de conexões ativas do seu cluster observando a métrica DatabaseConnections no Amazon CloudWatch.

Se você notar um pico nas conexões do banco de dados, pode haver várias conexões ociosas no cluster do Amazon Redshift. Para verificar o número de conexões ociosas, execute a seguinte consulta SQL:

select 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;

A saída é semelhante a este exemplo:

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 as conexões ociosas são identificadas, a conexão pode ser encerrada usando a seguinte sintaxe de comando:

select pg_terminate_backend(process);

A saída é semelhante a este exemplo:

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

Alta utilização da CPU do node líder

Todos os clientes se conectam a um cluster do Amazon Redshift usando um nó líder. A alta utilização da CPU do nó líder pode resultar em problemas de conexão intermitentes.

Se você tentar se conectar ao cluster do Amazon Redshift e o nó líder estiver consumindo muita CPU, você receberá a seguinte mensagem de erro:

"Error setting/closing connection"

Para confirmar se o nó líder atingiu alta utilização da CPU, verifique a métrica Utilização da CPU no Amazon CloudWatch. Para mais informações, consulte Métricas do Amazon Redshift.

Problemas de conexão no lado do cliente

Verifique se há um problema de conexão entre o cliente (como Workbench/J ou PostgreSQL) e o servidor (cluster do Amazon Redshift). Uma redefinição da conexão no lado do cliente poderá ocorrer se seu cliente estiver tentando enviar uma solicitação de uma porta que foi liberada. Como resultado, a redefinição da conexão pode causar problemas de conexão intermitentes.

Para evitar esses problemas de conexão no lado do cliente, considere as seguintes abordagens:

  • Use o recurso keepalive no Amazon Redshift para verificar se a conexão entre o cliente e o servidor está funcionando corretamente. O recurso keepalive também ajuda a evitar que qualquer link de conexão seja desfeito. Para verificar ou configurar os valores de keepalive, consulte Alterar configurações de tempo limite de TCP/IP e Alterar configurações de tempo limite de DSN.
  • Verifique a unidade máxima de transição (MTU) se suas consultas parecerem estar em execução, mas estiverem interrompidas na ferramenta do cliente SQL. Às vezes, as consultas não aparecem no Amazon Redshift devido a uma queda de pacotes. Uma queda de pacote ocorre quando há diferentes tamanhos de MTU nos caminhos de rede entre dois hosts IP. Para mais informações sobre como gerenciar problemas de descarte de pacotes, consulte Consultas parecem travar e às vezes não se comunicam com o cluster.

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos