Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Migration des index Amazon OpenSearch Service à l'aide de la réindexation à distance
La réindexation à distance vous permet de copier des index d'un domaine Amazon OpenSearch Service vers un autre. Vous pouvez migrer des index depuis n'importe quel domaine de OpenSearch service ou depuis des clusters autogérés OpenSearch ou Elasticsearch.
Un domaine et un index distants font référence à la source des données, ou au domaine et à l'index à partir desquels vous souhaitez copier les données. Un domaine et un index locaux font référence à la cible des données, ou au domaine et à l'index vers lesquels vous souhaitez copier les données.
La réindexation à distance nécessite la OpenSearch version 1.0 ou ultérieure, ou Elasticsearch 6.7 ou version ultérieure, sur le domaine local. Le domaine distant doit présenter une version inférieure ou la même version majeure que le domaine local. Les versions d'Elasticsearch sont considérées comme inférieures aux OpenSearch versions, ce qui signifie que vous pouvez réindexer les données des domaines Elasticsearch vers des domaines. OpenSearch Dans la même version majeure, le domaine distant peut correspondre à n'importe quelle version mineure. Par exemple, la réindexation à distance d'Elasticsearch 7.10.x vers 7.9 est prise en charge, mais pas de la version OpenSearch 1.0 vers Elasticsearch 7.10.x.
Note
Cette documentation explique comment réindexer les données entre les domaines Amazon OpenSearch Service. Pour une documentation complète de l'reindex
opération, y compris les étapes détaillées et les options prises en charge, voir le document Reindex
Rubriques
- Prérequis
- Réindexer les données entre les domaines Internet OpenSearch du service
- Réindexez les données entre les domaines OpenSearch de service lorsque la télécommande se trouve dans un VPC
- Réindexer les données entre les domaines non liés OpenSearch aux services
- Réindexer des jeux de données volumineux
- Paramètres de réindexation à distance
Prérequis
La réindexation à distance présente les exigences suivantes :
-
Le domaine distant doit être accessible à partir du domaine local. Pour un domaine distant situé dans unVPC, le domaine local doit avoir accès auVPC. Ce processus varie en fonction de la configuration du réseau, mais implique probablement de se connecter à un réseau géré VPN ou d'utiliser la connexion native du point de VPC terminaison. Pour en savoir plus, consultez Lancer vos domaines Amazon OpenSearch Service au sein d'un VPC.
-
La demande doit être autorisée par le domaine distant comme toute autre REST demande. Si le contrôle d'accès détaillé est activé dans le domaine distant, vous devez être autorisé à effectuer une réindexation sur le domaine distant et à lire l'index sur le domaine local. Pour obtenir plus d’informations de sécurité, consultez Contrôle d'accès précis dans Amazon Service OpenSearch .
-
Nous vous recommandons de créer un index avec le paramètre souhaité sur votre domaine local avant de lancer le processus de réindexation.
-
Si votre domaine utilise un type d'instance T2 ou T3 pour vos nœuds de données, vous ne pouvez pas utiliser la réindexation à distance.
Réindexer les données entre les domaines Internet OpenSearch du service
Le scénario le plus simple est que l'index distant se trouve dans le même Région AWS que votre domaine local avec un point de terminaison accessible au public et que vous avez signé des IAM informations d'identification.
Dans le domaine distant, spécifiez l'index distant à partir duquel vous souhaitez réindexer et l'index local à réindexer :
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Vous devez ajouter 443 à la fin du point de terminaison du domaine distant à des fins de vérification de validation.
Pour vérifier que l'index est copié sur le domaine local, envoyez cette demande au domaine local :
GET local_index/_search
Si l'index distant se trouve dans une région différente de votre domaine local, transmettez son nom de région, comme dans cet exemple de demande :
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "region": "eu-west-1" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Dans le cas d'une région isolée telle que AWS GovCloud (US) la Chine, le point de terminaison peut ne pas être accessible car votre IAM utilisateur n'est pas reconnu dans ces régions.
Si le domaine distant est sécurisé par une authentification de base, spécifiez le nom d'utilisateur et le mot de passe :
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "username": "username
", "password": "password
" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Réindexez les données entre les domaines OpenSearch de service lorsque la télécommande se trouve dans un VPC
Chaque domaine OpenSearch de service est constitué de sa propre infrastructure interne de cloud privé virtuel (VPC). Lorsque vous créez un nouveau domaine dans un OpenSearch service existantVPC, une interface Elastic Network est créée pour chaque nœud de données duVPC.
Comme l'opération de réindexation à distance est effectuée à partir du domaine de OpenSearch service distant, et donc au sein de son propre domaine privéVPC, vous devez disposer d'un moyen d'accéder au domaine local. VPC Vous pouvez le faire soit en utilisant la fonctionnalité intégrée de connexion au point de VPC terminaison pour établir une connexion AWS PrivateLink, soit en configurant un proxy.
Si votre domaine local utilise OpenSearch la version 1.0 ou ultérieure, vous pouvez utiliser la console ou le AWS CLI pour créer une AWS PrivateLink connexion. Une AWS PrivateLink connexion permet aux ressources du local VPC de se connecter de manière privée aux ressources du réseau distant VPC au sein de celui-ci Région AWS.
Pour créer une connexion de point de VPC terminaison, le domaine source à réindexer doit se trouver dans un environnement localVPC, et les domaines source et de destination doivent être identiques. Région AWS
Vous pouvez utiliser la réindexation à distance avec la console pour copier des index entre deux domaines partageant une connexion de point de VPC terminaison.
-
Accédez à la console Amazon OpenSearch Service à l'adressehttps://console.aws.amazon.com/aos/
. -
Dans le volet de navigation de gauche, choisissez Domains (Domaines).
-
Sélectionnez le domaine local ou le domaine dans lequel vous souhaitez copier les données. Cette action ouvre la page des détails du domaine. Cliquez sur l'onglet Connexions sous les informations générales, puis sélectionnez Demander.
-
Sur la page Demande de connexion, sélectionnez VPCEndpoint Connection pour votre mode de connexion et entrez les autres informations pertinentes. Ces détails incluent le domaine distant, qui est le domaine à partir duquel vous souhaitez copier des données. Choisissez ensuite Request (Demander).
-
Accédez à la page de détails du domaine distant, choisissez l'onglet Connexions et recherchez le tableau des connexions entrantes. Sélectionnez la case à cocher située à côté du nom du domaine à partir duquel vous venez de créer la connexion (le domaine local). Choisissez Approve (Approuver).
-
Revenez au domaine local, choisissez l'onglet Connections (Connexions) et recherchez le tableau des connexions sortantes. Une fois la connexion entre les deux domaines active, un point de terminaison devient disponible dans la colonne Endpoint (Point de terminaison) du tableau. Copiez le point de terminaison.
-
Ouvrez le tableau de bord du domaine local et sélectionnez Dev Tools (Outils du développeur) dans le menu de navigation de gauche. Pour vérifier que l'index des domaines distants n'existe pas encore sur votre domaine local, exécutez la GET demande suivante.
remote-domain-index-name
Remplacez-le par votre propre nom d'index.GET
remote-domain-index-name
/_search { "query":{ "match_all":{} } }Dans le résultat, vous devriez voir une erreur indiquant que l'index n'a pas été trouvé.
-
Sous votre GET demande, créez une POST demande et utilisez votre point de terminaison comme hôte distant, comme suit.
POST _reindex { "source":{ "remote":{ "host":"
connection-endpoint
", "username":"username
", "password":"password
" }, "index":"remote-domain-index-name
" }, "dest":{ "index":"local-domain-index-name
" } }Exécutez cette demande.
-
Exécutez à nouveau la GET demande. La sortie devrait maintenant indiquer que l'index local existe. Vous pouvez interroger cet index pour vérifier que toutes les données de l'index distant ont OpenSearch été copiées.
Vous pouvez utiliser la réindexation à distance avec le API pour copier des index entre deux domaines partageant une connexion de point de VPC terminaison.
-
Utilisez cette CreateOutboundConnectionAPIopération pour demander une nouvelle connexion entre votre domaine local et votre domaine distant.
POST https://es.
region
.amazonaws.com/2021-01-01/opensearch/cc/outboundConnection { "ConnectionAlias": "remote-reindex-example", "ConnectionMode": "VPC_ENDPOINT", "LocalDomainInfo": { "AWSDomainInformation": { "DomainName": "local-domain-name
", "OwnerId": "aws-account-id
", "Region": "region
" } }, "RemoteDomainInfo": { "AWSDomainInformation": { "DomainName": "remote-domain-name
", "OwnerId": "aws-account-id
", "Region": "region
" } } }Vous recevez un
ConnectionId
dans la réponse. Enregistrez cet identifiant pour l'utiliser à l'étape suivante. -
Utilisez l'AcceptInboundConnectionAPIopération avec votre identifiant de connexion pour approuver la demande depuis le domaine local.
PUT https://es.
region
.amazonaws.com/2021-01-01/opensearch/cc/inboundConnection/ConnectionId
/accept -
Utilisez cette DescribeOutboundConnectionsAPIopération pour récupérer le point de terminaison de votre domaine distant.
{ "Connections": [ { "ConnectionAlias": "remote-reindex-example", "ConnectionId": "
connection-id
", "ConnectionMode": "VPC_ENDPOINT", "ConnectionProperties": { "Endpoint": "connection-endpoint
" }, ... } ] }Enregistrez le
connection-endpoint
pour l'utiliser à l'étape 5. -
Pour vérifier que l'index des domaines distants n'existe pas encore sur votre domaine local, exécutez la GET demande suivante.
remote-domain-index-name
Remplacez-le par votre propre nom d'index.GET
local-domain-endpoint
/remote-domain-index-name
/_search { "query":{ "match_all":{} } }Dans le résultat, vous devriez voir une erreur indiquant que l'index n'a pas été trouvé.
-
Créez une POST demande et utilisez votre point de terminaison comme hôte distant, comme suit.
POST
local-domain-endpoint
/_reindex { "source":{ "remote":{ "host":"connection-endpoint
", "username":"username
", "password":"password
" }, "index":"remote-domain-index-name
" }, "dest":{ "index":"local-domain-index-name
" } }Exécutez cette demande.
-
Exécutez à nouveau la GET demande. La sortie devrait maintenant indiquer que l'index local existe. Vous pouvez interroger cet index pour vérifier que toutes les données de l'index distant ont OpenSearch été copiées.
Si le domaine distant est hébergé dans un VPC et que vous ne souhaitez pas utiliser la fonctionnalité de connexion au point de VPC terminaison, vous devez configurer un proxy avec un point de terminaison accessible au public. Dans ce cas, le OpenSearch service nécessite un point de terminaison public car il n'est pas en mesure d'envoyer du trafic vers votreVPC.
Lorsque vous exécutez un domaine en VPCmode, un ou plusieurs points de terminaison sont placés dans votreVPC. Cependant, ces points de terminaison ne sont destinés qu'au trafic entrant dans le domaine au sein duVPC, et ils n'autorisent pas le trafic à destination de celui-ciVPC.
La commande de réindexation à distance est exécutée depuis le domaine local, de sorte que le trafic d'origine ne peut pas utiliser ces points de terminaison pour accéder au domaine distant. C'est pourquoi un proxy est requis dans ce cas d'utilisation. Le domaine proxy doit disposer d'un certificat signé par une autorité de certification publique (CA). Les certificats auto-signés ou signés par une autorité de certification privée ne sont pas pris en charge.
Réindexer les données entre les domaines non liés OpenSearch aux services
Si l'index distant est hébergé en dehors de OpenSearch Service, par exemple dans une EC2 instance autogérée, définissez le external
paramètre sur : true
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "username": "username", "password": "password", "external": true }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Dans ce cas, seule l'authentification de base à l'aide d'un nom d'utilisateur et d'un mot de passe est prise en charge. Le domaine distant doit disposer d'un point de terminaison accessible au public (même s'il se trouve dans le même domaine VPC que le domaine de OpenSearch service local) et d'un certificat signé par une autorité de certification publique. Les certificats autosignés ou signés par une autorité de certification privée ne sont pas pris en charge.
Réindexer des jeux de données volumineux
La réindexation à distance envoie une demande de défilement au domaine distant avec les valeurs par défaut suivantes :
-
Contexte de recherche de 5 minutes
-
Délai d'attente de socket de 30 secondes
-
Taille de lot de 1 000
Nous vous recommandons de régler ces paramètres en fonction de vos données. Pour les documents volumineux, envisagez une taille de lot plus petite et/ou un délai d'attente plus long. Pour plus d'informations, consultez Recherche avec défilement
POST _reindex?pretty=true&scroll=10h&wait_for_completion=false { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "socket_timeout": "60m" }, "size": 100, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Nous vous recommandons également d'ajouter les paramètres suivants à l'index local pour de meilleures performances :
PUT local_index { "settings": { "refresh_interval": -1, "number_of_replicas": 0 } }
Une fois le processus de réindexation terminé, vous pouvez définir le nombre de réplicas souhaité et supprimer le paramètre d'intervalle d'actualisation.
Pour réindexer uniquement un sous-ensemble de documents sélectionnés par le biais d'une requête, envoyez cette demande au domaine local :
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443" }, "index": "remote_index
", "query": { "match": { "field_name": "text" } } }, "dest": { "index": "local_index
" } }
La réindexation à distance ne prend pas en charge le découpage et dès lors, vous ne pouvez pas effectuer plusieurs opérations de défilement pour la même demande en parallèle.
Paramètres de réindexation à distance
Outre les options de réindexation standard, OpenSearch Service prend en charge les options suivantes :
Options | Valeurs valides | Description | Obligatoire |
---|---|---|---|
Externe | Booléenne | Si le domaine distant n'est pas un domaine de OpenSearch service ou si vous effectuez une réindexation entre deux VPC domaines, spécifiez comme. true |
Non |
Région | Chaîne | Si le domaine distant se trouve dans une autre région, spécifiez le nom de la région. | Non |