¿Cómo soluciono los problemas de conexión y tiempo de espera de los sockets con OpenSearch Service?
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:
- Activa los registros lentos en tu índice de OpenSearch Service para identificar las consultas que tardan mucho en completarse y que debes ajustar. Para obtener más información, consulta Viewing OpenSearch Service slow logs (Visualización de registros lentos de OpenSearch Service).
- Utiliza consultas más pequeñas para reducir la cantidad de datos de las solicitudes y el tiempo necesario para que se completen.
- Usa un tipo de instancia más grande de Amazon Elastic Compute Cloud (Amazon EC2). Para obtener más información, consulta Selección de tipos de instancias y pruebas y Tipos de instancias compatibles en OpenSearch Service.
- Configura mecanismos de retroceso exponencial y reintento para que la aplicación reintente las solicitudes cuando se agote el tiempo de espera.
- Utiliza solicitudes masivas en lugar de solicitudes individuales para reducir la sobrecarga del clúster.
- Usa la herramienta de depuración de API de perfil para obtener información detallada sobre el tiempo de espera. Para obtener más información, consulta el apartado Profile API (API de perfil) en el sitio web de OpenSearch.
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:
-
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.comAlternativa:
dig +short vpc-domain-name-id.aws-region.es.amazonaws.comNota: 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. -
Para probar la conexión, ejecuta uno de los siguientes comandos para cada dirección IP de nodo de datos:
telnet ip-address 443Alternativa:
curl -v telnet://ip-address:443Nota: 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 outEjemplo de respuesta correcta:
Trying xyz.xyz.xyz.xyz...Connected to xyz.xyz.xyz.xyz. Escape character is '^]'. -
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)
- Temas
- Analytics
- Etiquetas
- Amazon OpenSearch Service
- Idioma
- Español

Contenido relevante
preguntada hace 8 meses
preguntada hace 9 meses
preguntada hace un año
preguntada hace 2 años
OFICIAL DE AWSActualizada hace 7 meses