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à.
Ricerca tra cluster in Amazon Service OpenSearch
La ricerca tra cluster in Amazon OpenSearch Service ti consente di eseguire query e aggregazioni su più domini connessi. Spesso ha più senso utilizzare più domini più piccoli invece di un singolo dominio di grandi dimensioni, soprattutto quando si eseguono diversi tipi di carichi di lavoro.
I domini specifici del carico di lavoro consentono di completare le seguenti attività:
-
Ottimizzare ogni dominio scegliendo i tipi di istanza per carichi di lavoro specifici.
-
Stabilire i limiti di isolamento del guasto tra i carichi di lavoro. Ciò significa che se uno dei carichi di lavoro genera errori, il guasto è contenuto all'interno di quel dominio specifico e non influisce sugli altri carichi di lavoro.
-
Scalabilità più semplice tra domini.
La ricerca tra cluster supporta OpenSearch le dashboard, quindi puoi creare visualizzazioni e dashboard in tutti i tuoi domini. Paghi le tariffe standard per il trasferimento AWS dei dati
Nota
L'open source dispone OpenSearch anche di documentazione per la
Argomenti
Limitazioni
La ricerca tra cluster presenta diverse limitazioni importanti:
-
Non puoi connettere un dominio Elasticsearch a un dominio. OpenSearch
-
Non puoi connetterti a cluster /Elasticsearch OpenSearch autogestiti.
-
Per connettere domini tra regioni, entrambi i domini devono essere su Elasticsearch 7.10 o versione successiva oppure. OpenSearch
-
Un dominio può avere un massimo di 20 connessioni in uscita. Analogamente, un dominio può avere un massimo di 20 connessioni in ingresso. In altre parole, un dominio può connettersi a un massimo di 20 altri domini.
-
Il dominio di origine deve avere la stessa versione o una versione successiva del dominio di destinazione. Se configuri una connessione bidirezionale tra due domini e desideri aggiornarne uno o entrambi, devi prima eliminare una delle connessioni.
-
Non è possibile utilizzare dizionari personalizzati o SQL con la ricerca tra cluster.
-
Non puoi utilizzare AWS CloudFormation per connettere domini.
-
Non è possibile utilizzare la ricerca tra cluster su istanze M3 o istanze espandibili (T2 e T3).
Prerequisiti di ricerca tra cluster
Prima di configurare la ricerca tra cluster, assicurarsi che i domini soddisfino i seguenti requisiti:
-
Due OpenSearch domini o domini Elasticsearch nella versione 6.7 o successiva
-
Controllo granulare degli accessi abilitato
-
Nessuna crittografia abilitata ode-to-node
Prezzi della funzionalità di ricerca tra cluster
Non è previsto alcun costo aggiuntivo per la ricerca tra domini.
Configurazione di una connessione
Il dominio "di origine" si riferisce al dominio da cui proviene una richiesta di ricerca tra cluster. In altre parole, il dominio di origine è quello a cui si invia la richiesta iniziale di ricerca.
Il dominio "di destinazione" è il dominio sul quale il dominio di origine esegue le query.
Una connessione tra cluster è unidirezionale dall'origine al dominio di destinazione. Ciò significa che il dominio di destinazione non può eseguire query sul dominio di origine. Tuttavia, è possibile impostare un'altra connessione nella direzione opposta.
Il dominio di origine crea una connessione "in uscita" al dominio di destinazione. Il dominio di destinazione riceve una richiesta di connessione "in ingresso" dal dominio di origine.
Per impostare una connessione
-
Nel pannello di controllo del dominio scegliere un dominio e selezionare la scheda Connessioni.
-
Nella sezione Connessioni in uscita scegli Richiesta.
-
Per Alias di connessione, specifica un nome per la connessione.
-
Scegli se connetterti a un dominio nella tua Account AWS regione o in un altro account o regione.
-
Per connetterti a un cluster nella tua regione Account AWS e nella tua regione, seleziona il dominio dal menu a discesa e scegli Richiedi.
-
Per connetterti a un cluster in un'altra regione Account AWS o in un'altra regione, seleziona l'ARN del dominio remoto e scegli Richiesta. Per connettere domini tra regioni, entrambi i domini devono eseguire Elasticsearch versione 7.10 o successiva oppure. OpenSearch
-
-
Per ignorare i cluster non disponibili per le query sui cluster, seleziona Ignora non disponibile. Questa impostazione garantisce che le query tra cluster restituiscano risultati parziali nonostante gli errori su uno o più cluster remoti.
-
La ricerca tra cluster convalida innanzitutto la richiesta di connessione per assicurare che i prerequisiti siano soddisfatti. Se i domini risultano incompatibili, la richiesta di connessione entra nello stato
Validation failed
. -
Dopo che la richiesta di connessione è stata convalidata correttamente, viene inviata al dominio di destinazione, dove deve essere approvata. Fino a quando non si avviene questa approvazione, la connessione rimane in uno stato
Pending acceptance
. Quando la richiesta di connessione viene accettata nel dominio di destinazione, lo stato cambia inActive
e il dominio di destinazione diventa disponibile per le query.-
La pagina del dominio mostra i dettagli generali dello stato del dominio e dello stato dell'istanza del dominio di destinazione. Solo i proprietari dei domini dispongono della flessibilità necessaria per creare, visualizzare, rimuovere e monitorare le connessioni da o verso i propri domini.
-
Dopo aver stabilito la connessione, tutto il traffico che passa tra i nodi dei domini connessi viene crittografato. Se si connette un dominio VPC a un dominio non VPC e il dominio non VPC è un endpoint pubblico in grado di ricevere traffico da Internet, il traffico tra cluster tra i domini è ancora crittografato e protetto.
Rimozione di una connessione
La rimozione di una connessione interrompe qualsiasi operazione tra cluster sui relativi indici.
-
Nel pannello di controllo del dominio, passa alla scheda Connessioni.
-
Selezionare le connessioni di dominio che si desidera rimuovere e scegliere Elimina, quindi confermare l'eliminazione.
È possibile eseguire queste operazioni sul dominio di origine o di destinazione per rimuovere la connessione. Dopo aver rimosso la connessione, questa sarà ancora visibile con lo stato Deleted
per altri 15 giorni.
Non è possibile eliminare un dominio con connessioni tra cluster attive. Per eliminare un dominio, rimuovere innanzitutto tutte le connessioni in ingresso e in uscita da tale dominio. Questo per essere certi di considerare gli utenti del dominio tra cluster prima di eliminare il dominio.
Configurazione della sicurezza e spiegazione passo per passo di esempio
-
Si invia una richiesta di ricerca tra cluster al dominio di origine.
-
Il dominio di origine valuta tale richiesta in base alla policy di accesso al dominio. Poiché la ricerca tra cluster richiede un controllo di accesso granulare, è consigliabile una policy di accesso aperta nel dominio di origine.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/src-domain/*" } ] }
Nota
Se includi indici remoti nel percorso, devi codificare in formato URL l'URI nell'ARN del dominio. Ad esempio, utilizzare
arn:aws:es:us-east-1:123456789012:domain/my-domain/local_index,dst%3Aremote_index
anzichéarn:aws:es:us-east-1:123456789012:domain/my-domain/local_index,dst:remote_index
.Se si sceglie di utilizzare una policy di accesso restrittiva oltre al controllo di accesso granulare, la policy deve consentire l'accesso almeno a
es:ESHttpGet
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/test-user" ] }, "Action": "es:ESHttpGet", "Resource": "arn:aws:es:region:account:domain/src-domain/*" } ] }
-
Ilcontrollo di accesso granulare nel dominio di origine valuta la richiesta:
-
La richiesta è firmata con credenziali di base IAM o HTTP valide?
-
In tal caso, l'utente dispone dell'autorizzazione per eseguire la ricerca e accedere ai dati?
Se la richiesta ricerca solo i dati nel dominio di destinazione, ad esempio
dest-alias:dest-index/_search
, sono necessarie solo le autorizzazioni per il dominio di destinazione.Se la richiesta cerca dati su entrambi i domini, ad esempio
source-index,dest-alias:dest-index/_search
, sono necessarie le autorizzazioni per entrambi i domini.Nel controllo granulare degli accessi, gli utenti devono disporre dell'
indices:admin/shards/search_shards
autorizzazione oltre alle autorizzazioni standardread
osearch
alle autorizzazioni per gli indici pertinenti. -
-
Il dominio di origine invia la richiesta al dominio di destinazione. Il dominio di destinazione valuta la richiesta in base alla policy di accesso al dominio. È necessario includere l'autorizzazione
es:ESCrossClusterGet
per il dominio di destinazione:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESCrossClusterGet", "Resource": "arn:aws:es:region:account:domain/dst-domain" } ] }
Assicurarsi che l'autorizzazione
es:ESCrossClusterGet
sia applicata per/dst-domain
e non per/dst-domain/*
.Tuttavia, questo policy minima consente solo ricerche tra cluster. Per eseguire altre operazioni, ad esempio l'indicizzazione dei documenti e l'esecuzione di ricerche standard, sono necessarie ulteriori autorizzazioni. Si consiglia la seguente policy per il dominio di destinazione:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/dst-domain/*" }, { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESCrossClusterGet", "Resource": "arn:aws:es:region:account:domain/dst-domain" } ] }
Nota
Per impostazione predefinita, tutte le richieste di ricerca intercluster tra domini vengono crittografate in transito come parte della crittografia. node-to-node
-
Il dominio di destinazione esegue la ricerca e restituisce i risultati al dominio di origine.
-
Il dominio di origine combina i propri risultati (se presenti) con i risultati del dominio di destinazione e li restituisce all'utente.
-
Consigliamo Postman
per le richieste di test: -
Nel dominio di destinazione, indicizzare un documento:
POST https://dst-domain.us-east-1.es.amazonaws.com/books/_doc/1 { "Dracula": "Bram Stoker" }
-
Per eseguire una query su questo indice dal dominio di origine, includere l'alias di connessione del dominio di destinazione all'interno della query.
GET https://src-domain.us-east-1.es.amazonaws.com/<connection_alias>:books/_search { ... "hits": [ { "_index": "source-destination:books", "_type": "_doc", "_id": "1", "_score": 1, "_source": { "Dracula": "Bram Stoker" } } ] }
È possibile trovare l'alias di connessione nella scheda Connessioni nel pannello di controllo del dominio.
-
Se si imposta una connessione tra
domain-a -> domain-b
con l'alias di connessionecluster_b
edomain-a -> domain-c
con l'alias di connessionecluster_c
, ricercaredomain-a
,domain-b
edomain-c
come segue:GET https://src-domain.us-east-1.es.amazonaws.com/local_index,cluster_b:b_index,cluster_c:c_index/_search { "query": { "match": { "user": "domino" } } }
Risposta
{ "took": 150, "timed_out": false, "_shards": { "total": 3, "successful": 3, "failed": 0, "skipped": 0 }, "_clusters": { "total": 3, "successful": 3, "skipped": 0 }, "hits": { "total": 3, "max_score": 1, "hits": [ { "_index": "local_index", "_type": "_doc", "_id": "0", "_score": 1, "_source": { "user": "domino", "message": "Lets unite the new mutants", "likes": 0 } }, { "_index": "cluster_b:b_index", "_type": "_doc", "_id": "0", "_score": 2, "_source": { "user": "domino", "message": "I'm different", "likes": 0 } }, { "_index": "cluster_c:c_index", "_type": "_doc", "_id": "0", "_score": 3, "_source": { "user": "domino", "message": "So am I", "likes": 0 } } ] } }
Se non hai scelto di ignorare i cluster non disponibili nella configurazione della connessione, tutti i cluster di destinazione che cerchi devono essere disponibili affinché la richiesta di ricerca venga eseguita correttamente. In caso contrario, l'intera richiesta avrà esito negativo: anche se uno dei domini non è disponibile non verrà restituito alcun risultato della ricerca.
-
OpenSearch Dashboard
È possibile visualizzare i dati di più domini connessi nello stesso modo di un singolo dominio, tranne per il fatto che è necessario accedere agli indici remoti utilizzando connection-alias:index
. Quindi, il modello di indice deve corrispondere a connection-alias:index
.