Replicación entre clústeres de Amazon OpenSearch Service - OpenSearch Servicio Amazon

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.

Replicación entre clústeres de Amazon OpenSearch Service

Con la replicación entre clústeres de Amazon OpenSearch Service, se pueden replicar índices de usuario, asignaciones y metadatos de un dominio de OpenSearch Service a otro. Utilizar la replicación entre clústeres contribuye a garantizar la posibilidad de recuperación de desastres en caso de interrupción, y permite replicar datos entre centros de datos lejanos geográficamente para reducir la latencia. Usted paga los cargos de estándar de translerencia de datos AWS para los datos transferidos entre dominios.

La replicación entre clústeres sigue un modelo de replicación activa-pasiva en el que el índice local o seguidor extrae datos del índice remoto o principal. El índice líder hace referencia al origen de los datos o al índice desde el que desea replicar los datos. El índice seguidor hace referencia al destino de los datos o al índice en donde desea replicar los datos.

La replicación entre clústeres está disponible en los dominios que ejecutan Elasticsearch 7.10 o OpenSearch 1.1 o posterior.

nota

En esta documentación se describe cómo configurar la replicación entre clústeres desde la perspectiva de Amazon OpenSearch Service. Esto incluye el uso de la AWS Management Console para configurar conexiones entre clústeres, lo que no es posible en un clúster de OpenSearch autogestionado. Para obtener la documentación completa, que incluye una referencia de configuración y una referencia completa de la API, consulte Cross-cluster replication en la documentación de OpenSearch.

Limitaciones

La replicación entre clústeres tiene las siguientes limitaciones:

  • No se pueden replicar datos entre dominios de Amazon OpenSearch Service y clústeres de OpenSearch o Elasticsearch autoadministrados.

  • No puede replicar un índice de un dominio seguidor a otro dominio seguidor. Si desea replicar un índice en varios dominios seguidores, solo puede replicarlo desde el dominio líder único.

  • Se puede conectar un dominio, mediante una combinación de conexiones de entrada y salida, a un máximo de 20 dominios más.

  • Al configurar inicialmente una conexión entre clústeres, el dominio principal debe tener la misma versión o una versión superior a la del dominio seguidor.

  • No puede usar AWS CloudFormation para conectar dominios.

  • No se puede utilizar la replicación entre clústeres en instancias M3 o bursátiles (T2 y T3).

  • No puede replicar datos entre índices UltraWarm o frío. Ambos índices deben estar almacenados en caliente.

  • Al eliminar un índice del dominio principal, no se elimina automáticamente el índice correspondiente en el dominio seguidor.

Requisitos previos

Antes de configurar la replicación entre clústeres, asegúrese de que los dominios cumplan los siguientes requisitos:

Requisitos de los permisos

Para iniciar la replicación, debe incluir el permiso es:ESCrossClusterGet en el dominio remoto (líder). Recomendamos la siguiente política de IAM en el dominio remoto. Esta política también permite realizar otras operaciones, como indexar documentos y efectuar búsquedas estándar:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/leader-domain/*" }, { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESCrossClusterGet", "Resource": "arn:aws:es:region:account:domain/leader-domain" } ] }

Asegúrese de que el permiso es:ESCrossClusterGet se aplica para /leader-domain y no /leader-domain/*.

Para que los usuarios que no son administradores puedan realizar actividades de replicación, también se les deben asignar los permisos adecuados. La mayoría de los permisos corresponden a operaciones de API REST específicas. Por ejemplo, el permiso indices:admin/plugins/replication/index/_resume permite reanudar la replicación de un índice. Para obtener una lista completa de permisos, consulte Permisos de replicación en la documentación de OpenSearch.

nota

Los comandos para iniciar la replicación y crear una regla de replicación son casos especiales. Dado que invocan procesos en segundo plano en los dominios líder y seguidor, se debe pasar un elemento leader_cluster_role y follower_cluster_role en la solicitud. OpenSearch Service utiliza estos roles en todas las tareas de replicación de backend. Para obtener más información sobre la asignación y el uso de estos roles, consulte Asignación de los roles de clúster líder y seguidor en la documentación de OpenSearch.

Configuración de una conexión entre clústeres

Para replicar índices de un dominio a otro, se debe configurar una conexión entre clústeres entre los dominios. La forma más sencilla de conectar dominios es a través de la pestaña Connections (Conexiones) del panel del dominio. También puede usar la API de configuración o la AWS CLI. Dado que la replicación entre clústeres sigue un modelo de “extracción”, las conexiones se inician desde el dominio seguidor.

nota

Si se han conectado anteriormente dos dominios para realizar búsquedas entre clústeres, no se puede usar la misma conexión para la replicación. La conexión está marcada como SEARCH_ONLY en la consola. Para realizar la replicación entre dos dominios conectados previamente, se debe eliminar la conexión y volver a crearla. Una vez que se haya hecho esto, la conexión queda disponible tanto para la búsqueda entre clústeres como para la replicación entre clústeres.

Para configurar una conexión
  1. En la consola de Amazon OpenSearch Service, seleccione el dominio seguidor, vaya a la pestaña Connections (Conexiones) y elija Request (Solicitar).

  2. En Alias de conexión, ingrese un nombre para la conexión.

  3. 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 dominio de su Cuenta de AWS y región, seleccione el dominio y elija Solicitar.

    • Para conectarse a un dominio de otra Cuenta de AWS o región, especifique el ARN del dominio remoto y elija Solicitar.

OpenSearch Service valida la solicitud de conexión. Si los dominios son incompatibles, se produce un error en la conexión. Si la validación se realiza correctamente, se envía al dominio de destino para su aprobación. Cuando el dominio de destino aprueba la solicitud, puede iniciar la replicación.

La replicación entre clústeres admite replicación bidireccional. Esto significa que puede crear una conexión saliente del dominio A al dominio B y otra conexión saliente del dominio B al dominio A. A continuación, puede configurar la replicación para que el dominio A siga un índice en el dominio B y el dominio B siga un índice en el dominio A.

Inicio de la replicación

Después de establecer una conexión entre clústeres, puede empezar a replicar datos. En primer lugar, cree un índice en el dominio líder que se va a replicar:

PUT leader-01

Para replicar ese índice, envíe este comando al dominio seguidor:

PUT _plugins/_replication/follower-01/_start { "leader_alias": "connection-alias", "leader_index": "leader-01", "use_roles":{ "leader_cluster_role": "all_access", "follower_cluster_role": "all_access" } }

Puede encontrar el alias de conexión en la pestaña Conexiones del panel de control del dominio.

Para simplificar, en este ejemplo se supone que un administrador emite la solicitud y utiliza all_access para los elementos leader_cluster_role y follower_cluster_role. No obstante, en entornos de producción, se recomienda crear usuarios de replicación en los índices líder y seguidor, y asignarlos como corresponda. Los nombres de usuario deben ser idénticos. Para obtener información sobre estos roles y cómo asignarlos, consulte Asignación de los roles de clúster líder y seguidor en la documentación de OpenSearch.

Confirmación de replicación

Para confirmar que se está produciendo la replicación, obtenga su estado:

GET _plugins/_replication/follower-01/_status { "status" : "SYNCING", "reason" : "User initiated", "leader_alias" : "connection-alias", "leader_index" : "leader-01", "follower_index" : "follower-01", "syncing_details" : { "leader_checkpoint" : -5, "follower_checkpoint" : -5, "seq_no" : 0 } }

Los valores de los puntos de control líder y seguidor comienzan como enteros negativos y reflejan el número de particiones que se tienen (-1 para una partición, -5 para cinco particiones, etc.). Los valores se incrementan en enteros positivos con cada cambio que se realiza. Si los valores son los mismos, eso significa que los índices están totalmente sincronizados. Puede utilizar estos valores de punto de control para medir la latencia de replicación en todos los dominios.

Para validar aún más la replicación, agregue un documento al índice líder:

PUT leader-01/_doc/1 { "Doctor Sleep":"Stephen King" }

Y confirme que aparece en el índice seguidor:

GET follower-01/_search { ... "max_score" : 1.0, "hits" : [ { "_index" : "follower-01", "_type" : "_doc", "_id" : "1", "_score" : 1.0, "_source" : { "Doctor Sleep" : "Stephen King" } } ] } }

Pausa y reanudación de la replicación

Puede pausar temporalmente la replicación si necesita corregir problemas o reducir la carga en el dominio líder. Envíe esta solicitud al dominio seguidor. Asegúrese de incluir un cuerpo de la solicitud vacío:

POST _plugins/_replication/follower-01/_pause {}

Después, obtenga el estado para asegurarse de que la replicación esté en pausa:

GET _plugins/_replication/follower-01/_status { "status" : "PAUSED", "reason" : "User initiated", "leader_alias" : "connection-alias", "leader_index" : "leader-01", "follower_index" : "follower-01" }

Cuando termine de realizar los cambios, reanude la replicación. Envíe esta solicitud al dominio seguidor. Asegúrese de incluir un cuerpo de la solicitud vacío:

POST _plugins/_replication/follower-01/_resume {}

No puede reanudar la replicación después de haber estado en pausa durante más de 12 horas. Debe detener la replicación, eliminar el índice de seguidores y reiniciar la replicación del líder.

Detención de la replicación

Cuando se detiene la replicación por completo, el índice seguidor deja de seguir al líder y se convierte en un índice estándar. No se puede reiniciar la replicación después de detenerla.

Detenga la replicación desde el dominio seguidor. Asegúrese de incluir un cuerpo de la solicitud vacío:

POST _plugins/_replication/follower-01/_stop {}

Seguimiento automático

Puede definir un conjunto de reglas de replicación en un único dominio líder que replique automáticamente los índices que coincidan con un patrón especificado. Cuando un índice del dominio líder coincide con uno de los patrones (por ejemplo, books*), se crea un índice seguidor coincidente en el dominio seguidor. OpenSearch Service replica todos los índices existentes que coincidan con el patrón, así como los nuevos índices que se creen. No replica los índices que ya existan en el dominio seguidor.

Para replicar todos los índices (a excepción de los índices creados por el sistema y los que ya existan en el dominio seguidor), utilice un patrón comodín (*).

Creación de una regla de replicación

Cree una regla de replicación en el dominio seguidor y especifique el nombre de la conexión entre clústeres:

POST _plugins/_replication/_autofollow { "leader_alias" : "connection-alias", "name": "rule-name", "pattern": "books*", "use_roles":{ "leader_cluster_role": "all_access", "follower_cluster_role": "all_access" } }

Puede encontrar el alias de conexión en la pestaña Conexiones del panel de control del dominio.

Para simplificar, en este ejemplo se supone que un administrador emite la solicitud, que utiliza all_access como reglas de los dominios líder y seguidor. No obstante, en entornos de producción se recomienda crear usuarios de replicación en los índices líder y seguidor, y asignarlos como corresponda. Los nombres de usuario deben ser idénticos. Para obtener información sobre estos roles y cómo asignarlos, consulte Asignación de los roles de clúster líder y seguidor en la documentación de OpenSearch.

Para recuperar una lista de reglas de replicación existentes en un dominio, utilice la operación de la API de estadísticas de seguimiento automático.

Para probar la regla, cree un índice que coincida con el patrón del dominio líder:

PUT books-are-fun

Y verifique que su réplica aparece en el dominio seguidor:

GET _cat/indices health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open books-are-fun ldfHO78xYYdxRMULuiTvSQ 1 1 0 0 208b 208b

Eliminación de una regla de replicación

Cuando se elimina una regla de replicación, OpenSearch Service deja de replicar nuevos índices que coincidan con el patrón, pero prosigue con la actividad de replicación existente hasta que se detenga la replicación de esos índices.

Detenga las reglas de replicación desde el dominio seguidor.

DELETE _plugins/_replication/_autofollow { "leader_alias" : "connection-alias", "name": "rule-name" }

Actualización de los dominios conectados

Para actualizar la versión del motor de dos dominios que tienen una conexión entre clústeres, actualice primero el dominio seguidor y, después, el dominio principal. No elimine la conexión entre ellos; de lo contrario, la replicación se detendrá y no podrá reanudarla.