10 Schritte zum Automatisieren der Migration von Elastic-Workloads von „on-prem“ auf Elastic auf AWS

blog-thumb-cloud-aws.png

Sind Sie bereit, Ihre selbstverwalteten Elastic-Workloads zu Elastic auf Amazon Web Services (AWS) zu migrieren, um Kosten und Zeit zu sparen und effizienter zu werden? Profitieren Sie von den Best Practices und Tools, die wir gemeinsam mit AWS entwickelt haben, damit Ihr Umstieg schnell und reibungslos gelingt. Zunächst sehen wir uns an, welche Möglichkeiten Sie haben, per „Selbstbedienung“ zu migrieren. Danach beschäftigen wir uns dann, wie Sie Ihre Migration ganz einfach automatisieren können.

Ihre Möglichkeiten

Sie haben drei Möglichkeiten, Ihre On-Premises-Datasets auf Elastic in Ihrer AWS-Umgebung zu migrieren: erneutes Ingestieren Ihrer Daten, „Snapshot und Wiederherstellung“ und erneutes Indexieren Ihrer Daten aus einem Cluster.

1. Wenn Ihre Datenquelle (Anwendungen, Datenbanken und Infrastruktur) ebenfalls zu AWS migriert werden soll, können Sie die Daten aus Ihrer Quelle erneut ingestieren, um sie in Elastic zu importieren. Elastic bietet Integrationen für weit verbreitete AWS-Dienste, die Sie bei der Dateningestion unterstützen. Sie müssen lediglich klicken, um Daten zu erfassen, zu speichern und zu durchsuchen.

2. Wenn Sie Daten in bestehenden Clustern nach Elastic Cloud migrieren möchten und der bestehende Cluster mit einer älteren Elasticsearch-Version als Elastic Cloud ausgeführt wird, können Sie „Snapshot und Wiederherstellung“ nutzen.

3. Wenn Sie nur mit geringen Datenmengen zu tun haben und/oder „Snapshot und Wiederherstellung“ nur eingeschränkt genutzt werden kann und wenn der bestehende Cluster mit einer älteren Elasticsearch-Version als Elastic Cloud ausgeführt wird, bietet sich die Neuindexierung aus einem Cluster an. Weitere Einzelheiten zur Verwendung der Neuindexierungs-API („Reindex API“) finden Sie im Migrationshandbuch.

In diesem Blogpost zeigen wir Ihnen, wie Sie Ihren Migrationspfad mit „Snapshot und Wiederherstellung“ mit einfachen Schritten automatisieren können.

Automatisieren der Migration mit „Snapshot und Wiederherstellung“

Sehen wir uns gemeinsam an, wie einfach Sie Ihre Daten mithilfe von „Snapshot und Wiederherstellung“ mit Terraform (Open-Source-Infrastructure-as-Code-Software) migrieren können. Zunächst widmen wir uns den Voraussetzungen und anschließend kümmern wir uns um die konkreten Schritte.

Voraussetzungen

  1. Stellen Sie sicher, dass die Zielinstanz von Elastic Cloud in einer Version ausgeführt wird, die mindestens der Version der aktuellen Elasticsearch-Cluster entspricht. Eine Tabelle mit ausführlichen Angaben zur Versionskompatibilität finden Sie im „Elasticsearch Guide“ unter „Snapshot and Restore“.
  2. Vergewissern Sie sich, dass die Kapazität der Infrastruktur des Elastic Cloud-Clusters für die Datenmenge ausreichend ist und den Computing-Anforderungen für den Anwendungsfall entspricht.
  3. Machen Sie sich im „Elasticsearch Guide“ unter „Snapshot and Restore“ mit den dort aufgeführten Einschränkungen vertraut und informieren Sie sich unter „Upgrade Elasticsearch“ über Neuerungen in den einzelnen Versionen, um etwaige Hindernisse für die Migration des Deployments auf Elastic Cloud auszuschließen.
  4. Vergewissern Sie sich, dass Sie die richtige Version der Software Terraform haben und dass die Vault-Funktion in Terraform aktiviert ist.
  5. Tragen Sie die notwendigen Informationen zusammen, z. B. den Elasticsearch-API-Schlüssel (var.apikey) und den AWS-Zugriffsschlüssel (var.s3_client_access_key, var.s3_client_secret_key).
  6. Vergewissern Sie sich, dass eine Direktverbindung zwischen Ihrem On-Premises-Deployment und Elastic auf AWS VPC besteht und Sie auch auf andere AWS-Ressourcen zugreifen können.
  7. Wenn das Elasticsearch „AWS CLI and Amazon Simple Storage Service (Amazon S3)“-Plugin in Ihrem vorhandenen Elasticsearch-Cluster noch nicht installiert ist, müssen Sie es mit dem folgenden Befehl über das Elasticsearch-Startverzeichnis installieren:
> sudo bin/elasticsearch-plugin install repository-s3
  1. Fügen Sie dem Elasticsearch-Keystore vom Stammverzeichnis des vorhandenen Elasticsearch-Clusters aus die Amazon S3-Zugriffsschlüssel hinzu (geben Sie dazu bei Aufforderung die entsprechenden Schlüssel aus dem Erstellungsprozess für das Amazon S3-Bucket ein). Nutzen Sie dazu die folgenden Befehle:
> bin/elasticsearch-keystore add s3.client.default.access_key
> bin/elasticsearch-keystore add s3.client.default.secret_key
Elastic Cloud-Migrationsarchitektur

Migrationsschritte

  1. Erstellen Sie ein Elastic Cloud-Snapshot-Repository und registrieren Sie es mit dem Amazon S3-Service.
  2. Erstellen Sie ein lokales Snapshot-Repository und konfigurieren Sie es so, dass es auf das Amazon S3-Bucket verweist.
  3. Erstellen Sie vom lokalen Cluster aus einen neuen Snapshot und speichern Sie ihn im Amazon S3-Bucket.
  4. Stellen Sie den Elastic Cloud-Cluster bereit.
  5. Stellen Sie die für den Elastic Agent benötigten AWS-Ressourcen bereit.
  6. Stellen Sie den Elastic-Serverless-Forwarder bereit. Dieser wird für das reibungslose Ingestieren von Logdaten benötigt.
  7. Erstellen Sie mehrere AWS-IAM-Instanzrollen mit granularen Berechtigungen für den Zugriff auf die für den Bereitstellungsprozess benötigten AWS-Dienste.
  8. Schließen Sie alle Indizes in Elastic Cloud.
  9. Stellen Sie die lokalen Cluster-Daten aus dem Snapshot in Elastic Cloud wieder her.
  10. Öffnen Sie zum Schluss alle Indizes in Elastic Cloud.

Bereitstellungsschritte

Im Folgenden beschreiben wir ausführlich, was wir im Abschnitt „Voraussetzungen“ bereits kurz erwähnt haben, z. B. das Zusammentragen der erforderlichen geheimen Zugriffsschlüssel. Wenn Sie Ihre Schlüssel bereits haben, können Sie gleich mit Schritt 3 weitermachen.

  1. Generieren Sie einen Elasticsearch Service(ESS)-API-Schlüssel:
    1. Öffnen Sie Ihren Browser und gehen Sie zu https://cloud.elastic.co/login.
    2. Melden Sie sich mit Ihrer E-Mail-Adresse und Ihrem Passwort an.
    3. Klicken Sie auf Elasticsearch Service.
    4. Gehen Sie zu „Features“ > „API Keys“ und klicken Sie auf „Generate API Key“.
    5. Legen Sie für Ihren API-Schlüssel einen Namen fest.
    6. Speichern Sie Ihren API-Schlüssel an einem sicheren Ort.
  2. Erstellen Sie einen AWS-Zugriffsschlüssel:
    1. Erstellen Sie eine S3-Bucket-Richtlinie mit Berechtigungen zum Auflisten, Lesen und Schreiben.
    2. Erstellen Sie einen IAM-Nutzer und hängen Sie die soeben erstellte Richtlinie an.
    3. Achten Sie darauf, für den IAM-Nutzer den programmgesteuerten Zugriff („Programmatic access“) zu aktivieren.
    4. Speichern Sie Ihren AWS-Zugriffsschlüssel an einem sicheren Ort.
  3. Klonen Sie Ihr Terraform-Elastic Cloud-Migrations-Repository mit den folgenden Befehlen:
    1. git clone https://github.com/aws-ia/terraform-elastic-cloud
    2. cd terraform-elastic-cloud
  4. Wenn Sie HashiCorp Vault verwenden, können Sie die Vault-Umgebungsvariablen wie folgt festlegen:
    1. export VAULT_ADDR= "Your Vault URL"
    2. export VAULT_TOKEN= "Your Vault Token"                                                                                  Fügen Sie Ihren Elasticsearch API-Schlüssel hinzu (wir haben als Beispielpfad „ess“ verwendet):
vault kv put secret/ess apikey="Your Elastic API Key"

Fügen Sie Ihren AWS API-Schlüssel hinzu (wir haben als Beispielpfad „aws“ verwendet):

vault kv put secret/aws s3_client_access_key="Your AWS Access Key"     
s3_client_secret_key="Your AWS Secret Key"
  1. Sie müssen die Schlüssel bereitstellen. Dafür haben Sie in Terraform mehrere Möglichkeiten. Wir verwenden „Variable Definitions“ (.tfvars). Mit dieser neuen Funktion können Sie die Migration Ihres Elasticsearch-Clusters auf Elastic Cloud automatisieren. Die Dateien sehen Sie unten (wenn Sie HashiCorp Vault verwenden).

Sie müssen jetzt lediglich die URL Ihres selbstverwalteten Elasticsearch wie im Beispiel unten zuweisen.

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

    Wie unten zu sehen, können wir beispielsweise in derselben Datei testing.tfvars „var.local_elasticsearch_url“ hinzufügen (wenn wir HashiCorp Vault verwenden):

    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"

    Sie können die Schlüssel stattdessen auch wie folgt direkt bereitstellen:

    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. Nachdem Sie diese Variablen in der .tfvars-Datei festgelegt haben (im Beispiel unten verwenden wir eine Datei mit dem Namen testing.tfvars), können Sie das Terraform-Modul wie folgt ausführen:
          terraform init
          terraform validate
          terraform apply -var-file="testing.tfvars"

          Löschen des Deployments

          Wenn Sie die Infrastruktur, die durch das Terraform-Modul bereitgestellt wurde, nicht mehr benötigen, können Sie mit dem folgenden Befehl ganz einfach sämtliche Ressourcen auf einmal löschen:
          terraform destroy -var-file="testing.tfvars"

          Nutzung weiterer Migrationsressourcen mit Elastic und AWS

          Elastic ist zertifizierter Partner des AWS ISV Workload Migration Program (WMP), um Unterstützung bei der Migration selbstverwalteter Elasticsearch- oder ELK-Workloads auf Elastic Cloud auf AWS zu leisten. Die Elastic-Methode bietet den Kunden einen standardisierten und wiederholbaren Ansatz für eine schnellere Migrationsdurchführung. Sie orientiert sich direkt an den von AWS veröffentlichten Leitfäden und Best Practices für Migrationen, wie etwa dem AWS Well-Architected Framework und dem AWS Migration Acceleration Program. Mit dem AWS WMP können Sie außerdem weitere Vorteile in Form von Onboarding-Unterstützung, Migrationsressourcen und Gutschriften für die AWS-Infrastruktur sowie Finanzierungshilfen erhalten, die Ihnen helfen, Ihre Geschäftsziele zu erreichen und Ihre Cloudeinführung zu beschleunigen.

          Migration auf Elastic auf AWS – jetzt loslegen

          Migrieren Sie Ihre Deployments und Daten, um zusätzlich zu den Elastic-Lösungen, mit denen Ihr Team bereits vertraut ist, vom kompletten Angebot an Cloud-basierten Funktionen zu profitieren. Informieren Sie sich im Referenzhandbuch für die Migration, in den AWS Quick Starts, auf unserer Website zur Migration und in unserer Dokumentation oder wenden Sie sich direkt an uns, um mehr darüber zu erfahren, wie Elastic Ihnen bei Ihrer Migration helfen kann – inklusive Bewertung, Planung und Finanzierung. Wenn es um das Migrieren komplexer und großer Workloads geht, können Sie sich auch gern an unser Elastic Consulting-Team wenden. Starten Sie Ihren 7-tägigen kostenlosen Probezeitraum direkt auf AWS Marketplace – die Einrichtung ist in wenigen Minuten erledigt.

          Die Entscheidung über die Veröffentlichung der in diesem Blogpost beschriebenen Leistungsmerkmale und Funktionen oder deren Zeitpunkt liegt allein bei Elastic. Es ist möglich, dass nicht bereits verfügbare Leistungsmerkmale oder Funktionen nicht rechtzeitig oder überhaupt nicht veröffentlicht werden.