Comment puis-je éviter les erreurs HTTP 503 de service indisponible dans Amazon Elasticsearch Service ?

Date de la dernière mise à jour : 23/08/2019

Lorsque j'interroge mon domaine Amazon Elasticsearch Service (Amazon ES), je reçois une erreur HTTP 503 de service indisponible.

Remarque : il existe de nombreuses causes possibles de cette erreur. Cet article couvre les causes principales et les solutions courantes.

Brève description

Un équilibreur de charge se trouve devant chaque domaine Amazon ES. L'équilibreur de charge répartit le trafic entrant sur les nœuds de données. Une erreur HTTP 503 indique qu'un ou plusieurs nœuds de données du cluster sont surchargés et que le nœud n'a pas suffisamment de capacité pour traiter la demande. Cette situation est souvent due à un trafic entrant excessif ou à des requêtes onéreuses.

Conseil : vous pouvez utiliser la métrique Amazon CloudWatch RequestCount pour suivre les codes de réponse HTTP.

Résolution

Utilisez l'une des méthodes suivantes pour résoudre les erreurs HTTP 503 :

Allouer des ressources de calcul supplémentaires

  • Mettez à l'échelle votre domaine en basculant vers des instances plus volumineuses, ou augmentez la taille en ajoutant d'autres nœuds au cluster. Pour plus d'informations, consultez Configuration de domaines Amazon ES.
  • Vérifiez que vous utilisez un type d'instance adapté à votre cas d'utilisation. Pour plus d'informations, consultez la page Choix des types d'instances et test.

Réduire l'utilisation des ressources pour vos requêtes

  • Confirmez que vous suivez les bonnes pratiques pour l'architecture de partition et de cluster. Un cluster mal conçu ne peut pas utiliser toutes les ressources disponibles. Certains nœuds peuvent être surchargés tandis que d'autres nœuds restent inactifs. Elasticsearch ne peut pas extraire de documents à partir de nœuds surchargés.
  • Réduisez le nombre de demandes simultanées adressées au domaine.
  • Réduisez la portée de votre requête. Par exemple, si vous interrogez sur la période, réduisez la plage de dates ou filtrez les résultats en configurant le modèle d'index dans Kibana.
  • Évitez d'exécuter des requêtes select* sur des index volumineux. Utilisez plutôt des filtres pour interroger une partie de l'index et rechercher le moins de champs possible.
  • Réindexez et réduisez le nombre de partitions. Plus votre cluster Elasticsearch contient de partitions, plus vous risquez d'obtenir une erreur de récupération du transporteur. Étant donné que chaque partition a sa propre allocation de ressources et ses propres frais généraux, un grand nombre de partitions exerce une pression excessive sur le cluster. Pour réduire le nombre de partitions dans votre cluster, consultez Mon domaine Amazon Elasticsearch Service est bloqué à l'état de traitement depuis longtemps.