AWS Germany – Amazon Web Services in Deutschland

Migrieren Sie VMware virtuelle Maschinen (VMs) zu Amazon EC2 mit dem AWS Application Migration Service Replication Agent.

von Philippe Wanner und Simon Vaillancourt, übersetzt von Franz Stefan.

Einführung

In diesem Blogbeitrag führen wir Sie Schritt für Schritt durch den Prozess der Migration von VMware-Virtuellen Maschinen (VMs) zu Amazon Elastic Compute Cloud (Amazon EC2) unter Verwendung des Application Migration Service. Darüber hinaus zeigen wir, wie Sie ein benutzerdefiniertes Post-Launch-Aktionsskript anwenden können, um proprietäre VMware-Tools von den migrierten VMs zu entfernen.

Die Migration von lokalen VMware-Workloads zu Amazon EC2 kann erhebliche Vorteile bieten, darunter eine höhere Skalierbarkeit, verbesserte Leistung und reduzierte Betriebskosten. Der Application Migration Service vereinfacht diesen Prozess durch eine nahtlose, automatisierte Blocklevel-Replikationslösung für die Migration von VMware-VMs zu Amazon EC2-Instances. Migrierte VMs können auf Amazon EC2 getestet werden, während die Replikation des ursprünglichen Quellservers fortgesetzt wird. Diese Lösung verwendet die agentenbasierte Replikationsoption, da sie eine kontinuierliche Datenreplikation bietet und das Zeitfenster für den Cutover verkürzt.

Überblick über die Lösungsarchitektur

Diese Lösung (Abbildung 1) folgt den Anweisungen in der Dokumentation Vorbereitungen für die Netzwerkeinstellungen für den Application Migration Service [EN], indem sie ein dediziertes Subnetz für den Service verwendet. Es wird vom Service als Staging-Bereich für die Datenreplikation von Ihren Quellservern genutzt. Test- und Cutover-Instances werden in einem anderen dedizierten Subnetz, genannt „Migrierte Ressourcen“, gestartet.

Die in den jeweiligen VMware-VMs installierten AWS-Replikations-Agenten initiieren den Synchronisationsprozess und die Datenreplikation beginnt im Staging-Bereich. Die Replikation wird von Replikationsservern auf Basis der vordefinierten Replikationseinstellungen [EN] gehandhabt. Wenn die an die Quellserver angeschlossenen Volumes repliziert sind, wird der Server als „Bereit für Tests“ markiert. In Bezug auf die Launch-Einstellungen [EN] werden die jeweiligen Test- oder Cutover-Instances im Bereich „Migrierte Ressourcen“ gestartet.

Diese Lösung nutzt Post-Launch-Aktionen des Application Migration Service, um den AWS Systems Manager (SSM)-Agent auf jeder gestarteten Test- oder Cutover-Instance zu installieren. Der AWS SSM-Agent ermöglicht die Ausführung benutzerdefinierter Skripts, wie z.B. das Entfernen der proprietären VMware-Tools.

Dieses Verfahren gilt sowohl für VMware Cloud on AWS als auch für VMware On-Premises.

 
Abbildung 1 – Auf der linken Seite die VMware-Umgebung mit den installierten AWS-Replikations-Agenten. Auf der rechten Seite das AWS-Konto mit seinen beiden Subnetzen: Staging-Bereich und Migrierte Ressourcen.

Zu Demonstration Zwecken verwendet diese Lösung mehrere virtuelle Linux (RHEL 9)- und Windows Server 2019-Maschinen.

Implementierungsschritte

Schritt 1 – Voraussetzungen

Für diesen Leitfaden benötigen Sie:

  1. Einen AWS-Benutzer mit den erforderlichen Berechtigungen, wie in der Application Migration Service-Dokumentation „AWS Application Migration Service Initialisierung und Berechtigungen“ ausgeführt.
  2. Netzwerkeinstellungen gemäß der Definition in „Vorbereitungen für die Netzwerkeinstellungen [EN]„.
  3. Ein unterstütztes Betriebssystem für den Quellserver. Weitere Informationen zu unterstützten Betriebssystemen finden Sie unter „Unterstützte Betriebssysteme [EN]„.
  4. Anmeldeinformationen für die virtuelle Quellmaschine mit Berechtigungen zum Herunterladen und Installieren des AWS-Replikations-Agenten.
  5. Identifizieren oder Erstellen eines Amazon Virtual Private Cloud (Amazon VPC)-Subnetzes für Ihre Test- und Cutover-Instances zusammen mit den entsprechenden Amazon EC2-Sicherheitsgruppen.

Schritt 2 – Erstellen von Amazon VPC-Endpunkten

Der Staging-Bereich und die Ressourcen des migrierten Bereichs können in einem privaten oder öffentlichen Subnetz ausgeführt werden. In diesem Szenario sind beide Subnetze privat. Ohne öffentlichen Zugriff auf HTTPS-Endpunkte können die gestarteten Instances keine Verbindung zum Internet herstellen und daher die Post-Launch-Vorlage nicht ausführen. Um die Installation des SSM-Agents und die Ausführung der Post-Launch-Aktionen zu ermöglichen, müssen drei Endpunkte erstellt werden:

com.amazonaws.<region>.ssm
com.amazonaws.<region>.ec2messages
com.amazonaws.<region>.ssmmessages

1. Für jeden zu erstellenden Endpunkt öffnen Sie den Amazon VPC-Service in der Konsole und wählen Sie: Endpunkte, dann wählen Sie oben rechts: Endpunkt erstellen (Abbildung 2).

Abbildung 2 – Im Abschnitt Endpunkte der Amazon VPC-Service-Konsole wählen Sie „Endpunkt erstellen“.

2. Wählen Sie AWS Services und erstellen Sie den ersten Endpunkt (Abbildung 3) com.amazonaws.<region>.ssm. Ersetzen Sie <region> durch die AWS-Region. Wählen Sie das Ziel-VPC und EC2. Die am VPC-Endpunkt angehängte Sicherheitsgruppe muss eingehende Verbindungen über Port 443 aus dem privaten Subnetz der verwalteten Instance zulassen. Wählen Sie abschließend am Ende der Seite Endpunkt erstellen.

Abbildung 3 – Erstellen Sie einen Endpunkt über die Amazon VPC Service-Konsole.

3. Wenn die drei VPC-Endpunkte erstellt sind, sehen Sie folgendes Ergebnis (Abbildung 4).

Abbildung 4 – Die drei VPC-Endpunkte wurden erfolgreich erstellt, um die Installation des SSM-Agents zu ermöglichen.

Schritt 3 – Post-Launch-Aktionen zum Deinstallieren von VMware Tools unter Windows und Linux

Dieser Abschnitt führt Sie durch die Erstellung der benutzerdefinierten Post-Launch-Einstellungen, um das Entfernen der VMware Tools [EN, Extern] nach dem Start des Quellservers in AWS zu automatisieren. Beachten Sie, dass Änderungen an den Post-Launch-Vorlagen nur auf neu hinzugefügte Quellserver angewendet werden. Für vorhandene Quellserver müssen Sie die Post-Launch-Vorlage auf Quellserver-Ebene ändern.

1. Greifen Sie auf die Vorlage zu, indem Sie auf der linken Seite „Post-Launch-Template“ auswählen. Bearbeiten Sie die Post-Launch-Aktionseinstellungen und aktivieren Sie die Einstellungsfunktion, indem Sie „Systems-Manager-Agent installieren und die Ausführung von Aktionen auf gestarteten Servern zulassen“ und „Test- und Cutover-Instances (empfohlen)“ umschalten. Wählen Sie abschließend „Vorlage speichern“ aus (Abbildung 5).

Abbildung 5 – Aktivieren Sie die SSM-Agent-Installation für zukünftig gestartete Test- und Cutover-Instances.

2. Um VMware-Images von VMware-Tools zu bereinigen, erstellen Sie zunächst eine benutzerdefinierte Aktion. Wählen Sie „Aktion erstellen“ (Abbildung 6).

Abbildung 6 – Wählen Sie oben rechts „Aktion erstellen“ aus.

3. Fügen Sie die folgenden Eingaben in den Aktionseinstellungen hinzu (Abbildung 7). Post-Launch-Skripte unter Windows laufen im Kontext des lokalen Dienstes.

  1. Aktionseinstellungen
    1. Aktionsname: CleanUpVMwareTools-Windows.
    2. Wählen Sie die Option „Diese Aktion aktivieren„.
    3. Systems Manager-Dokumentname: AWS-RunPowerShellScript.
    4. Beschreibung: Run a shell script or specify the commands to run.
    5. Betriebssysteme: Windows

2. Aktionsparameter: Das folgende Skript kann verwendet werden, um VMTools nach der Migration von Windows Server 2019 zu deinstallieren.

  1. commands
    Remove-Item –path .\VMware –recurse 
    $regpath = “HKLM:\Software\Microsoft\Windows\CurrentVersion\uninstall”
    Get-childItem $regpath | % { 
       $keypath = $_.pschildname 
       $key = Get-Itemproperty $regpath\$keypath 
       if ($key.DisplayName -match “VMware Tools”) { 
          $VMwareToolsGUID = $keypath 
       } 
       Msiexec.exe /x $VMwareToolsGUID /qn /norestart 
    }
  2. workingDirectory: C:\Program Files\
  3. executionTimeout: 300

Abbildung 7 – PowerShell-Skript zum Entfernen von VMware-Tools aus replizierten Windows-gestarteten Instances.

4. Wiederholen Sie die oben genannten Schritte für die Linux-Instance (Abbildung 8). Post-Launch-Skripte unter Linux laufen unter dem Root-Benutzer.

  1. Aktionseinstellungen:
    1. Aktionsname: CleanUpVMwareTools-Linux.
    2. Wählen Sie die Option „Diese Aktion aktivieren“ aus.
    3. Systems Manager-Dokumentname: AWS-RunShellScript
    4. Beschreibung: Run a shell script or specify the commands to run.
    5. Betriebssysteme: Linux.

Abbildung 8 – Shell-Skript zum Entfernen der VMware-Tools von replizierten, gestarteten Linux-Instances.

2. Aktionsparameter

  1. commands:
rm -r ./VMware

2. executionTimeout: 300

Die Vorlage nach dem Start (Abbildung 9) zeigt die beiden neu erstellten Aktionen. Stellen Sie sicher, dass sie als „Aktiv“ markiert sind.

Abbildung 9 – Überprüfen Sie, ob die SSM-Agent-Installation und die beiden neu erstellten Post-Launch-Aktionen aktiviert sind.

Schritt 4 – Hinzufügen von Quellservern und Installation des Agents auf VMs

Jedes Mal, wenn Sie einen Quellserver zum Application Migration Service hinzufügen, werden dessen Replikationseinstellungen, Starteigenschaften und Post-Launch-Aktionseinstellungen basierend auf den Standardvorlagen initialisiert.

Sobald Ihre Quellserver dem Application Migration Service hinzugefügt wurden, können Sie sie auf der Seite „Quellserver“ überwachen und mit ihnen interagieren. Auf dieser Seite können Sie alle Ihre Quellserver anzeigen, ihren Migrationszyklus überwachen, den Zustand der Datenreplikation sehen, den nächsten Schritt im Migrationsprozess für jeden Server erkennen und Ihre Server nach verschiedenen Kategorien sortieren.

Um einen Windows-Quellserver hinzuzufügen, wählen Sie auf der Seite „Quellserver“ die Option „Server hinzufügen“ aus.

Verwenden Sie die folgenden Optionen (Abbildung 10), um den Installations-Befehl zu erstellen und fügen Sie Ihren IAM access key und Ihr IAM secret access hinzu. Kopieren Sie den angezeigten Befehl und laden Sie das Installationsprogramm herunter.

Abbildung 10 – Generieren Sie die Installationsbefehlszeile für den AWS-Replikations-Agent.

Sobald der Installer heruntergeladen ist, führen Sie den kopierten Befehl in der PowerShell aus. Sie müssen die Agenten-Installationsdatei als Administrator auf jedem Windows-Server ausführen (Abbildung 11).


Abbildung 11 – Führen Sie den Agent-Installationsbefehl auf Ihren Windows-Quellservern aus.

Notieren Sie Ihren Hostnamen und gehen Sie zur Application Migration Service-Konsole.

Sobald der AWS Replication Agent installiert ist, wird der Server in der Application Migration Service-Konsole unter Quellservern hinzugefügt, wo der anfängliche Synchronisationsprozess beginnt.

Schritt 5 – Starten einer Test-Instance

Um sicherzustellen, dass sie in der AWS-Umgebung ordnungsgemäß funktionieren, ist es wichtig die Migration Ihrer Quellserver vor der finalen Umstellung zu AWS zu testen. Bevor Sie eine Test-Instance starten, stellen Sie sicher, dass Ihre Quellserver für Tests bereit sind. Überprüfen Sie die folgenden Status auf der Seite „Quellserver„:

  1. In der Spalte „Migrationslebenszyklus“ sollte der Serverstatus „Bereit für Tests“ anzeigen.
  2. In der Spalte „Datenreplikationsstatus“ sollte der Serverstatus „Gesund“ sein.
  3. In der Spalte „Nächster Schritt“ sollte der Serverstatus „Test-Instance starten“ lauten.

So starten Sie eine Test-Instance für einen oder mehrere Quellserver:

  1. Navigieren Sie zur Seite „Quellserver„.
  2. Wählen Sie das Kontrollkästchen neben jedem Server aus, den Sie testen möchten.
  3. Wählen Sie das Menü „Test und Umstellung„.
  4. Wählen Sie unter „Testen“ die Option „Test-Instances starten„, um den Start von Test-Instances für die ausgewählten Quellserver zu initiieren (Abbildung 12).

Abbildung 12 – Wählen Sie aus dem Dropdown-Menü „Test und Cutover„.

  1. Sobald der Dialog „Test-Instances starten“ erscheint, wählen Sie „Launch„, um den Test zu starten.
  2. Die AWS Application Migration Service-Konsole zeigt an, dass der Launch-Job gestartet wurde, wenn der Test begonnen hat. Wählen Sie „Job Details ansehen“ im Dialogmenü, um die spezifischen Details für den Test-Launch in der Launch-History anzuzeigen.
  3. Sie können den erfolgreichen Start des Test-Instance-Launches bestätigen, indem Sie verschiedene Indikatoren auf der Seite „Quellserver“ (Abbildung 13) beobachten.
    1. In der Spalte „Warnungen“ sehen Sie einen Status „Gestartet„, der den Launch einer Test-Instance für diesen Server signalisiert.
    2. In der Spalte „Migrationslebenszyklus“ sehen Sie einen Status „Test in Bearbeitung„.
    3. In der Spalte „Nächster Schritt“ wird „Test abschließen und als Bereit für Cutover markieren“ angezeigt.

Abbildung 13 – Markieren Sie den Server als „Bereit für Cutover„, wenn Ihre Tests abgeschlossen sind.

Sobald Ihre Test-Instances gestartet wurden, greifen Sie darauf zu, um eine Verbindung herzustellen. Alternativ können Sie AWS SSM Session Manager oder AWS SSM Fleet Manager verwenden, um sich bei diesen Instances anzumelden. Dies dient dazu, deren ordnungsgemäße Funktion zu überprüfen, die Konnektivität zu bewerten und Akzeptanztests für Ihre Anwendung durchzuführen.

Wenn Ihr Test abgeschlossen ist und Sie für die Cutover-Phase bereit sind, können Sie den Test abschließen. Dazu setzen Sie den Migrationlebenszyklus-Status Ihrer Quellserver auf „Als Bereit für Cutover“ markieren“. Dies signalisiert den Abschluss aller Tests und die Bereitschaft für den Cutover. Schließen Sie schließlich den laufenden Lebenszyklus-Test ab, indem Sie „gestartete Test-Instancen beenden“ auswählen.

Überprüfen Sie die Aktionen nach dem Start.

  1. Wählen Sie „Quellserver“ und öffnen Sie „Post-Launch-Einstellungen bearbeiten„.
  2. Um sich über die auszulösenden Aktionen einen Überblick zu verschaffen, filtern Sie nach „aktiv„. Die folgenden Aktionen werden angezeigt (Abbildung 14).

SSM agent
CleanUpVMwareTools-Linux

Abbildung 14 – Bestätigen Sie die nach dem Start auszuführenden Aktionen.

Wenn die Instance gestartet wird, kann der Ausführungsstatus der SSM-Agent-Installation und der Bereinigung von VMWareTools unter der Registerkarte „Migrations- Dashboard“ (Abbildung 15) verfolgt werden.

Abbildung 15 – Beachten Sie, dass alle Aktionen erfolgreich abgeschlossen wurden.

Schritt 6 – Starten einer Cutover-Instance

  1. Aktivieren Sie das Kontrollkästchen neben jedem Quellserver mit einer gestarteten Test-instance, für welche Sie den Test abschließen möchten.
  2. Wählen Sie das Menü „Test und Cutover“ (Abbildung 16).
  3. Wählen Sie unter dem Abschnitt „Testen“ die Option „Als Bereit für Cutover markieren„.

Abbildung 16 – Markieren Sie als „Als Bereit für Cutover markieren„, um eine Cutover-Instance zu starten.

Im Dialogfeld „Server als bereit für Cutover markieren“ können Sie eine Auswahl hinsichtlich der Beendigung der Testinstances treffen. Es wird empfohlen, diese Instances zu beenden, da Ihnen dafür Gebühren in Rechnung gestellt werden, auch wenn sie nicht mehr benötigt werden. Wählen Sie zum Fortfahren mit der Beendigung „Ja, gestartete Instances beenden (empfohlen)“ und anschließend „Weiter“.

Die AWS Application Migration Service-Konsole bestätigt, dass die Server als bereit für Cutover markiert wurden.

Bevor Sie mit dem Start einer Cutover Instance fortfahren, bestätigen Sie die Bereitschaft Ihrer Quellserver für den Cutover, indem Sie auf der Seite „Quell-Server“ (Abbildung 17) den folgenden Status überprüfen:

  1. Migration-Lifecycle-Status ist „Bereit für Cutover„.
  2. Datenreplikationsstatus ist „Gesund„.
  3. Der nächste Schritt lautet „Gestartete Instance beenden; Cutover Instance starten„, wenn Sie Ihre letzte Testinstance nicht beendet haben. Andernfalls lautet er „Cutover Instance starten„, wenn Sie die letzte Testinstance beendet haben.

Abbildung 17 – Überprüfen Sie, ob der Migrationslebenszyklus „Bereit für Cutover“ und der Datenreplikationsstatus „Gesund“ ist.

So initiieren Sie eine Instance für den Wechsel für einen oder mehrere Quellserver:

  1. Gehen Sie zur Seite „Quellserver“ und wählen Sie jeden Server aus, für den Sie den Cutover durchführen möchten.
  2. Wählen Sie das Menü „Test und Cutover„.
  3. Wählen Sie unter „Cutover“ (Abbildung 18) die Option „Cutover-Instances starten„.
  4. Es erscheint ein Pop-up-Fenster, in dem die Instances für den Wechsel mit ihren jeweiligen Namen angezeigt werden, die gestartet werden sollen.
  5. Bestätigen Sie mit „Starten„.

Abbildung 18 – Wählen Sie „Cutover-Instances starten“ im Menü „Test und Cutover„.

Auf der Seite „Quellserver“ (Abbildung 19) zeigt die Spalte „Migrationslebenszyklus„, „Cutover in Bearbeitung“ an und die Spalte „Nächster Schritt“ weist auf „Cutover abschließen“ hin.

Abbildung 19 – Der Migrationslebenszyklus hat sich von „Bereit für Cutover“ in „Cutover in Bearbeitung“ geändert.

Wählen Sie Ihren Quellserver aus, um die Auftragsdetails anzuzeigen (Abbildung 20).

Abbildung 20 – Der aktuelle Lebenszyklus befindet sich in „Cutover in Bearbeitung„, was bedeutet, dass die Cutover-Instances gestartet werden.

Nachdem Sie Ihre Cutover-Instances über die Amazon EC2-Konsole gestartet haben, können Sie sich alternativ mit AWS SSM Session Manager oder Fleet Manager mit der Instance verbinden. Dieser Schritt ist wichtig, um den ordnungsgemäßen Betrieb zu überprüfen, die Verbindung zu bestätigen und Akzeptanztests für Ihre Anwendung durchzuführen.

Wenn Sie Ihre Migration abgeschlossen haben, finalisieren Sie die Umstellung (Abbildung 21):

  1. Wählen Sie jeden Quellserver aus, den Sie umstellen möchten.
  2. Wählen Sie: „Cutover abschließen“.

Abbildung 21 – Wechseln Sie zu „Cutover abschließen„, um die Datenreplikation zu stoppen.

Wählen Sie im Dialogfeld „Test und Cutover“ die Option „Cutover abschließen„, um den Cutover-Vorgang zu starten. Diese Aktion aktualisiert den Status des Migrationslebenszyklus für Ihre Quellserver auf: Cutover beendet. Dies bedeutet, dass der Cutover und die Migration erfolgreich waren. Außerdem wird die Datenreplikation angehalten und die zugehörigen AWS EBS-Volumes sowie die Amazon EC2-Replikationsserver werden verworfen. Die Application Migration Service-Konsole zeigt „Cutover beendet“ an, wenn der Cutover-Vorgang erfolgreich abgeschlossen wurde.

Cleanup

Um fortlaufende Gebühren zu vermeiden, stellen Sie sicher, dass Sie relevante Ressourcen aufräumen, einschließlich:

  • Amazon EC2-Instances
  • Trennen Sie alle mit der Application Migration Service verbundenen Quellserver
  • Entfernen Sie angehängte EBS-Volumes von den mit Ihren Tests verbundenen EC2-Instances
  • Löschen Sie VPC-Endpunkte

Schlussfolgerung

In Schlussfolgerung überprüft dieser Blogbeitrag die Reihe von Schritten für eine nahtlose On-Demand-Migration einer VMware-VM zu Amazon EC2. Der Hauptvorteil dieses Prozesses ist die Automatisierung, die menschliche Fehler erheblich reduziert und die Migration beschleunigt. Die Aktionen nach dem Start bereinigen Systembilder von VMware-Tools. Der Application Migration Service bleibt kostengünstig und ist somit eine attraktive Lösung für Migrationen, unabhängig davon, ob die VMware-Umgebung vor Ort, in der Cloud oder in VMware Cloud auf AWS gehostet wird.

Für zusätzliche Ressourcen sehen Sie auch die folgenden Themen im Application Migration Service User Guide:

Über die Autoren:

Philippe Wanner ist ein Senior Specialist Solutions Architect bei Amazon Web Services (AWS). Seine Rolle ist es großen Organisationen in Europa, dem Nahen Osten und Afrika (EMEA) zu Migrations- und Modernisierungs Best Practices und -Strategien zu beraten. Sein aktueller Schwerpunkt liegt in einem multidisziplinären Bereich rund um Geschäftstransformation, verteilten Systemen und Serverless Architekturen.
Simon Vaillancourt ist Specialist Solutions Architect, der VMware Cloud auf AWS bei Amazon Web Services (AWS) unterstützt und Kunden aus dem öffentlichen Sektor betreut. Er ist in Quebec ansässig und unterstützt Kunden mit VMC-spezifischen Anforderungen in ganz Kanada. Er bringt langjährige IT-Erfahrung mit und hat verschiedene Positionen als IT-Analyst und IT-Architekt innegehabt. Im Laufe seiner Karriere sammelte er umfangreiche Erfahrung mit großen Rechenzentren, sowie Infrastrukturbereitstellungen und Migrationen – sowohl aus Kunden als auch aus Anbieterperspektive im privaten und öffentlichen Sektor.