Comment puis-je empêcher les erreurs d'expiration de la passerelle HTTP 504 dans Amazon OpenSearch Service ?

Date de la dernière mise à jour : 30/07/2021

J'essaie de résoudre une erreur d'expiration de la passerelle 504 dans Amazon OpenSearch Service (successeur d'Amazon Elasticsearch Service). Comment puis-je procéder ?

Brève description

Un équilibreur de charge se trouve devant chaque domaine OpenSearch Service. L'équilibreur de charge répartit le trafic entrant sur les nœuds de données. Si les demandes OpenSearch Service n'aboutissent pas et renvoient une confirmation pendant la période d'inactivité, l'équilibreur de charge arrête la connexion TCP. Par conséquent, vous recevez un message d'erreur d'expiration de la passerelle HTTP 504. Une erreur d'expiration de la passerelle HTTP 504 n'indique pas nécessairement un problème avec votre cluster. Elle signifie simplement que la demande n'a abouti pendant la période d'inactivité.

Les erreurs d'expiration 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 : OpenSearch Service ne peut pas traiter la demande pendant la période d'inactivité.

Résolution

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

  • Activez les journaux lents pour votre index OpenSearch Service, puis spécifiez des seuils de journalisation. Les journaux lents peuvent vous aider à déterminer si le traitement d'une requête donnée est de longue durée. Si tel est le cas, affinez la requête pour résoudre l'erreur 504. Pour plus d'informations, consultez Affichage des journaux lents Amazon OpenSearch Service.
  • Réduisez la quantité de données qu'OpenSearch Service doit interroger pour les requêtes. Cela permet de réduire le temps de traitement des requêtes.
  • Basculez vers un type d'instance plus important. Pour plus d'informations, veuillez consulter la rubrique 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.