10 étapes pour automatiser la migration de charges de travail Elastic sur site vers Elastic sur AWS

blog-thumb-cloud-aws.png

Êtes-vous prêt à migrer vos charges de travail Elastic vers Elastic sur Amazon Web Services (AWS) afin de bénéficier d’une plus grande efficacité en matière de coût, de temps et de scalabilité ? Tirez profit des bonnes pratiques et des outils que nous avons développés avec AWS afin d’assurer une transition rapide et en douceur. Passons en revue les différentes options de migration qui s’offrent à vous, puis découvrons les étapes simples que vous pouvez suivre afin d’automatiser votre migration.

Choisissez votre méthode

Les trois principales façons d’ajouter vos ensembles de données sur site à Elastic dans votre environnement AWS sont la réingestion de données, le snapshot et la restauration, ainsi que la réindexation depuis un cluster.

1. Si votre source de données (applications, bases de données et infrastructure) doit également être migrée vers AWS, les données peuvent alors être réingérées dans Elastic depuis votre source. Elastic propose des intégrations à des services AWS courants afin d’aider à la rationalisation de l’ingestion des données. Vous n’avez qu’à cliquer pour capturer, stocker et rechercher des données.

2. La méthode snapshot et restauration est la solution idéale lorsque les données qui se trouvent dans les clusters existants doivent être déplacées vers Elastic Cloud et que le cluster existant utilise une version d’Elasticsearch antérieure à Elastic Cloud.

3. Une autre option consiste à effectuer une réindexation à partir d’un cluster. C’est la meilleure solution lorsque les volumes de données sont faibles ou qu’il existe certaines contraintes qui empêchent le recours à la méthode snapshot et restauration, et que le cluster existant utilise une version d’Elasticsearch antérieure à Elastic Cloud. Vous trouverez plus d’informations sur l’utilisation de l’API de réindexation dans le guide de migration.

Dans ce blog, nous allons vous indiquer les quelques étapes simples à suivre afin d’automatiser votre migration grâce à la méthode snapshot et restauration.

Automatisez votre migration avec la méthode snapshot et restauration

Vous allez découvrir combien il est simple de migrer vos données à l’aide de la méthode snapshot et restauration avec Terraform (un logiciel open source d’infrastructure en tant que code). Tout d’abord, commençons par les prérequis, puis nous aborderons les étapes à suivre.

Prérequis

  1. Vérifiez que l’instance Elastic Cloud cible utilise une version identique ou ultérieure aux clusters Elasticsearch actuels. Le guide Elastic sur la méthode snapshot et restauration contient un tableau plus détaillé de la compatibilité des versions.
  2. Vérifiez que la capacité de l’infrastructure du cluster Elastic Cloud est suffisante pour accueillir le volume de données et les besoins en calcul du cas d’utilisation.
  3. Vérifiez les limitations mentionnées dans le guide de la méthode snapshot et restauration Elastic et les modifications rendant les versions incompatibles dans le guide de mise à niveau d’Elastic afin de confirmer qu’aucune contrainte ne peut affecter la migration du déploiement vers Elastic Cloud.
  4. Vérifiez que la bonne version du logiciel Terraform est installée et que la fonctionnalité Vault de Terraform est activée.
  5. Rassemblez les informations nécessaires, telles que la clé d’API Elasticsearch (var.apikey) et la clé d’accès AWS (var.s3_client_access_key, var.s3_client_secret_key).
  6. Vérifiez la connexion réseau (connexion directe) entre les données sur site et Elastic sur le VPC AWS, ainsi que les autres permissions d’accès aux ressources AWS.
  7. Si vous n’avez pas déjà installé le plug-in Elasticsearch AWS CLI et Amazon Simple Storage Service (Amazon S3) dans votre cluster Elasticsearch existant, vous devez l’installer depuis le répertoire d’accueil d’Elasticsearch à l’aide de la commande suivante :
> sudo bin/elasticsearch-plugin install repository-s3
  1. Ajoutez les clés d’accès Amazon S3 au magasin de clés Elasticsearch à l’aide des commandes suivantes depuis le répertoire racine du cluster Elasticsearch existant (entrez les clés correspondant au processus précédent de création du groupe Amazon S3 lorsque vous y êtes invité).
> bin/elasticsearch-keystore add s3.client.default.access_key
> bin/elasticsearch-keystore add s3.client.default.secret_key
Architecture de la migration Elastic Cloud

Étapes de la migration

  1. Créez et enregistrez un référentiel de snapshots à l’aide du service Amazon S3.
  2. Créez et configurez un référentiel de snapshots local et faites-le pointer vers le compartiment Amazon S3.
  3. Créez un nouveau snapshot depuis le cluster local et stockez-le dans le compartiment Amazon S3.
  4. Provisionnez le cluster Elastic Cloud.
  5. Provisionnez les ressources AWS requises pour Elastic Agent.
  6. Provisionnez le forwarder sans serveur d’Elastic requis pour une ingestion de logs fluide.
  7. Créez plusieurs instances de rôles AWS Identity and Access Management (IAM) avec des permissions précises d’accès aux services AWS nécessaires au déploiement.
  8. Fermez tous les index dans Elastic Cloud.
  9. Restaurez les données du cluster local depuis le snapshot dans Elastic Cloud.
  10. Pour finir, ouvrez tous les index dans Elastic Cloud.

Étapes du déploiement

Vous trouverez ci-dessous les étapes détaillées qui ont été brièvement mentionnées dans la section des prérequis, telles que le fait de rassembler les clés d’accès secrètes nécessaires. Si vous avez déjà vos clés, vous pouvez passer directement à l’étape 3.

  1. Générez une clé d’API Elasticsearch Service (ESS) :
    1. Ouvrez votre navigateur à la page https://cloud.elastic.co/login.
    2. Connectez-vous avec votre adresse e-mail et votre mot de passe.
    3. Cliquez sur Elasticsearch Service.
    4. Accédez à Features > API Keys (Fonctionnalités > Clés d’API) et cliquez sur Generate API Key (Générer une clé d’API).
    5. Choisissez un nom pour votre clé d’API.
    6. Enregistrez votre clé d’API dans un emplacement sûr.
  2. Créez une clé d’accès AWS :
    1. Créez une politique de compartiment S3 qui accorde des autorisations Liste, Lecture et Écriture.
    2. Créez un utilisateur IAM et joignez-y la politique créée ci-dessus.
    3. Assurez-vous de cocher la case Programmatic access (Accès par programme) pour l’utilisateur IAM.
    4. Enregistrez votre clé d’accès AWS dans un emplacement sûr.
  3. Clonez votre référentiel de migration Elastic Cloud Terraform à l’aide des commandes ci-après :
    1. git clone https://github.com/aws-ia/terraform-elastic-cloud
    2. cd terraform-elastic-cloud
  4. Si vous utilisez HashiCorp Vault, vous pouvez configurer les variables de l’environnement Vault comme suit :
    1. export VAULT_ADDR= "Your Vault URL"
    2. export VAULT_TOKEN= "Your Vault Token"                                                                                  Ajoutez votre clé d’API Elasticsearch (nous avons utilisé « ess » comme chemin pour l’exemple) :
vault kv put secret/ess apikey="Your Elastic API Key"

Ajoutez votre clé d’API AWS (nous avons utilisé « aws » comme chemin pour l’exemple) :

vault kv put secret/aws s3_client_access_key="Your AWS Access Key"     
s3_client_secret_key="Your AWS Secret Key"
  1. Vous devez fournir les clés, ce qui peut se faire de différentes façons dans Terraform. Nous allons utiliser des définitions de variables (.tfvars). Cette nouvelle fonctionnalité automatise la migration de votre cluster Elasticsearch vers Elastic Cloud. Les fichiers s’affichent en dessous (si vous utilisez HashiCorp Vault).

Vous n’avez qu’à affecter l’URL de votre solution Elasticsearch autogérée comme dans l’exemple ci-dessous.

    var.local_elasticsearch_url (e.g., http://127.0.0.1:9200).

    Par exemple, on peut ajouter var.local_elasticsearch_url dans le même testing.tfvars, comme montré ci-dessous (si vous utilisez HashiCorp Vault) :

    name = "Elasticsearch Cluster"
    local_elasticsearch_url = ""
    vault_address = "Your Local Elastic Cluster URL"
    vault_ess_path = "secret/ess"
    vault_aws_path = "secret/aws"
    apikey = "hashicorp/vault"
    s3_client_access_key = "hashicorp/vault"
    s3_client_secret_key  = "hashicorp/vault"

    Si vous préférez, vous pouvez directement fournir les clés comme suit :

    name = "Elasticsearch Cluster"
    local_elasticsearch_url = ""
    apikey = "Your Elastic API Key"
    s3_client_access_key = "Your AWS Access Key"
    s3_client_secret_key  = "Your AWS Secret Key"
    1. Une fois ces variables spécifiées dans le fichier .tfvars (dans l’exemple ci-dessous, on utilise un fichier nommé testing.tfvars), vous pouvez exécuter le module Terraform comme suit :
          terraform init
          terraform validate
          terraform apply -var-file="testing.tfvars"

          Supprimez le déploiement

          Si vous n’avez plus besoin de l’infrastructure provisionnée par le module Terraform, vous pouvez facilement supprimer toutes les ressources grâce à la commande suivante :
          terraform destroy -var-file="testing.tfvars"

          Exploitez plus de ressources de migration avec Elastic et AWS

          Elastic est devenue partenaire certifié dans le cadre du programme AWS ISV Workload Migration Program pour la prise en charge de la migration des charges de travail de la Suite Elastic (ELK) ou d'Elasticsearch sur site autogérées depuis Elastic vers AWS. Grâce à la méthodologie d'Elastic, la clientèle bénéficie d'une approche normative et reproductible qui accélère l'adoption de la migration, mais aussi s'inscrit dans la droite lignée des bonnes pratiques et des conseils en migration fournis par AWS, y compris le cadre AWS Well-Architected Framework et le programme AWS Migration Acceleration Program. Grâce au programme WMP d'AWS, vous pouvez tirer davantage parti des conseils d'intégration, des ressources de migration, mais aussi de l'aide au financement et des crédits d'infrastructure d'AWS afin d'atteindre vos objectifs commerciaux et d'accélérer votre migration dans le cloud.

          Commencez dès aujourd’hui votre migration vers Elastic sur AWS

          Migrez afin de pouvoir profiter de toutes les fonctionnalités de cloud en utilisant les solutions Elastic déjà connues de votre équipe. Consultez le guide de migration, le guide de démarrage rapide, le site web et la documentation, ou contactez-nous directement afin d’en savoir plus sur la façon dont Elastic peut vous aider dans votre migration, y compris pour l’évaluation, la planification et l’aide financière. Vous pouvez également contacter notre équipe Elastic Consulting qui vous aidera à migrer des charges de travail complexes et à grande échelle. Profitez d’un essai gratuit de 7 jours directement depuis AWS Marketplace et déployez Elastic en quelques minutes.

          La publication et la date de publication de toute fonctionnalité ou fonction décrite dans le présent article restent à la seule discrétion d'Elastic. Toute fonctionnalité ou fonction qui n'est actuellement pas disponible peut ne pas être livrée à temps ou ne pas être livrée du tout.