Pourquoi la mise à niveau de mon domaine Amazon Elasticsearch Service prend-elle si longtemps ?

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

J'essaie de mettre à niveau mon cluster Amazon Elasticsearch Service (Amazon ES), mais la mise à niveau prend beaucoup de temps. Pourquoi cela se produit-il et comment puis-je mieux surveiller l'état de mise à niveau de mon cluster dans Amazon ES ?

Brève description

Lorsque vous apportez une modification de configuration dans Amazon ES, un processus de déploiement bleu/vert est utilisé. Dans un déploiement bleu/vert, deux environnements de production sont exécutés (l'un est en direct et l'autre est inactif). Les deux environnements de production sont ensuite commutés en fonction des mises à jour logicielles. Pour Amazon ES, un nouvel environnement est créé lors des mises à jour de domaine, et les utilisateurs sont routés vers le nouvel environnement de production une fois les mises à jour terminées. Ce comportement réduit les temps d'arrêt et maintient l'environnement d'origine en cas d'échec d'un déploiement.

Pour mieux surveiller l'état de la mise à niveau de votre cluster dans Amazon ES, surveillez votre processus de déploiement bleu/vert à chaque étape :

  • Création de nouveaux nœuds
  • Migration de données
  • Suppression des anciens nœuds

Solution

Récupération de tous les instantanés de cluster et ID de nœuds

Avant une migration, Amazon ES prend un instantané automatisé de votre cluster lorsqu'il réussit le test d'éligibilité. Pendant un instantané, l'état de progression peut afficher « null » ou 0 %. Une fois l'instantané pris, la valeur de pourcentage est mise à jour. Le temps nécessaire à la création d'un instantané peut varier en fonction de l'espace de stockage. Étant donné que les instantanés sont pris de manière incrémentielle, votre instantané peut prendre plus de temps à s'effectuer si des modifications importantes sont apportées à vos données par rapport à l'instantané automatisé précédent.

La requête _snapshot suivante récupère tous les instantanés en cours d'exécution avec des informations d'état détaillées :

GET /_snapshot/_status

Pour plus d'informations sur les API d'instantanés, voir Surveiller l'instantané et restaurer la progression sur le site Web d'Elasticsearch.

Pour récupérer tous les instantanés en cours d'exécution dans votre cluster Elasticsearch, utilisez le paramètre actuel :

GET /_snapshot/<snapshot-repository>/_current

Pour obtenir les ID de tous les nœuds de données, utilisez l'API cat nodes :

GET _cat/nodes

Vous pouvez utiliser les ID de nœuds pour identifier les anciens et les nouveaux nœuds. Un nombre croissant de partitions sur les nouveaux nœuds indique une migration fluide. Au final, toutes les partitions se déplaceront vers les nouveaux nœuds et les anciens nœuds seront vides.

Surveillance du processus de déploiement bleu/vert

Lorsque votre cluster Elasticsearch entre dans le processus de déploiement bleu/vert, les nouveaux nœuds (dans l'environnement vert) apparaissent. Les partitions sont ensuite migrées à partir des anciens nœuds (dans l'environnement bleu). Une fois la migration des données ou la réaffectation des partitions terminées, votre ancien cluster est supprimé.

Vous pouvez surveiller le processus de déploiement bleu/vert en trois étapes : les nouveaux nœuds, la migration des données et la suppression des anciens nœuds.

Étape 1 : Création de nouveaux nœuds

Vous pouvez surveiller la métrique de cluster des nœuds dans Amazon CloudWatch pour obtenir le nombre de nœuds. Vous pouvez également utiliser l'API cat nodes pour répertorier tous les nœuds de votre cluster Elasticsearch :

GET /_cat/nodes?v&pretty

Comme vous ne mettez à jour que la version de votre cluster, dès que le nombre de nœuds (anciens et nouveaux) augmente, le processus est terminé. Par la suite, vous pouvez voir votre domaine Amazon ES revenir à un état « Actif » (après avoir été dans l'état « Traitement »). Pour les clusters Elasticsearch avec des nœuds dédiés, vous pouvez voir que le nombre de nœuds augmente pour s'établir à la somme des anciens et des nouveaux nœuds. Les nœuds principaux de l'ancienne configuration s'arrêtent et le nombre de nœuds diminue du nombre de nœuds principaux. Par exemple, un cluster Elasticsearch avec trois nœuds principaux dédiés diminuera de trois nœuds.

Étape 2 : Migration de données

Dès que la première étape est terminée, la migration des partitions démarre. Au cours de la migration des données, le nombre de partitions pour les nœuds plus anciens diminue et le nombre de partitions pour les nœuds plus récents augmente. Vous pouvez utiliser l'API cat allocation pour voir combien de partitions sont allouées à chaque nœud :

GET /_cat/allocation?v&pretty

Pour plus d'informations, consultez cat allocation sur le site Web d'Elasticsearch.

Étape 3 : Suppression des anciens nœuds

Une fois que toutes les partitions ont été migrées vers les nouveaux nœuds, les anciens nœuds sont supprimés de votre cluster Elasticsearch. Le nombre de nœuds retourne alors au nombre de nœuds d'origine que vous avez configuré. À ce stade, le processus de déploiement bleu/vert et la mise à jour sont terminés.</p


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?