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.
Tutorial: Migración a Amazon Service OpenSearch
Las instantáneas de índice son una forma popular de migrar de un clúster de Elasticsearch heredado OpenSearch o autogestionado a Amazon Service. OpenSearch En términos generales, el proceso consta de los siguientes pasos:
-
Tome una instantánea del clúster existente y cargue la instantánea en un bucket de Amazon S3.
-
Crea un dominio de servicio. OpenSearch
-
Conceda permisos al OpenSearch Servicio para acceder al depósito y asegúrese de tener permisos para trabajar con las instantáneas.
-
Restaure la instantánea en el dominio del OpenSearch servicio.
Este tutorial proporciona pasos más detallados y opciones alternativas, cuando corresponda.
Tomar y cargar la instantánea
Si bien puedes usar el complemento repository-s3opensearch.yml
(o elasticsearch.yml
si usas un clúster de Elasticsearch), reiniciar cada nodo, añadir tus AWS credenciales y, finalmente, tomar la instantánea. El complemento es una gran opción para uso continuo o para migrar clústeres más grandes.
En el caso de los clústeres más pequeños, una solución única consiste en tomar una instantánea del sistema de archivos compartido
Cómo tomar una instantánea y cargarla a Amazon S3
-
Agregue la configuración
path.repo
aopensearch.yml
(oElasticsearch.yml
) en todos los nodos y, a continuación, reinicie cada nodo.path.repo: ["
/my/shared/directory/snapshots
"] -
Registre un repositorio de instantáneas
, necesario antes de tomar una instantánea. Un repositorio es solo una ubicación de almacenamiento: un sistema de archivos compartido, Amazon S3, un sistema de archivos distribuido de Hadoop (HDFS), etc. En este caso, utilizaremos un sistema de archivos compartido (“fs”): PUT _snapshot/
my-snapshot-repo-name
{ "type": "fs", "settings": { "location": "/my/shared/directory/snapshots
" } } -
Tomar la instantánea:
PUT _snapshot/
my-snapshot-repo-name
/my-snapshot-name
{ "indices": "migration-index1
,migration-index2
,other-indices-*
", "include_global_state": false } -
Instale la AWS CLI
y ejecute aws configure
para agregar sus credenciales. -
Desplácese hasta el directorio de instantáneas. A continuación, ejecute los siguientes comandos para crear un nuevo bucket de S3 y cargar el contenido del directorio de instantáneas en ese bucket:
aws s3 mb s3://
bucket-name
--regionus-west-2
aws s3 sync . s3://bucket-name
--sse AES256En función del tamaño de la instantánea y la velocidad de su conexión a internet, esta operación puede tardar un tiempo.
Crear un dominio
Aunque la consola es la forma más sencilla de crear un dominio, en este caso ya tienes el terminal abierto e AWS CLI instalado. Modifique el siguiente comando para crear un dominio que se ajuste a sus necesidades:
aws opensearch create-domain \ --domain-name
migration-domain
\ --engine-versionOpenSearch_1.0
\ --cluster-config InstanceType=c5.large.search,InstanceCount=2 \ --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=100 \ --node-to-node-encryption-options Enabled=true \ --encryption-at-rest-options Enabled=true \ --domain-endpoint-options EnforceHTTPS=true,TLSSecurityPolicy=Policy-Min-TLS-1-2-2019-07 \ --advanced-security-options Enabled=true,InternalUserDatabaseEnabled=true,MasterUserOptions='{MasterUserName=master-user
,MasterUserPassword=master-user-password
}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["*"]},"Action":["es:ESHttp*"],"Resource":"arn:aws:es:us-west-2
:123456789012
:domain/migration-domain
/*"}]}' \ --regionus-west-2
Tal como está, el comando crea un dominio accesible a Internet con dos nodos de datos, cada uno con 100 GiB de almacenamiento. También habilita el control de acceso detallado con autenticación básica HTTP y toda la configuración de cifrado. Utilice la consola de OpenSearch servicio si necesita una configuración de seguridad más avanzada, como una VPC.
Antes de ejecutar el comando, cambie el nombre de dominio, las credenciales del usuario maestro y el número de cuenta. Especifique la misma Región de AWS que utilizó para el bucket de S3 y una versión de OpenSearch /Elasticsearch que sea compatible con su instantánea.
importante
Las instantáneas solo son compatibles con versiones posteriores y solo con una versión principal. Por ejemplo, no puede restaurar una instantánea desde un 1. OpenSearch x clúster en un Elasticsearch 7. x clúster, solo un OpenSearch 1. x o 2. clúster x. La versión secundaria también importa. No puede restaurar una instantánea de un clúster 5.3.3 autogestionado en un dominio de servicio 5.3.2 OpenSearch . Te recomendamos que elijas la versión más reciente de Elasticsearch OpenSearch compatible con tu instantánea. Para obtener una tabla de versiones compatibles, consulte Uso de una instantánea para migrar datos.
Conceda permisos al bucket de S3.
En la consola AWS Identity and Access Management (IAM), cree un rol con los siguientes permisos y relación de confianza. Al crear un rol, elija S3 como el Servicio de AWS . Asigne al rol el nombre OpenSearchSnapshotRole
para que sea fácil de encontrar.
Permisos
{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
bucket-name
" ] }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::bucket-name
/*" ] } ] }
Relación de confianza
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Después, conceda permisos a su rol de IAM personal para asumir OpenSearchSnapshotRole
. Cree la siguiente política y adjúntela a su identidad.
Permisos
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
123456789012
:role/OpenSearchSnapshotRole" } ] }
Asigne la función de instantánea en los OpenSearch paneles de control (si utiliza un control de acceso detallado)
Si ha habilitado el control de acceso detallado, incluso si utiliza autenticación HTTP básica para todos los demás fines, debe asignar el rol manage_snapshots
al rol de IAM para poder trabajar con instantáneas.
Para otorgar permisos a la identidad a fin de trabajar con instantáneas
-
Inicie sesión en Dashboards con las credenciales de usuario maestro que especificó al crear el dominio del servicio. OpenSearch Puede encontrar la URL de los paneles en la consola de OpenSearch servicio. Adopta el formato
https://
.domain-endpoint
/_dashboards/ -
En el menú principal, seleccione Seguridad, Roles y seleccione el rol manage_snapshots.
-
Seleccione Usuarios asignados, Administrar mapeo.
-
Agregue el ARN del dominio de su rol de IAM personal en el campo apropiado. El ARN está en uno de los siguientes formatos:
arn:aws:iam::
123456789123
:user/user-name
arn:aws:iam::
123456789123
:role/role-name
-
Seleccione Asignar y confirme que el rol aparece en Usuarios asignados.
Restaurar la instantánea
En este momento, tiene dos formas de acceder a su dominio de OpenSearch servicio: mediante la autenticación básica HTTP con sus credenciales de usuario maestro o mediante la AWS autenticación con sus credenciales de IAM. Como las instantáneas utilizan Amazon S3, que no tiene el concepto de usuario maestro, debe utilizar sus credenciales de IAM para registrar el repositorio de instantáneas en su dominio de OpenSearch servicio.
La mayoría de los lenguajes de programación tienen bibliotecas para ayudar con las solicitudes de firma, pero el enfoque más simple es utilizar una herramienta como Postman

Para restaurar la instantánea
Independientemente de cómo elija firmar sus solicitudes, el primer paso es registrar el repositorio:
PUT _snapshot/
my-snapshot-repo-name
{ "type": "s3", "settings": { "bucket": "bucket-name
", "region": "us-west-2
", "role_arn": "arn:aws:iam::123456789012:role/OpenSearchSnapshotRole" } }A continuación, enumere las instantáneas en el repositorio y busque la que desea restaurar. En este punto, puede continuar utilizando Postman o cambiar a una herramienta como curl
. Abreviado
GET _snapshot/
my-snapshot-repo-name
/_allcurl
curl -XGET -u '
master-user
:master-user-password
' https://domain-endpoint
/_snapshot/my-snapshot-repo-name
/_allRestaurare la instantánea.
Abreviado
POST _snapshot/
my-snapshot-repo-name
/my-snapshot-name
/_restore { "indices": "migration-index1
,migration-index2
,other-indices-*
", "include_global_state": false }curl
curl -XPOST -u '
master-user
:master-user-password
' https://domain-endpoint
/_snapshot/my-snapshot-repo-name
/my-snapshot-name
/_restore \ -H 'Content-Type: application/json' \ -d '{"indices":"migration-index1
,migration-index2
,other-indices-*
","include_global_state":false}'Finalmente, verifique que sus índices se restablecieron como se esperaba.
Abreviado
GET _cat/indices?v
curl
curl -XGET -u '
master-user
:master-user-password
' https://domain-endpoint
/_cat/indices?v
En este punto, la migración está completa. Puede configurar sus clientes para que usen el nuevo punto de enlace del OpenSearch servicio, cambiar el tamaño del dominio para adaptarlo a su carga de trabajo, comprobar el número de fragmentos de sus índices, cambiar a un usuario maestro de IAM o empezar a crear visualizaciones en los paneles. OpenSearch