Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Migrazione degli indici di Amazon OpenSearch Service utilizzando la reindicizzazione remota
La reindicizzazione remota consente di copiare gli indici da un dominio Amazon OpenSearch Service a un altro. Puoi migrare gli indici da qualsiasi dominio di OpenSearch servizio o da cluster autogestiti ed Elasticsearch. OpenSearch
Un dominio e un indice remoti si riferiscono alla fonte dei dati o al dominio e all'indice da cui si desidera copiare i dati. Un dominio e un indice locali si riferiscono alla destinazione dei dati o al dominio e all'indice in cui si desidera copiare i dati.
La reindicizzazione remota richiede OpenSearch 1.0 o versione successiva oppure Elasticsearch 6.7 o versione successiva, sul dominio locale. Il dominio remoto deve essere precedente o avere la stessa versione principale del dominio locale. Le versioni di Elasticsearch sono considerate precedenti alle OpenSearch versioni, il che significa che puoi reindicizzare i dati dai domini Elasticsearch ai domini. OpenSearch All'interno della stessa versione principale, il dominio remoto può essere una qualsiasi versione secondaria. Ad esempio, è supportata la reindicizzazione remota da Elasticsearch 7.10.x a 7.9, ma non OpenSearch da 1.0 a Elasticsearch 7.10.x.
Nota
Questa documentazione descrive come reindicizzare i dati tra domini Amazon OpenSearch Service. Per la documentazione completa sull'reindex
operazione, inclusi i passaggi dettagliati e le opzioni supportate, consulta il documento Reindex nella documentazione
Argomenti
- Prerequisiti
- Reindicizza i dati tra i domini Internet del Servizio OpenSearch
- Reindicizza i dati tra i domini OpenSearch di servizio quando il telecomando si trova in un VPC
- Reindicizza i dati tra domini non OpenSearch di servizio
- Reindicizzazione di set di dati di grandi dimensioni
- Impostazioni di reindicizzazione remota
Prerequisiti
La reindicizzazione remota ha i seguenti requisiti:
-
Il dominio remoto deve essere accessibile dal dominio locale. Per un dominio remoto che risiede all'interno di un VPC, il dominio locale deve avere accesso al VPC. Questo processo varia in base alla configurazione di rete, ma probabilmente implica la connessione a una rete VPN o gestita o l'utilizzo della connessione endpoint VPC nativa. Per ulteriori informazioni, consulta Avvio dei domini Amazon OpenSearch Service all'interno di un VPC.
-
La richiesta deve essere autorizzata dal dominio remoto come qualsiasi altra richiesta REST. Se il dominio remoto ha attivato il controllo granulare degli accessi, è necessario disporre dell'autorizzazione per eseguire la reindicizzazione sul dominio remoto e leggere l'indice sul dominio locale. Per ulteriori considerazioni sulla sicurezza, consultare Controllo granulare degli accessi in Amazon Service OpenSearch .
-
Ti consigliamo di creare un indice con l'impostazione desiderata sul tuo dominio locale prima di iniziare il processo di reindicizzazione.
-
Se il dominio utilizza un tipo di istanza T2 o T3 per i nodi di dati, non è possibile utilizzare la reindicizzazione remota.
Reindicizza i dati tra i domini Internet del Servizio OpenSearch
Lo scenario più semplice è che l'indice remoto si trovi nello stesso Regione AWS dominio locale con un endpoint accessibile pubblicamente e che tu abbia firmato le credenziali IAM.
Dal dominio remoto, specifica l'indice remoto da cui reindicizzare e l'indice locale da reindicizzare su:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
È necessario aggiungere 443 alla fine dell'endpoint del dominio remoto per un controllo di convalida.
Per verificare che l'indice venga copiato nel dominio locale, invia questa richiesta al dominio locale:
GET local_index/_search
Se l'indice remoto si trova in una regione diversa dal dominio locale, inserisci il nome della regione, ad esempio in questa richiesta di esempio:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "region": "eu-west-1" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Nel caso di regioni isolate come quelle cinesi AWS GovCloud (US) o regionali, l'endpoint potrebbe non essere accessibile perché l'utente IAM non è riconosciuto in tali regioni.
Se il dominio remoto è protetto con l'autenticazione di base, specifica il nome utente e la password:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "username": "username
", "password": "password
" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Reindicizza i dati tra i domini OpenSearch di servizio quando il telecomando si trova in un VPC
Ogni dominio di OpenSearch servizio è costituito dalla propria infrastruttura interna di cloud privato virtuale (VPC). Quando crei un nuovo dominio in un OpenSearch Service VPC esistente, viene creata un'interfaccia di rete elastica per ogni nodo di dati nel VPC.
Poiché l'operazione di reindicizzazione remota viene eseguita dal dominio del OpenSearch servizio remoto e quindi all'interno del relativo VPC privato, è necessario un modo per accedere al VPC del dominio locale. È possibile farlo utilizzando la funzionalità di connessione endpoint VPC integrata per stabilire una connessione o configurando un proxy. AWS PrivateLink
Se il tuo dominio locale utilizza OpenSearch la versione 1.0 o successiva, puoi utilizzare la console o la AWS CLI per creare una connessione. AWS PrivateLink Una AWS PrivateLink connessione consente alle risorse del VPC locale di connettersi privatamente alle risorse nel VPC remoto all'interno dello stesso. Regione AWS
Puoi utilizzare la reindicizzazione remota con la console per copiare gli indici tra due domini che condividono una connessione endpoint VPC.
-
Accedi alla console di Amazon OpenSearch Service all'indirizzohttps://console.aws.amazon.com/aos/
. -
Nel riquadro di navigazione a sinistra, scegli Domains (Domini).
-
Seleziona il dominio locale o il dominio in cui desideri copiare i dati. Si apre la pagina dei dettagli del dominio. Scegli la scheda Connessioni sotto le informazioni generali e scegli Richiedi.
-
Nella pagina Richiedi connessione, seleziona VPC Endpoint Connection per la tua modalità di connessione e inserisci altri dettagli pertinenti. Questi dettagli includono il dominio remoto, che è il dominio da cui vuoi copiare i dati. Quindi, scegli Request (Richiesta).
-
Vai alla pagina dei dettagli del dominio remoto, scegli la scheda Connessioni e trova la tabella Connessioni in entrata. Seleziona la casella di controllo accanto al nome del dominio da cui hai appena creato la connessione (il dominio locale). Scegli Approve (Approva).
-
Torna al dominio locale, scegli la scheda Connections (Connessioni) e individua la tabella Outbound connections (Connessioni in uscita). Dopo che la connessione tra i due domini è attiva, un endpoint diventa disponibile nella colonna Endpoint della tabella. Copia l'endpoint.
-
Apri il pannello di controllo per il dominio locale e scegli Dev Tools (Strumenti di sviluppo) nella barra di navigazione a sinistra. Per confermare che l'indice del dominio remoto non esiste ancora nel tuo dominio locale, esegui la seguente richiesta GET. Sostituiscilo
remote-domain-index-name
con il tuo nome di indice.GET
remote-domain-index-name
/_search { "query":{ "match_all":{} } }Nell'output, dovresti vedere un errore che indica che l'indice non è stato trovato.
-
Sotto la tua richiesta GET, crea una richiesta POST e usa il tuo endpoint come host remoto, come riportato di seguito.
POST _reindex { "source":{ "remote":{ "host":"
connection-endpoint
", "username":"username
", "password":"password
" }, "index":"remote-domain-index-name
" }, "dest":{ "index":"local-domain-index-name
" } }Esegui questa richiesta.
-
Esegui nuovamente la richiesta GET. L'output dovrebbe ora indicare che l'indice locale esiste. Puoi interrogare questo indice per verificare che siano OpenSearch stati copiati tutti i dati dall'indice remoto.
Puoi utilizzare la reindicizzazione remota con l'API per copiare gli indici tra due domini che condividono una connessione endpoint VPC.
-
Utilizza l'operazione CreateOutboundConnectionAPI per richiedere una nuova connessione dal dominio locale al dominio remoto.
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
" } } }Riceverai un
ConnectionId
messaggio nella risposta. Salva questo ID per utilizzarlo nel passaggio successivo. -
Utilizza l'operazione AcceptInboundConnectionAPI con il tuo ID di connessione per approvare la richiesta dal dominio locale.
PUT https://es.
region
.amazonaws.com/2021-01-01/opensearch/cc/inboundConnection/ConnectionId
/accept -
Usa l'operazione DescribeOutboundConnectionsAPI per recuperare l'endpoint per il tuo dominio remoto.
{ "Connections": [ { "ConnectionAlias": "remote-reindex-example", "ConnectionId": "
connection-id
", "ConnectionMode": "VPC_ENDPOINT", "ConnectionProperties": { "Endpoint": "connection-endpoint
" }, ... } ] }Salva l'
endpoint di connessione da utilizzare
nel passaggio 5. -
Per confermare che l'indice del dominio remoto non esiste ancora nel tuo dominio locale, esegui la seguente richiesta GET. Sostituiscilo
remote-domain-index-name
con il tuo nome di indice.GET
local-domain-endpoint
/remote-domain-index-name
/_search { "query":{ "match_all":{} } }Nell'output, dovresti vedere un errore che indica che l'indice non è stato trovato.
-
Crea una richiesta POST e usa il tuo endpoint come host remoto, come segue.
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
" } }Esegui questa richiesta.
-
Esegui nuovamente la richiesta GET. L'output dovrebbe ora indicare che l'indice locale esiste. È possibile interrogare questo indice per verificare che siano OpenSearch stati copiati tutti i dati dall'indice remoto.
Se il dominio remoto è ospitato all'interno di un VPC e non desideri utilizzare la funzionalità di connessione agli endpoint VPC, devi configurare un proxy con un endpoint accessibile pubblicamente. In questo caso, OpenSearch Service richiede un endpoint pubblico perché non è in grado di inviare traffico al tuo VPC.
Quando esegui un dominio in modalità VPC, uno o più endpoint vengono inseriti nel tuo VPC. Tuttavia, questi endpoint servono solo per il traffico che entra nel dominio all'interno del VPC e non consentono il traffico verso il VPC stesso.
Il comando remote reindex viene eseguito dal dominio locale, quindi il traffico di origine non è in grado di utilizzare tali endpoint per accedere al dominio remoto. Ecco perché in questo caso d'uso è necessario un proxy. Il dominio proxy deve avere un certificato firmato di una certification authority (CA) pubblica. I certificati autofirmati o privati firmati dalla CA non sono supportati.
Reindicizza i dati tra domini non OpenSearch di servizio
Se l'indice remoto è ospitato all'esterno del OpenSearch servizio, ad esempio in un'istanza EC2 autogestita, imposta il parametro su: external
true
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "username": "username", "password": "password", "external": true }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
In questo caso, è supportata solo l'autenticazione di base con nome utente e password. Il dominio remoto deve avere un endpoint accessibile pubblicamente (anche se si trova nello stesso VPC del dominio di servizio OpenSearch locale) e un certificato firmato da una CA pubblica. I certificati autofirmati o privati firmati dalla CA non sono supportati.
Reindicizzazione di set di dati di grandi dimensioni
La reindicizzazione remota invia una richiesta di scorrimento al dominio remoto con i seguenti valori predefiniti:
-
Contesto di ricerca di 5 minuti
-
Timeout socket di 30 secondi
-
Dimensione del batch di 1.000
Consigliamo di regolare questi parametri per adattarli ai dati. Per documenti di grandi dimensioni, considerare una dimensione batch più piccola e/o un timeout più lungo. Per ulteriori informazioni, consultare Scorri ricerca
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
" } }
Si consiglia inoltre di aggiungere le seguenti impostazioni all'indice locale per prestazioni migliori:
PUT local_index { "settings": { "refresh_interval": -1, "number_of_replicas": 0 } }
Al termine del processo di reindicizzazione, è possibile impostare il numero di repliche desiderato e rimuovere l'impostazione dell'intervallo di aggiornamento.
Per reindicizzare solo un sottoinsieme di documenti selezionati tramite una query, invia questa richiesta al dominio locale:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443" }, "index": "remote_index
", "query": { "match": { "field_name": "text" } } }, "dest": { "index": "local_index
" } }
La reindicizzazione remota non supporta il partizionamento, quindi non è possibile eseguire più operazioni di scorrimento per la stessa richiesta in parallelo.
Impostazioni di reindicizzazione remota
Oltre alle opzioni di reindicizzazione standard, OpenSearch Service supporta le seguenti opzioni:
Opzioni | Valori validi | Descrizione | Richiesto |
---|---|---|---|
external | Booleano | Se il dominio remoto non è un dominio OpenSearch di servizio o se stai reindicizzando tra due domini VPC, specifica come. true |
No |
Regione | Stringa | Se il dominio remoto si trova in una regione diversa, specifica il nome della regione. | No |