Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Búsqueda en clústeres de Amazon OpenSearch Service
La búsqueda entre clústeres en Amazon OpenSearch Service permite realizar consultas y agregaciones en varios dominios conectados. A menudo tiene más sentido usar varios dominios más pequeños en lugar de un solo dominio grande, especialmente cuando se ejecutan distintos tipos de cargas de trabajo.
Los dominios específicos de la carga de trabajo permiten realizar las siguientes tareas:
-
Optimice cada dominio mediante la elección de tipos de instancia para cargas de trabajo específicas.
-
Establezca límites de aislamiento de fallas entre cargas de trabajo. Esto significa que si una de las cargas de trabajo devuelve un error, el error queda contenido dentro de ese dominio específico y no afecta a las demás cargas de trabajo.
-
Escale más fácilmente entre dominios.
La búsqueda entre clústeres admite OpenSearch Dashboards, por lo que puede crear visualizaciones y paneles en todos los dominios. Paga los cargos de estándar de transferencia de datos de AWS
nota
OpenSearch de código abierto también tiene documentación
Temas
Limitaciones
La búsqueda en clústeres tiene varias limitaciones importantes:
-
No puede conectar un dominio de Elasticsearch a un dominio de OpenSearch.
-
No puede conectarse a clústeres de OpenSearch o Elasticsearch autoadministrados.
-
Para conectar dominios de distintas regiones, ambos dominios deben estar en Elasticsearch 7.10 o posterior u OpenSearch.
-
Un dominio puede tener un máximo de 20 conexiones salientes. Del mismo modo, un dominio puede tener un máximo de 20 conexiones entrantes. En otras palabras, un dominio puede conectarse a un máximo de 20 dominios.
-
El dominio de origen debe estar en la misma versión o superior a la del dominio de destino. Si configura una conexión bidireccional entre dos dominios y desea actualizar uno o ambos, antes debe eliminar una de las conexiones.
-
No puede usar diccionarios personalizados o SQL con la búsqueda en clústeres.
-
No puede usar AWS CloudFormation para conectar dominios.
-
No se puede utilizar la búsqueda entre clústeres en instancias M3 o bursátiles (T2 y T3).
Requisitos previos de búsqueda entre clústeres
Antes de configurar la búsqueda en clústeres, asegúrese de que los dominios cumplan los siguientes requisitos:
-
Dos dominios de OpenSearch, o dominios de Elasticsearch en la versión 6.7 o posterior
-
Control de acceso detallado habilitado
-
Cifrado de nodo a nodo habilitado
Precio de búsqueda entre clústeres
No hay ningún cargo adicional por buscar entre dominios.
Configuración de una conexión
El dominio de “origen” hace referencia al dominio desde el que se origina una petición de búsqueda en clústeres. En otras palabras, el dominio de origen es al que envía la petición de búsqueda inicial.
El dominio “destino” es el dominio que consulta el dominio de origen.
Una conexión entre clústeres es unidireccional desde el dominio de origen hasta el dominio de destino. Esto significa que el dominio de destino no puede consultar el dominio de origen. Sin embargo, puede configurar otra conexión en la dirección opuesta.
El dominio de origen crea una conexión “saliente” al dominio de destino. El dominio de destino recibe una solicitud de conexión “entrante” del dominio de origen.
Para configurar una conexión
-
En el panel del dominio, seleccione un dominio y vaya a la pestaña Conexiones.
-
En la sección Conexiones de salida, seleccione Solicitar.
-
En Alias de conexión, ingrese un nombre para la conexión.
-
Seleccione entre conectarse a un dominio de su Cuenta de AWS y región, o hacerlo a otra cuenta o región.
-
Para conectarse a un clúster en la Cuenta de AWS y la región, seleccione el dominio en el menú desplegable y luego Solicitar.
-
Para conectarse a un clúster de otra Cuenta de AWS o región, seleccione el ARN del dominio remoto y elija Solicitar. Para conectar dominios en distintas regiones, ambos dominios deben ejecutar Elasticsearch versión 7.10 o posterior u OpenSearch.
-
-
Para omitir los clústeres no disponibles para las consultas de clústeres, seleccione Omitir los no disponibles. Esta configuración garantiza que las consultas entre clústeres devuelvan resultados parciales a pesar de que se produzcan errores en uno o más clústeres remotos.
-
La búsqueda entre clústeres valida primero la solicitud de conexión para asegurarse de que se cumplen los requisitos previos. Si los dominios son incompatibles, la solicitud de conexión entra en el estado
Validation failed
. -
Una vez correctamente validada la solicitud de conexión, se envía al dominio de destino, donde tiene que aprobarse. Mientras no se obtenga la aprobación, la conexión permanecerá en el estado de
Pending acceptance
. Cuando se acepta la solicitud de conexión en el dominio de destino, el estado cambia aActive
y el dominio de destino se vuelve disponible para consultas.-
La página de dominio muestra el estado general del dominio y los detalles del estado de la instancia del dominio de destino. Los propietarios de dominios tienen la flexibilidad de crear, visualizar, eliminar y monitorear conexiones desde o hacia sus dominios.
-
Una vez establecida la conexión, se cifra todo el tráfico que circule entre los nodos de los dominios conectados. Si conecta un dominio de VPC a un dominio que no es VPC y el dominio que no es VPC es un punto de enlace público que puede recibir tráfico de Internet, el tráfico entre clústeres entre los dominios sigue cifrado y seguro.
Eliminación de una conexión
La eliminación de una conexión detiene cualquier operación entre clústeres en sus índices.
-
En el panel del dominio, vaya a la pestaña Conexiones.
-
Seleccione las conexiones de dominio que desea eliminar, luego elija Eliminar y, a continuación, confirme la eliminación.
Puede realizar estos pasos en el dominio fuente o de destino para eliminar la conexión. Una vez quitada la conexión, seguirá visible con el estado Deleted
durante un periodo de 15 días.
No se puede eliminar un dominio con conexiones activas entre clústeres. Para eliminar un dominio, primero quite todas las conexiones entrantes y salientes de ese dominio. Esto es para asegurarse de tener en cuenta a los usuarios del dominio entre clústeres antes de eliminar el dominio.
Configuración de seguridad y explicación de ejemplo
-
Envíe una petición de búsqueda en clústeres al dominio de origen.
-
El dominio de origen evalúa esa solicitud en comparación con la política de acceso al dominio. Dado que la búsqueda en clústeres requiere un control de acceso detallado, recomendamos una política de acceso abierto en el dominio de origen.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/src-domain/*" } ] }
nota
Si incluye índices remotos en la ruta, debe codificar la URL del URI en el ARN del dominio. Por ejemplo, use
arn:aws:es:us-east-1:123456789012:domain/my-domain/local_index,dst%3Aremote_index
en lugar dearn:aws:es:us-east-1:123456789012:domain/my-domain/local_index,dst:remote_index
.Si elige utilizar una política de acceso restrictivo además de un control de acceso detallado, la política debe permitir el acceso a
es:ESHttpGet
como mínimo.{ "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/*" } ] }
-
El control de acceso detallado en el dominio de origen evalúa la solicitud:
-
¿La solicitud está firmada con credenciales básicas IAM o HTTP válidas?
-
Si es así, ¿tiene el usuario permiso para realizar la búsqueda y acceder a los datos?
Si la solicitud solo busca datos en el dominio de destino (por ejemplo,
dest-alias:dest-index/_search
), solo necesitará permisos en el dominio de destino.Si la solicitud busca datos en ambos dominios (por ejemplo,
source-index,dest-alias:dest-index/_search
), necesita permisos en ambos dominios.En el control de acceso detallado, los usuarios deben tener el permiso
indices:admin/shards/search_shards
además de los permisosread
osearch
estándar para los índices pertinentes. -
-
El dominio de origen pasa la solicitud al dominio de destino. El dominio de destino evalúa esta solicitud frente a su política de acceso al dominio. Debe incluir el permiso
es:ESCrossClusterGet
en el dominio de destino:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESCrossClusterGet", "Resource": "arn:aws:es:region:account:domain/dst-domain" } ] }
Asegúrese de que el permiso
es:ESCrossClusterGet
se aplica para/dst-domain
y no/dst-domain/*
.Sin embargo, esta política mínima solo permite búsquedas en clústeres. Para realizar otras operaciones, como indexar documentos y realizar búsquedas estándar, necesita permisos adicionales. Recomendamos la siguiente política en el dominio de destino:
{ "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
Todas las solicitudes de búsqueda en clústeres entre dominios se cifran en tránsito de forma predeterminada como parte del cifrado de nodo a nodo.
-
El dominio de destino realiza la búsqueda y devuelve los resultados al dominio de origen.
-
El dominio de origen combina sus propios resultados (si los hay) con los resultados del dominio de destino y los devuelve.
-
Recomendamos Postman
para probar las solicitudes: -
En el dominio de destino, indexe un documento:
POST https://dst-domain.us-east-1.es.amazonaws.com/books/_doc/1 { "Dracula": "Bram Stoker" }
-
Para consultar este índice desde el dominio de origen, incluya el alias de conexión del dominio de destino dentro de la consulta.
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" } } ] }
Puede encontrar el alias de conexión en la pestaña Conexiones del panel de control del dominio.
-
Si configura una conexión entre
domain-a -> domain-b
con alias de conexióncluster_b
ydomain-a -> domain-c
con alias de conexióncluster_c
, busquedomain-a
,domain-b
ydomain-c
de la siguiente manera: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" } } }
Respuesta
{ "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 } } ] } }
Si no eligió omitir los clústeres no disponibles en la configuración de la conexión, todos los clústeres de destino que busca tienen que estar disponibles para que la petición de búsqueda se ejecute correctamente. De lo contrario, se produce un error en toda la solicitud; incluso si uno de los dominios no está disponible, la búsqueda no devuelve ningún resultado.
-
OpenSearch Dashboards
Puede visualizar datos de varios dominios conectados de la misma manera que desde un solo dominio, excepto que debe acceder a los índices remotos mediante connection-alias:index
. Por lo tanto, su patrón de índice debe coincidir connection-alias:index
.