¿Por qué tengo problemas de conectividad intermitente con mi clúster de Amazon Redshift?
Quiero obtener información sobre cómo solucionar y resolver los problemas de conectividad intermitente que tengo con mi clúster de Amazon Redshift debido a factores como el acceso restringido, los períodos de mantenimiento, los fallos en los nodos, las rotaciones de claves de cifrado, el exceso de conexiones activas, un uso elevado de la CPU y los problemas de conexión en el lado del cliente con los que me encuentro.
Breve descripción
Los problemas de conectividad intermitente en su clúster de Amazon Redshift pueden deberse a lo siguiente:
- Acceso restringido a una dirección IP o bloque de CIDR en particular
- Actualizaciones del período de mantenimiento
- Errores de nodo o tareas de administración programadas
- Rotaciones de claves de cifrado
- Demasiadas conexiones de red activas
- Alta utilización de la CPU del nodo principal
- Problemas de conexión en el lado del cliente
Solución
Acceso restringido a una dirección IP o bloque de CIDR en particular
Compruebe si el acceso a una dirección IP o a un bloque de CIDR concretos está restringido en su grupo de seguridad. Debido a la configuración de DHCP, la dirección IP de su cliente puede cambiar y provocar así problemas de conectividad. Además, si no utiliza direcciones IP elásticas para su clúster de Amazon Redshift, la dirección IP administrada por AWS de los nodos del clúster podría cambiar. Por ejemplo, la dirección IP puede cambiar si elimina el clúster y, a continuación, vuelve a crearlo a partir de una instantánea, o si reanuda un clúster en pausa.
Nota: Las direcciones IP públicas se rotan cuando se elimina el clúster de Amazon Redshift y se vuelve a crear. Las direcciones IP privadas cambian cada vez que se reemplazan los nodos.
Para solucionar cualquier restricción de red, tome una de las siguientes medidas:
- Si su aplicación almacena en caché la dirección IP pública tras un punto de enlace del clúster, utilice ese punto de enlace para su conexión de Amazon Redshift. Para mantener la conexión de red estable y segura, no utilice una caché de DNS para la conexión.
- Se recomienda utilizar una dirección IP elástica para el clúster de Amazon Redshift. Una dirección IP elástica le permite cambiar la configuración subyacente sin que ello afecte a la dirección IP que los clientes utilizan para conectarse a su clúster. Este enfoque resulta útil si desea recuperar un clúster tras un fallo. Para obtener más información, consulte Administración de clústeres en una VPC.
- Si usa una dirección IP privada para conectarse a un nodo principal o a un nodo de computación, utilice la nueva dirección IP en su configuración. Por ejemplo, si ha realizado una incorporación de SSH o su configuración de Amazon EMR utiliza el nodo de computación, actualice su dirección IP. Después de reemplazar un nodo, se otorga una nueva dirección IP privada a los nodos nuevos.
Actualizaciones del período de mantenimiento
Compruebe el período de mantenimiento de su clúster de Amazon Redshift. Durante los períodos de mantenimiento, su clúster de Amazon Redshift no puede procesar las operaciones de lectura ni de escritura. Si se programa un evento de mantenimiento para una semana determinada, el evento comenzará durante el período de mantenimiento asignado de 30 minutos. Mientras Amazon Redshift realiza el mantenimiento, se cierran todas las consultas u otras operaciones en curso. Puede cambiar el período de mantenimiento programado desde la consola de Amazon Redshift.
Errores de nodo o tareas de administración programadas
En la consola de Amazon Redshift, consulte la pestaña Eventos para ver si hay errores en los nodos o tareas de administración programadas, por ejemplo, cambiar el tamaño de un clúster o reiniciarlo.
Si se produce un error de hardware, es posible que Amazon Redshift no esté disponible durante un breve periodo y que las consultas fallen. Si una consulta falla, en Eventos se mostrará una descripción como la siguiente:
«A hardware issue was detected on Amazon Redshift cluster [nombre del clúster]. A replacement request was initiated at [hora].»
Como alternativa, si un administrador de cuenta ha programado una operación de reinicio o cambio de tamaño en su clúster de Amazon Redshift, también pueden darse problemas de conectividad intermitente. Verá una descripción de Eventos parecida a esta:
«Cluster [nombre del clúster] began restart at [hora].»«Cluster [nombre del clúster] completed restart at [hora].»
Para obtener más información, consulte Categorías y mensajes de eventos de Amazon Redshift.
Rotaciones de claves de cifrado
Compruebe la configuración de la administración de claves de su clúster de Amazon Redshift para averiguar si utiliza el cifrado de claves de AWS Key Management Service (AWS KMS) y la rotación del cifrado de claves.
Si la clave de cifrado está activada y se está rotando, el clúster de Amazon Redshift no estará disponible durante ese tiempo. Como resultado, se mostrará el siguiente mensaje de error:
«pg_query(): Query failed: SSL SYSCALL error: EOF detected»
La frecuencia de la rotación de claves depende de los estándares y políticas en materia de seguridad de datos de su entorno. Rote las claves tantas veces como sea necesario o cuando la clave cifrada pueda verse comprometida. Además, asegúrese de contar con un plan de administración de claves que cubra sus necesidades de seguridad y disponibilidad del clúster.
Demasiadas conexiones activas
En Amazon Redshift, todas las conexiones a su clúster se envían al nodo principal y hay un límite máximo de conexiones activas. El tipo de nodo determina la cuota máxima que su clúster de Amazon Redshift puede admitir, no el número de nodos.
Si hay demasiadas conexiones activas en su clúster de Amazon Redshift, se mostrará este mensaje de error:
«[Amazon](500310) Invalid operation: connection limit "500" exceeded for non-bootstrap users»
Si se muestra el error Invalid operation cuando se conecta a su clúster de Amazon Redshift, significa que ha alcanzado la cuota de conexión. Para comprobar el número de conexiones activas para su clúster, consulte la métrica DatabaseConnections en Amazon CloudWatch.
Si observa un pico en las conexiones de la base de datos, es posible que haya varias conexiones inactivas en su clúster de Amazon Redshift. Para comprobar el número de conexiones inactivas, ejecute la siguiente consulta de 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;
El resultado es similar al siguiente ejemplo:
process | user_name | usesysid | starttime | session_dur | last_end | idle_dur ---------+------------+----------+---------------------+-------------+----------+---------- 14684 | myuser | 100 | 2020-06-04 07:02:36 | 6 | | 6 (1 row)
Una vez identificadas las conexiones inactivas, utilice la siguiente sintaxis de comandos para cerrar la conexión:
select pg_terminate_backend(process);
El resultado es similar al siguiente ejemplo:
pg_terminate_backend ---------------------- 1 (1 row)
Alta utilización de la CPU del nodo principal
Todos los clientes utilizan un nodo principal para conectarse a un clúster de Amazon Redshift. El uso elevado de la CPU del nodo principal puede provocar problemas de conexión intermitente.
Si intenta conectarse a su clúster de Amazon Redshift y el nodo principal utiliza mucha CPU, se mostrará el siguiente mensaje de error:
«Error setting/closing connection»
Para confirmar si su nodo principal ha alcanzado una utilización elevada de la CPU, compruebe la métrica CPUUtilization en Amazon CloudWatch. Para obtener más información, consulte Métricas de Amazon Redshift.
Problemas de conexión en el lado del cliente
Compruebe si hay algún problema de conexión entre el cliente, por ejemplo, Workbench/J o PostgreSQL, y el clúster de Amazon Redshift. Si su cliente intenta enviar una solicitud desde un puerto liberado, es posible que se restablezca la conexión del lado del cliente. Como resultado, el restablecimiento de la conexión puede provocar problemas de conexión intermitente.
Para evitar estos problemas de conexión en el lado del cliente, tome una de las siguientes medidas:
- Utilice la característica keepalive de Amazon Redshift para comprobar si la conexión entre el cliente y el servidor funciona correctamente. La característica keepalive también ayuda a evitar que se rompan los enlaces de conexión. Para comprobar o configurar los valores de keepalive, consulte Modificación de la configuración del tiempo de espera de TCP/IP y Modificación de la configuración del tiempo de espera del DSN.
- Si, aparentemente, sus consultas se están ejecutando, pero dejan de responder en la herramienta del cliente de SQL, compruebe la unidad de transición máxima (MTU). Las consultas podrían no aparecer en Amazon Redshift debido a una pérdida de paquetes. Se produce una pérdida de paquetes cuando hay diferentes tamaños de MTU en las rutas de red entre dos hosts de IP. Para obtener más información sobre cómo gestionar los problemas relacionados con la pérdida de paquetes, consulte Falta de respuesta de las consultas y pérdidas de consultas antes de llegar al clúster.
Contenido relevante
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace un mes