Por que tenho problemas intermitentes de conectividade com meu cluster do Amazon Redshift?
Quero aprender a solucionar e resolver problemas intermitentes de conectividade que tenho com meu cluster do Amazon Redshift causados por fatores como acesso restrito, janelas de manutenção, falhas de nós, rotações de chaves de criptografia, muitas conexões ativas que tenho, alta utilização da CPU e problemas de conexão no lado do cliente que encontro.
Breve descrição
Os seguintes problemas podem causar problemas intermitentes de conectividade no seu cluster do Amazon Redshift:
- 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 em seu grupo de segurança. Devido à configuração do DHCP, o endereço IP do cliente pode mudar e causar problemas de conectividade. Além disso, se você não usar 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 quaisquer restrições de rede, execute uma das seguintes ações:
- Se a aplicação armazenar em cache o endereço IP público por trás de um endpoint de cluster, use esse endpoint para sua conexão com o Amazon Redshift. Para manter sua conexão de rede estável e segura, não use um cache DNS para sua 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 subjacente e não afeta o endereço IP que os clientes usam para se conectar ao seu cluster. Essa abordagem é útil se você quiser recuperar um cluster após uma falha. Para mais informações, consulte Gerenciamento de clusters em uma VPC.
- Se você usa um endereço IP privado para se conectar a um nó líder ou nó de computação, use o novo endereço IP em suas configurações. 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 seu 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, seu cluster do Amazon Redshift não pode processar operações de leitura ou gravação. Se um evento de manutenção estiver agendado para uma semana específica, ele começará durante a janela de manutenção de 30 minutos atribuída. Quando o Amazon Redshift executa 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 e poderão ocorrer consultas com falha. Quando uma consulta falha, você vê 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. Você vê uma descrição de Eventos semelhante à seguinte:
"Cluster [cluster name] began restart at [time].""Cluster [cluster name] completed restart at [time]."
Para obter mais informações, consulte Categorias de eventos e mensagens de eventos do Amazon Redshift.
Rotações de chaves de criptografia
Verifique as configurações de gerenciamento de chaves do seu cluster do Amazon Redshift para determinar se você usa a criptografia de chaves e a rotação de criptografia de chaves do AWS Key Management Service (AWS KMS).
Se sua chave de criptografia estiver ativada 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 tipo de nó determina a cota máxima que seu cluster do Amazon Redshift pode aceitar, e não a contagem de nós.
Quando há muitas conexões ativas em seu cluster do Amazon Redshift, você recebe a seguinte mensagem de 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 seu cluster do Amazon Redshift, significa que você atingiu a cota de conexões. Para verificar o número de conexões ativas para seu cluster, revise a métrica DatabaseConnections no Amazon CloudWatch.
Se você notar um pico em suas conexões de banco de dados, pode haver várias conexões ociosas em seu cluster do Amazon Redshift. Para verificar o número de conexões ociosas, execute a seguinte consulta 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;
A saída é semelhante ao exemplo a seguir:
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 forem identificadas, use a seguinte sintaxe de comando para desligar a conexão:
select pg_terminate_backend(process);
A saída é semelhante ao exemplo a seguir:
pg_terminate_backend ---------------------- 1 (1 row)
Alta utilização da CPU do node líder
Todos os clientes usam um nó líder para se conectar a um cluster do Amazon Redshift. A alta utilização da CPU do nó líder pode resultar em problemas de conexão intermitentes.
Se você tentar se conectar ao seu cluster do Amazon Redshift e o nó líder estiver usando alta CPU, você receberá a seguinte mensagem de erro:
"Error setting/closing connection"
Para confirmar se seu nó líder atingiu uma alta utilização da CPU, verifique a métrica de 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 seu cluster do Amazon Redshift. Se seu cliente tentar enviar uma solicitação de uma porta que foi liberada, poderá ocorrer uma redefinição da conexão no lado do cliente. Como resultado, a redefinição da conexão pode causar problemas de conexão intermitentes.
Para evitar esses problemas de conexão do lado do cliente, execute uma das seguintes ações:
- 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 Alteração das configurações de tempo limite de TCP/IP e Alteração das configurações de tempo limite do DSN.
- Se suas consultas parecerem estar em execução, mas pararem de responder na ferramenta cliente SQL, verifique a unidade máxima de transição (MTU). As consultas podem não aparecer no Amazon Redshift devido a uma entrega de pacotes. Uma queda de pacote ocorre quando há diferentes tamanhos de MTU nos caminhos de rede entre dois hosts IP. Para obter mais informações sobre como gerenciar problemas de entrega de pacotes, consulte As consultas parecem travar e, às vezes, não se comunicam com o cluster.
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 2 anos