Comment résoudre les problèmes de délai d’expiration de la connexion et de socket avec OpenSearch Service ?
Mon application cliente reçoit des erreurs de délai d’expiration de la connexion ou de socket lorsque j'essaie de me connecter à Amazon OpenSearch Service.
Résolution
Résoudre les problèmes de délai d'expiration
Effectuez les opérations suivantes :
- Activez les journaux lents pour votre index OpenSearch Service afin d'identifier les requêtes qui mettent du temps à se terminer et que vous devez régler. Pour plus d'informations, consultez la section Consultation des journaux lents OpenSearch Service.
- Utilisez des requêtes de plus petite taille pour réduire la quantité de données contenues dans les requêtes et le temps nécessaire à leur traitement.
- Utilisez un type d’instance Amazon Elastic Compute Cloud (Amazon EC2) de plus grande taille. Pour plus d'informations, consultez les sections Choix des types d'instance et tests et Types d'instances pris en charge dans OpenSearch Service.
- Configurez des mécanismes de backoff exponentiel et de nouvelle tentative afin que votre application réessaie les requêtes qui expirent.
- Utilisez des requêtes groupées plutôt que des requêtes individuelles afin de réduire la charge du cluster.
- Utilisez l'outil de débogage de l'API Profil pour obtenir des informations détaillées sur le délai d'expiration. Pour plus d'informations, consultez la page API Profil sur le site Web d'OpenSearch.
Résoudre les erreurs « Connection timed out » (Délai de connexion expiré)
Si votre connexion expire, vous recevez un message d'erreur similaire à l'exemple suivant :
« 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 »
En fonction du type de domaine utilisé, effectuez les actions de dépannage suivantes.
Domaines publics
Les domaines publics sont accessibles via Internet lorsque le client dispose d'une connectivité ou d’itinéraires vers Internet. Si le client ne dispose pas de connectivité ou d’itinéraires vers Internet, vous pouvez recevoir la sortie suivante lorsque vous exécutez une commande telnet ou curl :
Trying xyz.xyz.xyz.xyz... telnet: connect to address xyz.xyz.xyz.xyz: Connection timed out
-ou-
* 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
Pour résoudre ce problème, assurez-vous que le client utilise des itinéraires vers Internet et qu'il ne bloque pas les requêtes sortantes vers le point de terminaison de recherche.
Pour tester votre connexion, exécutez la commande suivante :
telnet search-domain-name-someid.aws-region.es.amazonaws.com 443
Remarque : Remplacez search-domain-name-someid par votre nom de domaine et aws-region par votre région AWS.
Exemple de réponse réussie depuis le point de terminaison de recherche :
Trying xyz.xyz.xyz.xyz... Connected to search-domain-name-someid.aws-region.es.amazonaws.com. Escape character is '^]'.
Domaines au sein d'un VPC
Pour les domaines OpenSearch Service que vous créez dans un cloud privé virtuel (VPC), chaque nœud de données du VPC comporte une interface réseau Elastic. Les interfaces réseau redirigent le trafic réseau vers votre domaine.
Pour vérifier la connectivité entre les interfaces réseau et votre domaine, procédez comme suit :
-
Exécutez l'une des commandes suivantes pour obtenir les adresses IP de l'interface réseau de votre VPC :
nslookup -q=A vpc-domain-name-id.aws-region.es.amazonaws.com-ou-
dig +short vpc-domain-name-id.aws-region.es.amazonaws.comRemarque : Remplacez domain-name-id par votre nom de domaine et aws-region par votre région.
Dans la sortie, notez l'adresse IP de l'interface réseau. -
Pour tester la connexion, exécutez l'une des commandes suivantes pour chaque adresse IP de nœud de données :
telnet ip-address 443-ou-
curl -v telnet://ip-address:443Remarque : Remplacez ip-address par l'adresse IP de l'interface réseau.
Exemple de réponse en cas d'expiration de délai :Trying xyz.xyz.xyz.xyz...telnet: connect to address xyz.xyz.xyz.xyz: Connection timed outExemple de réponse réussie :
Trying xyz.xyz.xyz.xyz...Connected to xyz.xyz.xyz.xyz. Escape character is '^]'. -
Si la connexion expire, vérifiez que les groupes de sécurité, les tables de routage et la liste de contrôle d'accès au réseau (ACL réseau) de votre VPC autorisent l'accès au domaine. Si vous parvenez à vous connecter à certaines interfaces réseau mais que d'autres arrivent à expiration, créez un dossier AWS Support.
Remarque : Il n’est pas possible d’accéder à vos domaines OpenSearch Service depuis l'extérieur du VPC. Pour plus d'informations, consultez la section Lancement de vos domaines OpenSearch Service dans un VPC.
Résoudre l'erreur « HTTP 504 gateway timeout » (« Délai de passerelle HTTP 504 expiré »)
L'équilibreur de charge distribue le trafic entrant vers le nœud de données. Si la demande du service OpenSearch ne renvoie pas de confirmation durant la période d'inactivité, l'équilibreur de charge ferme la connexion TCP. Par conséquent, vous recevez un message d'erreur similaire à l’exemple suivant :
« 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] »
Généralement, l'erreur « HTTP 504 Gateway timeout » se produit lorsqu’OpenSearch Service reçoit un trop grand nombre de requêtes simultanées ou que les requêtes sont complexes. L'erreur n'indique pas nécessairement qu'il existe un problème dans le cluster. Pour plus d'informations sur les causes et les étapes de dépannage, consultez la section HTTP 504 : Délai d’expiration de la passerelle
Résoudre les erreurs « SocketTimeoutException »
Des erreurs de délai d’expiration du socket se produisent généralement lorsqu'un client envoie un trop grand nombre de requêtes ou des requêtes complexes. Le domaine OpenSearch Service peut faire face à une utilisation élevée des ressources et à des retards de réponse client. Exemple de message d'erreur :
« 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 »
Pour résoudre ce problème, procédez comme suit :
- Ajustez les valeurs de délai d'expiration de votre cluster. Pour plus d'informations, consultez la page Paramètres de recherche sur le site Web d’OpenSearch.
- Optimisez vos requêtes.
- Mettez à l’échelle votre domaine OpenSearch Service pour répondre aux exigences de la requête.
Informations connexes
Résolution des problèmes liés à OpenSearch Service
Comment résoudre les pics de latence de recherche dans mon cluster Amazon OpenSearch Service ?
Comment améliorer les performances d'indexation sur mon cluster Amazon OpenSearch Service ?
- Sujets
- Analytics
- Balises
- Amazon OpenSearch Service
- Langue
- Français

Contenus pertinents
- Réponse acceptée
demandé il y a 2 ans
demandé il y a 2 ans
demandé il y a 3 ans
demandé il y a 7 mois
AWS OFFICIELA mis à jour il y a 10 mois