Si votre instance Alibaba Cloud Elasticsearch utilise le mode de déploiement cloud-native (v3), vous pouvez migrer les données d'un cluster Elasticsearch auto-géré hébergé sur une instance ECS en établissant une connexion par réseau privé et en utilisant la fonctionnalité de réindexation.
Prérequis
-
Votre cluster Elasticsearch auto-géré doit répondre aux exigences suivantes :
Le cluster doit être hébergé sur une instance ECS située dans le même VPC que votre instance Alibaba Cloud Elasticsearch. Les connexions établies via ClassicLink ne sont pas prises en charge.
Le groupe de sécurité de l'instance ECS doit autoriser l'accès depuis toutes les adresses IP des nœuds de votre instance Alibaba Cloud Elasticsearch sur le port 9200. Vous pouvez trouver les adresses IP des nœuds dans la console Kibana.
-
Vous devez pouvoir vous connecter à l'instance Alibaba Cloud Elasticsearch. Vérifiez la connectivité en exécutant la commande
curl -XGET http://<host>:9200sur une machine.RemarqueVous pouvez exécuter le script présenté dans ce guide depuis n'importe quelle machine capable d'accéder à la fois au cluster Elasticsearch auto-géré et à l'instance Alibaba Cloud Elasticsearch sur le port 9200.
-
Les données de l'index source doivent être prêtes dans votre cluster Elasticsearch auto-géré. Ce guide utilise un index nommé
sourceà titre d'exemple.[root@elasticsearch1 ~]# curl -XGET http://172.16.xxx.xxx:9200/_cat/indices?v health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open source lGFcaUIgT1-Nsj9b_EezAQ 1 1 6 0 28.2kb 19.1kb green open dest Kn3Tu9TmT62J4ouMHi_37w 1 1 6 0 23.3kb 9.1kb [root@elasticsearch1 ~]#
-
Votre instance Alibaba Cloud Elasticsearch doit répondre aux exigences suivantes :
Activez préalablement la fonctionnalité de création automatique d'index ou créez les
mappingset lessettingssur Alibaba Cloud Elasticsearch.Assurez-vous qu'aucune restriction de liste blanche n'est configurée.
Limites
Alibaba Cloud ES propose deux modes de déploiement : l'architecture de gestion de base (v2) et la nouvelle architecture de gestion cloud-native (v3). Vous pouvez identifier le mode de déploiement de votre instance dans la section Informations de base.

Pour les clusters utilisant la nouvelle architecture de gestion cloud-native (v3), la réindexation inter-clusters nécessite PrivateLink pour établir une connexion d'appairage de réseau privé. Reportez-vous au tableau suivant et choisissez une solution adaptée à votre scénario métier.
|
Scénario |
Architecture réseau du cluster ES |
Solutions |
|
Migration de données entre des clusters Alibaba Cloud ES |
Les deux clusters ES sont créés avec l'architecture de gestion de base (v2). |
API reindex. Pour plus d'informations, consultez Utiliser l'API reindex pour migrer des données entre des clusters Alibaba Cloud ES. |
|
L'un des clusters ES est créé avec la nouvelle architecture de gestion cloud-native (v3). Remarque
L'autre cluster ES peut être créé avec la nouvelle architecture de gestion cloud-native (v3) ou l'architecture de gestion de base (v2). |
|
|
|
Migrer des données d'un cluster ES auto-géré sur une instance ECS vers un cluster Alibaba Cloud ES |
Le cluster Alibaba Cloud ES est créé avec l'architecture de gestion de base (v2). |
API reindex. Pour plus d'informations, consultez Migrer des données d'un cluster Elasticsearch auto-géré vers Alibaba Cloud Elasticsearch en utilisant reindex. |
|
Le cluster Alibaba Cloud ES est créé avec la nouvelle architecture de gestion cloud-native (v3). |
API reindex. Pour plus d'informations, consultez Migrer des données Elasticsearch auto-gérées via une connexion privée. |
Procédure
-
Étape 1 : Configurer une instance SLB compatible avec PrivateLink
Seule une instance SLB compatible avec PrivateLink peut servir de ressource de service pour un service de point de terminaison. Avant d'établir une connexion privée entre des VPC à l'aide de PrivateLink, vous devez créer une instance SLB compatible avec PrivateLink et configurer un écouteur.
-
Étape 2 : Créer un service de point de terminaison
Un service de point de terminaison permet à d'autres VPC d'établir des connexions privées en créant des points de terminaison. Après avoir configuré l'instance SLB, vous devez créer un service de point de terminaison.
-
Étape 3 : Configurer une connexion privée pour Alibaba Cloud Elasticsearch
Dans la console Alibaba Cloud Elasticsearch, associez votre instance Alibaba Cloud Elasticsearch au service de point de terminaison que vous avez créé à l'étape 2.
-
Étape 4 : Obtenir le nom de domaine du point de terminaison
Une fois l'instance cible associée au service de point de terminaison, vous pouvez obtenir le nom de domaine du point de terminaison afin de configurer la liste blanche de réindexation.
-
Étape 5 : Configurer la liste blanche de réindexation
Dans la console Alibaba Cloud Elasticsearch, ajoutez le nom de domaine obtenu à l'étape 4 à la liste blanche de réindexation de l'instance cible pour accorder l'accès.
-
Une fois les étapes précédentes terminées, la connexion réseau entre les instances source et cible est établie et vous pouvez démarrer la migration des données.
Étape 1 : Configurer une instance SLB pour PrivateLink
-
Créez une instance SLB.
Assurez-vous que l'instance SLB se trouve dans la même région que l'instance ECS ajoutée en tant que serveur backend. Pour plus d'informations, consultez Créer une instance SLB compatible avec PrivateLink.
-
Configurez le Protocol and listener. Définissez le protocole sur TCP et le port sur 9200.
Dans la liste des instances SLB, localisez l'instance cible et cliquez sur Create Listener dans la colonne Actions.
Pour plus d'informations, consultez Ajouter un écouteur TCP.
-
Cliquez sur Next step. Configurez le groupe de serveurs backend en ajoutant l'instance ECS qui héberge votre cluster Elasticsearch auto-géré, et définissez le port sur 9200.
Pour plus d'informations, consultez Configurer les serveurs backend.
Cliquez sur Next step et configurez la section Configure Health Check selon vos besoins. Ce guide utilise les paramètres par défaut.
-
Cliquez sur Next step. Vérifiez votre configuration, cliquez sur Submit, confirmez les détails de la configuration, puis cliquez sur I Understand. Vous revenez à la page Manage Cluster, où vous pouvez vérifier l'état de la vérification d'état de l'instance ECS backend.
Un état Normal indique que l'instance ECS backend peut traiter les requêtes transférées par l'instance SLB.
Étape 2 : Créer un service de point de terminaison
Connectez-vous à la console du service de point de terminaison.
-
Dans la barre de navigation supérieure, sélectionnez la région dans laquelle vous souhaitez créer le service de point de terminaison.
Ce guide utilise China (Hangzhou) à titre d'exemple.
-
Cliquez sur Create Endpoint Service. Sur la page Create Endpoint Service, configurez les paramètres selon vos besoins.
Pour des instructions détaillées, consultez Créer et gérer un service de point de terminaison. Dans la section Ressource de service, définissez Type de ressource sur Classic Load Balancer (CLB). Ce guide utilise les configurations clés suivantes. Pour les autres paramètres, utilisez les valeurs par défaut ou configurez-les selon vos besoins.
Paramètre
Description
Select service resource
Sélectionnez la zone de disponibilité qui transporte le trafic, puis sélectionnez l'instance SLB à associer au service de point de terminaison.
L'instance SLB associée accepte le trafic réseau provenant de vos utilisateurs de service. La zone de disponibilité du service de point de terminaison est identique à la zone de disponibilité principale de la ressource de service.
Une instance SLB ne peut servir de ressource de service que si elle remplit les conditions suivantes :
-
Le type de réseau est VPC.
-
PrivateLink est pris en charge.
Automatically Accept Endpoint Connections
Indiquez si vous souhaitez accepter automatiquement les demandes de connexion provenant des points de terminaison. Nous vous recommandons de sélectionner Yes. Les options sont les suivantes :
-
Yes : Le service de point de terminaison accepte automatiquement les demandes de connexion. Le point de terminaison peut alors accéder au service.
-
No : La connexion du point de terminaison reste déconnectée jusqu'à ce que l'administrateur du service traite la demande :
-
Si l'administrateur accepte la demande de connexion, le service est accessible via le point de terminaison.
-
Si l'administrateur rejette la demande de connexion, le service n'est pas accessible via le point de terminaison.
-
Enable zone affinity
Indiquez si vous souhaitez activer l'affinité de zone. Nous vous recommandons de sélectionner Yes.
-
Cliquez sur OK.
Étape 3 : Configurer une connexion privée
Connectez-vous à la console Alibaba Cloud Elasticsearch.
Dans le menu de navigation de gauche, choisissez Elasticsearch Clusters.
-
Accédez au cluster cible.
Dans la barre de navigation supérieure, sélectionnez le groupe de ressources auquel appartient le cluster et la région où il réside.
Sur la page Elasticsearch Clusters, trouvez le cluster et cliquez sur son ID.
Cliquez sur Add Private Connection et sélectionnez le service de point de terminaison créé à l'étape précédente.
Attendez que l'état de la connexion passe à Connected. Cela signifie que le VPC du cluster ES et votre VPC sont connectés.
Dans le panneau Configure Private Connection, cliquez sur Add Private Connection. Sélectionnez le service de point de terminaison que vous avez créé à l'étape 2 ainsi que la zone de disponibilité cible, puis cochez la case correspondant à l'invite système.
Cliquez sur OK. Le service de point de terminaison se connecte activement au point de terminaison. Une fois la connexion établie, l'état passe à Connected.
Étape 4 : Obtenir le nom de domaine du point de terminaison
Une fois les étapes précédentes terminées, vous devez obtenir le nom de domaine du point de terminaison pour configurer la liste blanche de réindexation.
Dans le panneau Configure Private Connection, cliquez sur l'Endpoint ID cible.
-
Sous l'onglet Endpoint connections, cliquez sur l'icône de développement (
) située à côté de l'ID du point de terminaison cible pour afficher le nom de domaine correspondant du point de terminaison.Après développement, vous trouverez le nom de domaine PrivateLink dans le champ Domain Name. Le format est le suivant :
ep-{endpoint ID}-{availability zone}.epsrv-{service ID}.{region}.privatelink.aliyuncs.com
Étape 5 : Configurer la liste blanche de réindexation
Cette opération redémarre le cluster. Nous vous recommandons de l'effectuer pendant les heures creuses.
Connectez-vous à la console Alibaba Cloud Elasticsearch.
Dans le menu de navigation de gauche, choisissez Elasticsearch Clusters.
-
Accédez au cluster cible.
Dans la barre de navigation supérieure, sélectionnez le groupe de ressources auquel appartient le cluster et la région où il réside.
Sur la page Elasticsearch Clusters, trouvez le cluster et cliquez sur son ID.
Dans le menu de navigation de gauche, choisissez .
Dans la section YML File Configuration, cliquez sur Modify Configuration à droite.
-
Dans le panneau YML File Configuration, cliquez sur Modify Configuration et ajoutez le nom de domaine obtenu à l'étape 4.
Exemple :
reindex.remote.whitelist: 'ep-bp1nitq0krp8yhcf****-cn-hangzhou-i.epsrv-bp1zczi0fgoc5qtv****.cn-hangzhou.privatelink.aliyuncs.com:9200' Cliquez sur OK.
Étape 6 : Migrer les données
-
Dans Dev Tools de la console Kibana, exécutez la commande suivante pour migrer les données.
RemarquePour savoir comment vous connecter à la console Kibana, consultez Se connecter à la console Kibana.
POST /_reindex?pretty { "source": { "remote": { "host": "http://ep-bp1nitq0krp8yhcf****-cn-hangzhou-i.epsrv-bp1zczi0fgoc5qtv****.cn-hangzhou.privatelink.aliyuncs.com:9200", "username": "elastic", "password": "Elastic@123***" }, "index": "source", "size": 5000 }, "dest": { "index": "dest" } }Si la console Kibana n'est pas disponible, vous pouvez également exécuter une commande cURL sur une machine capable d'accéder à votre instance Alibaba Cloud Elasticsearch pour effectuer l'opération de réindexation :
curl -u <username>:<password> -XPOST "http://<Alibaba Cloud Elasticsearch domain name>:9200/_reindex?pretty" -H "Content-Type: application/json" -d '{ "source": { "remote": { "host": "http://<endpoint domain name>:9200", "username": "<self-managed Elasticsearch username>", "password": "<self-managed Elasticsearch password>" }, "index": "source", "size": 5000 }, "dest": { "index": "dest" } }'RemarqueSi la sécurité n'est pas activée pour votre cluster Elasticsearch auto-géré, supprimez les champs
usernameetpassworddesource.remote.Pour plus d'informations, consultez l'API reindex.
-
Facultatif : Pour vérifier l'état des tâches de réindexation en cours d'exécution, exécutez la commande suivante.
GET _tasks?detailed=true&actions=*reindex -
Vérifiez le résultat de la migration.
Une fois la migration terminée, exécutez la commande suivante pour vérifier le résultat.
GET _cat/indices?vSi l'état de santé de l'index de destination est normal et que la taille des données correspond à vos attentes, la migration a réussi. Exemple de sortie :
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open .security-7 WzCXGepRRou3e2qE_NXg6g 1 1 55 0 424.1kb 212.1kb green open .monitoring-kibana-7-2021.08.18 G_D3fb8jRfiC72PwmIn-vg 1 1 9560 0 3.1mb 1.5mb green open test RHVpvC30RnO3lE2O2xPx0w 1 1 6 0 29.3kb 9.2kb green open .apm-custom-link Sav0grXzTe2xA1tmgOQOUl 1 1 0 0 522b 261b green open .monitoring-kibana-7-2021.08.19 iF8kyaZCtdSU8z_MIHsj-Q 1 1 2688 1 1.3mb 497.8kb green open .kibana_task_manager_1 ILArbgzRR7KjOQd9SH8BoA 1 1 6 1524 637.3kb 326.7kb green open .apm-agent-configuration VXCcFRjYQU21A_sSPiVGXA 1 1 0 0 522b 261b green open .kibana-event-log-7.10.0-000001 _A3SURUwThakLepdebZt5A 1 1 1 0 11.4kb 5.7kb green open .monitoring-es-7-2021.08.19 RP2xbG60QaqakDvuF972LQ 1 1 28337 34918 37mb 18.4mb green open .kibana_1 o5MX39bZRTeMma4HjT0fog 1 1 22 4 20.8mb 10.4mb green open .monitoring-es-7-2021.08.18 TGyPtE1bTXCaYHq4i7F5nQ 1 1 90546 60040 103.4mb 55.5mb
FAQ
Q : Comment accélérer la synchronisation des données pour un index volumineux ?
R :
La fonctionnalité de réindexation utilise en interne l'API scroll. Vous pouvez augmenter la taille du scroll ou configurer le découpage du scroll (slice) pour paralléliser l'opération et améliorer les performances. Pour plus d'informations, consultez l'API reindex.
Si l'ensemble de données source est très volumineux, nous vous recommandons d'utiliser la méthode de snapshot OSS. Pour plus d'informations, consultez Avancé : Migrer un cluster Elasticsearch auto-géré vers Alibaba Cloud Elasticsearch à l'aide d'un snapshot OSS.
-
Pour un index volumineux, vous pouvez accélérer la synchronisation des données en définissant le nombre de réplicas de l'index de destination sur 0 et l'intervalle de rafraîchissement sur -1 avant la migration. Une fois la migration terminée, rétablissez les paramètres d'origine.
// Before migrating index data, set the number of replicas to 0 and disable the refresh interval to speed up the migration. curl -u user:password -XPUT 'http://<host:port>/indexName/_settings' -d' { "number_of_replicas" : 0, "refresh_interval" : "-1" }' // After the index data is migrated, reset the number of replicas to 1 and the refresh interval to "1s" (the default value). curl -u user:password -XPUT 'http://<host:port>/indexName/_settings' -d' { "number_of_replicas" : 1, "refresh_interval" : "1s" }'