Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Tutoriel : Migration vers Amazon Service OpenSearch
Les instantanés d'index constituent un moyen populaire de migrer d'un cluster Elasticsearch autogéré OpenSearch ou existant vers Amazon Service. OpenSearch Voici les grandes étapes de ce processus :
-
Créez un instantané du cluster existant et chargez-le dans un compartiment Amazon S3.
-
Créez un domaine OpenSearch de service.
-
Donnez au OpenSearch service les autorisations nécessaires pour accéder au compartiment et assurez-vous que vous disposez des autorisations nécessaires pour utiliser les instantanés.
-
Restaurez le snapshot sur le domaine OpenSearch de service.
Cette démonstration fournit des étapes plus détaillées et d'autres options, le cas échéant.
Création et chargement de l'instantané
Bien que vous puissiez utiliser le plugin repository-s3opensearch.yml
(ou elasticsearch.yml
si vous utilisez un cluster Elasticsearch), redémarrer chaque nœud, ajouter vos AWS informations d'identification et enfin prendre le snapshot. Le plug-in est une excellente option pour une utilisation continue ou pour la migration de clusters plus volumineux.
Pour les clusters plus petits, une approche unique consiste à prendre un instantané du système de fichiers partagé
Pour créer un instantané et le charger sur Amazon S3
-
Ajoutez le paramètre
path.repo
àopensearch.yml
(ouElasticsearch.yml
) sur tous les nœuds, puis redémarrez chaque nœud.path.repo: ["
/my/shared/directory/snapshots
"] -
Enregistrez un référentiel d'instantanés
, ce qui est nécessaire avant de prendre un instantané. Un référentiel n'est qu'un emplacement de stockage : un système de fichiers partagé, Amazon S3, un système de fichiers distribué Hadoop (HDFS), etc. Dans ce cas, nous utiliserons un système de fichiers partagé (« fs ») : PUT _snapshot/
my-snapshot-repo-name
{ "type": "fs", "settings": { "location": "/my/shared/directory/snapshots
" } } -
Créez l'instantané :
PUT _snapshot/
my-snapshot-repo-name
/my-snapshot-name
{ "indices": "migration-index1
,migration-index2
,other-indices-*
", "include_global_state": false } -
Installez l'AWS CLI
, puis exécutez aws configure
pour ajouter vos informations d'identification. -
Accédez au répertoire de l'instantané. Exécutez ensuite les commandes suivantes pour créer un compartiment S3 et charger le contenu du répertoire de l'instantané dans ce compartiment :
aws s3 mb s3://
amzn-s3-demo-bucket
--regionus-west-2
aws s3 sync . s3://amzn-s3-demo-bucket
--sse AES256Selon la taille de l'instantané et la vitesse de votre connexion Internet, cette opération peut prendre un certain temps.
Création d'un domaine
Bien que la console soit le moyen le plus simple de créer un domaine, dans ce cas, le terminal est déjà ouvert et AWS CLI installé. Modifiez la commande suivante pour créer un domaine qui correspond à vos besoins :
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
En l'état, la commande crée un domaine accessible à Internet avec deux nœuds de données, chacun avec 100 Gio de stockage. Il permet également un contrôle d'accès précis avec l'authentification de base HTTP et tous les paramètres de chiffrement. Utilisez la console OpenSearch de service si vous avez besoin d'une configuration de sécurité plus avancée, telle qu'un VPC.
Avant d'exécuter la commande, modifiez le nom de domaine, les informations d'identification de l'utilisateur principal et le numéro de compte. Spécifiez la même version Région AWS que celle que vous avez utilisée pour le compartiment S3 et une OpenSearch/Elasticsearch version compatible avec votre instantané.
Important
Les instantanés ne sont compatibles qu'avec la version actuellement installée et les versions supérieures majeures. Par exemple, vous ne pouvez pas restaurer un instantané à partir d'un OpenSearch 1. cluster x sur un Elasticsearch 7. x cluster, seulement un OpenSearch 1. x ou 2. grappe x. La version mineure compte aussi. Vous ne pouvez pas restaurer un instantané à partir d'un cluster 5.3.3 autogéré sur un domaine de service 5.3.2 OpenSearch . Nous vous recommandons de choisir la version la plus récente OpenSearch d'Elasticsearch prise en charge par votre instantané. Pour obtenir un tableau des versions compatibles, consultez Utilisation d'un instantané pour migrer des données.
Accordez des autorisations d'accès au compartiment S3.
Dans la console AWS Identity and Access Management (IAM), créez un rôle avec les autorisations et la relation de confiance suivantes. Lors de la création du rôle, choisissez S3 en tant que Service AWS . Nommez le rôle OpenSearchSnapshotRole
pour qu'il soit facile à identifier.
Autorisations
Relation d'approbation
Ensuite, accordez à votre rôle IAM personnel les autorisations de prendre en charge OpenSearchSnapshotRole
. Créez la stratégie suivante et attachez-la à votre identité :
Autorisations
Cartographier le rôle des instantanés dans OpenSearch les tableaux de bord (si vous utilisez un contrôle d'accès précis)
Si vous avez activé le contrôle d'accès précis, même si vous utilisez l'authentification de base HTTP à toutes les autres fins, vous devez mapper le rôle manage_snapshots
à votre rôle IAM afin d'utiliser des instantanés.
Pour accorder à votre identité les autorisations nécessaires pour utiliser des instantanés
-
Connectez-vous aux tableaux de bord à l'aide des informations d'identification de l'utilisateur principal que vous avez spécifiées lors de la création du domaine OpenSearch de service. Vous trouverez l'URL des tableaux de bord dans la console de OpenSearch service. Elle prend la forme suivante :
https://
.domain-endpoint
/_dashboards/ -
Dans le menu principal, choisissez Sécurité, Rôles, puis sélectionnez le rôle manage_snapshots.
-
Choisissez Mapped users (Utilisateurs mappés), Manage mapping (Gérer le mappage).
-
Ajoutez l'ARN de domaine de votre rôle IAM personnel dans le champ approprié. L'ARN se présente dans l'un des formats suivants :
arn:aws:iam::
123456789123
:user/user-name
arn:aws:iam::
123456789123
:role/role-name
-
Sélectionnez Map (Mapper) et vérifiez que le rôle s'affiche sous Mapped users (Utilisateurs mappés).
Restaurer l'instantané.
À ce stade, vous pouvez accéder à votre domaine de OpenSearch service de deux manières : l'authentification HTTP de base avec vos informations d'identification d'utilisateur principal ou l' AWS authentification à l'aide de vos informations d'identification IAM. Étant donné que les instantanés utilisent Amazon S3, qui n'a aucune notion d'utilisateur principal, vous devez utiliser vos informations d'identification IAM pour enregistrer le référentiel de clichés auprès de votre domaine de OpenSearch service.
La plupart des langages de programmation disposent de bibliothèques pour faciliter la signature des demandes, mais l'approche la plus simple consiste à utiliser un outil tel que Postman

Pour restaurer l'instantané
-
Quelle que soit la manière dont vous choisissez de signer vos demandes, la première étape consiste à enregistrer le référentiel :
PUT _snapshot/
my-snapshot-repo-name
{ "type": "s3", "settings": { "bucket": "amzn-s3-demo-bucket
", "region": "us-west-2
", "role_arn": "arn:aws:iam::123456789012:role/OpenSearchSnapshotRole" } } -
Ensuite, répertoriez les instantanés dans le référentiel et identifiez celui que vous souhaitez restaurer. À ce stade, vous pouvez continuer à utiliser Postman ou opter pour un outil comme curl
. Shorthand
GET _snapshot/
my-snapshot-repo-name
/_allcurl
curl -XGET -u '
master-user
:master-user-password
' https://domain-endpoint
/_snapshot/my-snapshot-repo-name
/_all -
Restaurez l'instantané.
Shorthand
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}' -
Enfin, vérifiez que vos index sont restaurés comme prévu.
Shorthand
GET _cat/indices?v
curl
curl -XGET -u '
master-user
:master-user-password
' https://domain-endpoint
/_cat/indices?v
À ce stade, la migration est terminée. Vous pouvez configurer vos clients pour qu'ils utilisent le nouveau point de terminaison du OpenSearch service, redimensionner le domaine en fonction de votre charge de travail, vérifier le nombre de partitions pour vos index, passer à un utilisateur principal IAM ou commencer à créer des visualisations dans les tableaux de bord. OpenSearch