Passer au contenu

Comment résoudre les problèmes de délai d’expiration de la connexion et de socket avec OpenSearch Service ?

Lecture de 6 minute(s)
0

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 :

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 :

  1. 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.com

    Remarque : 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.

  2. 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:443

    Remarque : 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 out

    Exemple de réponse réussie :

    Trying xyz.xyz.xyz.xyz...Connected to xyz.xyz.xyz.xyz.
    Escape character is '^]'.
  3. 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 :

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 ?

Analyse des journaux lents OpenSearch Service à l'aide du streaming Amazon CloudWatch Logs et de Kibana

AWS OFFICIELA mis à jour il y a un an