Comment puis-je éviter des erreurs de dépassement de délai de passerelle HTTP 504 dans Amazon Elasticsearch Service ?

Date de la dernière mise à jour : 03/11/2020

J'essaie de résoudre une erreur de dépassement de délai de passerelle 504 dans Amazon Elasticsearch Service (Amazon ES). Comment dois-je procéder ?

Brève description

Un load balancer est placé devant chaque domaine Amazon ES. L'équilibreur de charge répartit le trafic entrant sur les nœuds de données. Si les demandes Amazon ES n'aboutissent pas et renvoient une confirmation de réussite ou de succès au sein du délai d'inactivité, l'équilibreur de charge ferme la connexion TCP pour le cluster. Cela entraîne généralement une erreur de dépassement de délai de passerelle HTTP 504. Une erreur de dépassement de délai de passerelle HTTP 504 n'indique pas nécessairement un problème avec votre cluster, cela signifie simplement que la demande n'a pas pu être effectuée dans le délai d'inactivité.

Les erreurs de temporisation de passerelle se produisent généralement lorsque vous envoyez de nombreuses demandes simultanément ou des demandes complexes. Dans les deux cas, le résultat est le même : Amazon ES ne peut pas traiter la demande dans le délai d'inactivité.

Résolution

Utilisez une ou plusieurs des méthodes suivants pour résoudre les erreurs de dépassement de délai de passerelle HTTP 504 :

  • Activez les journaux lents pour votre index Elasticsearch, puis spécifiez les seuils de journalisation. Les journaux lents peuvent vous aider à déterminer si une demande donnée est très longue à traiter. Si tel est le cas, affinez la demande pour résoudre l'erreur 504. Pour plus d'informations, consultez Affichage des journaux lents Amazon Elasticsearch Service.
  • Réduisez la quantité de données qu'Amazon ES doit analyser pour les demandes. Cela permet de réduire le temps nécessaire à l'exécution des demandes.
  • Basculez vers un type d'instance plus important. Pour plus d'informations, consultez Choix des types d'instances et tests.
  • Configurez le backoff exponentiel et relancez les mécanismes dans votre application de sorte que les demandes ayant dépassé le délai d'attente soient envoyées de nouveau.
  • Utilisez des demandes en bloc plutôt que des demandes individuelles. Cela permet de réduire la surcharge de pré-demande pour le cluster.