Saltar al contenido

¿Cómo soluciono los problemas de conexión y tiempo de espera de los sockets con OpenSearch Service?

6 minutos de lectura
0

Mi aplicación cliente recibe errores de tiempo de espera de conexión o de socket cuando intento conectarme a Amazon OpenSearch Service.

Resolución

Solucionar problemas de tiempo de espera

Haz lo siguiente:

Solución de errores «Connection timed out»

Si se agota el tiempo de espera de la conexión, recibirás un mensaje de error similar al del siguiente ejemplo:

«curl: (7) Failed to connect to vpc-acbdefxyz.us-east-1.es.amazonaws.com port 443: Connection timed out

curl: (28) Operation timed out after 1001 milliseconds with 0 out of 0 bytes received»

Según el tipo de dominio que utilices, toma las siguientes medidas de solución de problemas.

Dominios públicos

Se puede acceder a los dominios públicos a través de Internet cuando el cliente tiene conectividad o rutas a Internet. Si el cliente no tiene conectividad ni rutas a Internet, es posible que recibas el siguiente resultado al ejecutar un comando telnet o curl:

Trying xyz.xyz.xyz.xyz...
telnet: connect to address xyz.xyz.xyz.xyz: Connection timed out

Alternativa:

*   Trying xyz.xyz.xyz.xyz:443...
* connect to xyz.xyz.xyz.xyz port 443 failed: Operation timed out
* Failed to connect to search-domain-name-someid.aws-region.es.amazonaws.com port 443 after 75243 ms: Couldn't connect to server
* Closing connection 0
curl: (28) Failed to connect to search-domain-name-someid.aws-region.es.amazonaws.com port 443 after 75243 ms: Couldn't connect to server

Para resolver este problema, asegúrate de que el cliente tenga rutas a Internet y no bloquee las solicitudes salientes al punto de enlace de búsqueda.

Para probar la conexión, ejecuta el siguiente comando:

telnet search-domain-name-someid.aws-region.es.amazonaws.com 443

Nota: Sustituye search-domain-name-someid por tu nombre de dominio y aws-region por tu región de AWS.

Ejemplo de una respuesta correcta desde el punto de enlace de búsqueda:

Trying xyz.xyz.xyz.xyz...
Connected to search-domain-name-someid.aws-region.es.amazonaws.com.
Escape character is '^]'.

Dominios dentro de una VPC

En el caso de los dominios de OpenSearch Service que se crean dentro de una nube virtual privada (VPC), cada nodo de datos de la VPC tiene una interfaz de red elástica. Las interfaces de red reenvían el tráfico de red a tu dominio.

Para comprobar la conectividad entre las interfaces de red y tu dominio, sigue estos pasos:

  1. Ejecuta uno de los siguientes comandos para obtener las direcciones IP de la interfaz de red de tu VPC:

    nslookup -q=A vpc-domain-name-id.aws-region.es.amazonaws.com

    Alternativa:

    dig +short vpc-domain-name-id.aws-region.es.amazonaws.com

    Nota: Sustituye domain-name-id por tu nombre de dominio y aws-region por tu región.
    En el resultado, anota la dirección IP de la interfaz de red.

  2. Para probar la conexión, ejecuta uno de los siguientes comandos para cada dirección IP de nodo de datos:

    telnet ip-address 443

    Alternativa:

    curl -v telnet://ip-address:443

    Nota: Sustituye ip-address por la dirección IP de la interfaz de red.
    Ejemplo de respuesta de tiempo de espera:

    Trying xyz.xyz.xyz.xyz...telnet: connect to address xyz.xyz.xyz.xyz: Connection timed out

    Ejemplo de respuesta correcta:

    Trying xyz.xyz.xyz.xyz...Connected to xyz.xyz.xyz.xyz.
    Escape character is '^]'.
  3. Si se agota el tiempo de espera de la conexión, confirma que los grupos de seguridad, las tablas de enrutamiento y la lista de control de acceso de la red (ACL de la red) de tu VPC permiten el acceso al dominio. Si puedes conectarte a algunas interfaces de red pero otras agotan el tiempo de espera, crea un caso de AWS Support.

Nota: No puedes acceder a tus dominios de OpenSearch Service desde fuera de la VPC. Para obtener más información, consulta Inicio de los dominios de OpenSearch Service dentro de una VPC.

Solución del error «HTTP 504 gateway timeout»

El equilibrador de carga distribuye el tráfico entrante al nodo de datos. Si la solicitud de OpenSearch Service no devuelve una confirmación dentro del periodo de tiempo de espera de inactividad, el equilibrador de carga cierra la conexión TCP. Como resultado, recibes un mensaje de error similar al siguiente ejemplo:

«error msg: org.elasticsearch.client.ResponseException:

method[POST], host[https: //acbdefjhxyz.eu-central-1.es.amazonaws.com:443],

URI [/eks*/_search?typed_keys=true],status line [HTTP/1.1 504 Gateway Time-out]»

Por lo general, el error «HTTP 504 Gateway timeout» se produce cuando OpenSearch Service recibe demasiadas solicitudes simultáneas o las solicitudes son complejas. El error no indica necesariamente que haya un problema en el clúster. Para obtener más información sobre las causas y los pasos para la solución de problemas, consulta HTTP 504: Gateway timeout.

Solución de errores «SocketTimeoutException»

Los errores de tiempo de espera de los sockets suelen producirse cuando un cliente envía demasiadas solicitudes o solicitudes complejas. El dominio de OpenSearch Service puede experimentar un uso elevado de recursos con demoras en las respuestas de los clientes. Ejemplo de mensaje de error:

«j.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-5083 [ACTIVE]

java.net.SocketTimeoutException: Read timed out

Caused by: java.net.SocketTimeoutException: Read timed out»

Para solucionar este problema, toma las siguientes medidas:

  • Ajusta los valores de tiempo de espera de tu clúster. Para obtener más información, consulta Search settings (Configuración de búsqueda) en el sitio web de OpenSearch.
  • Optimiza tus consultas.
  • Escala tu dominio de OpenSearch Service para cumplir con los requisitos de la solicitud.

Información relacionada

Solución de problemas de OpenSearch Service

¿Cómo soluciono los picos de latencia de búsqueda en mi clúster de OpenSearch Service?

¿Cómo puedo mejorar el rendimiento de indexación en mi clúster de OpenSearch Service?

Analyzing OpenSearch Service slow logs using Amazon CloudWatch Logs streaming and Kibana (Análisis de los registros lentos de OpenSearch Service con la transmisión de Registros de Amazon CloudWatch y Kibana)

OFICIAL DE AWSActualizada hace un año