Gastdaten von EC2-VMs zur Offlinebewertung erfassen


In dieser Anleitung wird gezeigt, wie Sie Daten auf EC2-VM-Instanzen ermitteln und erfassen, die für die technische Offlinebewertung mithilfe der Befehlszeile des Migrationscenter-Discovery-Client verwendet werden.

Lernziele

In dieser Anleitung erhalten Sie Informationen zu folgenden Themen:

  • mcdc-Befehlszeile herunterladen, um Ihre AWS EC2-VMs zu bewerten
  • AWS EC2-Inventarerkennung ausführen
  • Informationen zu Gastebenen für alle VMs in einer EC2-Region mithilfe des AWS-Sitzungsmanagers oder mit SSH erfassen
  • Einen Offlinebewertungsbericht generieren
  • (Erweitert) Skripts an Ihre Anforderungen anpassen
  • (Erweitert) Orchestrierungsskript von Grund auf neu schreiben

Kosten

Für diese Anleitung fallen keine Google Cloud-Kosten an.

Es ist unwahrscheinlich, dass sie sich auf Ihre AWS-Kosten auswirken.

Hinweise

Die Voraussetzungen hängen davon ab, wie Sie eine Verbindung zu Ihren EC2-VMs herstellen.

Sitzungsmanager

  1. Bereiten Sie einen Linux-Computer zum Herunterladen und Ausführen der mcdc-Befehlszeile vor. Für den Linux-Computer gelten die folgenden Mindestanforderungen:

    • Linux-Kernel-Versionen 2.6.23 oder höher
    • 4 GB RAM und 10 GB Speicherplatz
    • AWS-Befehlszeile installiert
  2. Achten Sie darauf, dass die AWS-Befehlszeile die folgenden Berechtigungen hat:

    • Kann aws ssm describe-instance-information aufrufen
    • Kann aws ssm start-session aufrufen

SSH

  1. Bereiten Sie einen Linux-Computer zum Herunterladen und Ausführen der mcdc-Befehlszeile vor. Der Linux-Computer muss die folgenden Mindestanforderungen erfüllen:

    • Linux-Kernel-Versionen 2.6.23 oder höher
    • 4 GB RAM und 10 GB Speicherplatz
    • AWS-Befehlszeile installiert
    • Netzwerkverbindung zu EC2-Instanzen (möglicherweise über einen Proxy)
  2. Achten Sie darauf, dass die AWS-Befehlszeile die folgenden Berechtigungen hat:

mcdc-Befehlszeile herunterladen

  1. Stellen Sie eine Verbindung zum Linux-Computer her:
    ssh MACHINE_IP
    

    Ersetzen Sie dabei MACHINE_IP durch die IP-Adresse des Linux-Computers.

  2. Laden Sie die neueste Version der mcdc-Befehlszeile herunter und machen Sie sie ausführbar:
      curl -O "https://mcdc-release.storage.googleapis.com/$(curl -s https://mcdc-release.storage.googleapis.com/latest)/mcdc"
      chmod +x mcdc
    
  3. Fügen Sie die mcdc-Befehlszeile zum Shell-Pfad hinzu:
    PATH=$PATH:`pwd`
    

AWS-Inventarerkennung ausführen

  • Führen Sie die Inventarerkennung aus:

    ./mcdc discover aws -r REGION
    

    Ersetzen Sie dabei REGION durch die Region Ihrer EC2-VMs.

    In der mcdc-Befehlszeile werden Sie aufgefordert, die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel einzugeben.

    Die Ausgabe des Suchanfragebefehls sieht dann ungefähr so aus:

    Collected 166 VMs
    [✓] Collection completed.
    

Gastsuchanfrage ausführen

Sie können den Gastsuchanfrage mit dem Sitzungsmanager oder SSH ausführen.

Sitzungsmanager

Bei dieser Methode wird der AWS Systems Manager-Sitzungsmanager verwendet, um eine Gastsuchanfrage auf allen VMs auszuführen, auf denen der SSM-Agent installiert ist. Der SSM-Agent wird standardmäßig auf den meisten von Amazon bereitgestellten AMIs installiert und kann manuell auch auf anderen installiert werden.

  1. Prüfen Sie, ob alle VMs eine IAM-Rolle haben, die eine Verbindung über den Sitzungsmanager ermöglicht. Weitere Informationen finden Sie in der AWS-Dokumentation.

  2. Achten Sie darauf, dass alle VMs, die erfasst werden sollen, aktiviert sind.

  3. Führen Sie die Gastsuchanfrage mit dem SSM-Gasterfassungsskript aus dem Migrate to Containers-Repository auf GitHub aus.

    a. Laden Sie das Skript herunter:

     curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssm.sh
     chmod +x mcdc_collect_aws_guest_ssm.sh
    

    b. Führen Sie das Skript aus und speichern Sie die Ausgabe in einer Datei:

     ./mcdc_collect_aws_guest_ssm.sh --region REGION
    

    Ersetzen Sie dabei REGION durch die Region Ihrer EC2-VMs.

    Alle Flags werden direkt an aws ssm describe-instance-information übergeben. Führen Sie den folgenden Befehl aus, um Daten aus einer bestimmten VM zu erfassen:

     ./mcdc_collect_aws_guest_ssm.sh --region REGION --filters "Key=InstanceIds,Values=VM_ID"
    

    Ersetzen Sie dabei VM_ID durch die VM-ID.

    Weitere Informationen zu allen Flags, die für den Befehl describe-instance-information zulässig sind, finden Sie in der AWS-Dokumentation.

SSH

Diese Methode verwendet SSH, um eine Gastsuchanfrage auf Linux-VMs auszuführen. Sie stellt eine Verbindung zur öffentlichen IP-Adresse jeder VM her. Es sollte jedoch kein Problem sein, das Skript zu ändern. Damit können Sie beispielsweise eine Verbindung zur privaten IP-Adresse herstellen.

Das Skript verwendet EC2-Instanzverbindung zur Authentifizierung. Instanzverbindungen sind nur für Amazon Linux- und Ubuntu-VMs verfügbar und müssen möglicherweise installiert werden. Es sollte jedoch kein Problem sein, das Skript so anzupassen, dass eine alternative Authentifizierungsmethode wie die Passwortauthentifizierung mit sshpass oder ein privater Schlüssel verwendet wird.

  1. Prüfen Sie, ob Sie Netzwerkzugriff auf die VMs haben. Möglicherweise müssen Sie die Regeln für eingehenden Traffic für Ihre Sicherheitsgruppen anpassen oder einen Proxy für die Verbindung nutzen.

  2. Achten Sie darauf, dass alle VMs, von denen Sie erfassen möchten, aktiviert sind.

  3. Führen Sie die Gastsuchanfrage mit dem SSH-Gasterfassungsskript aus dem Migrate to Containers-Repository auf GitHub aus.

    1. Laden Sie das Skript herunter:

      curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssh.sh
      chmod +x mcdc_collect_aws_guest_ssh.sh
      
    2. Führen Sie das Skript aus und speichern Sie die Ausgabe in einer Datei:

      ./mcdc_collect_aws_guest_ssh.sh --region REGION
      

      Ersetzen Sie dabei REGION durch die Region Ihrer EC2-VMs.

      Jedes Flag mit dem Namen -a oder --ssh-arg wird direkt an SSH übergeben. Führen Sie den folgenden Befehl aus, um die strenge Hostschlüsselauthentifizierung zu deaktivieren:

      ./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o StrictHostKeyChecking=no'
      

      Alle anderen Flags werden direkt an aws ssh describe-instances übergeben. Führen Sie den folgenden Befehl aus, um Daten aus einer bestimmten VM zu erfassen:

      ./mcdc_collect_aws_guest_ssm.sh --region REGION --instance-ids VM_ID
      

      Ersetzen Sie dabei VM_ID durch die VM-ID.

      Informationen zu allen zulässigen Flags finden Sie in der AWS-Dokumentation.

      Es ist möglich, einen Proxy für das Herstellen der Verbindung zu einer VM über die SSH-Option ProxyCommand zu verwenden. Führen Sie beispielsweise den folgenden Befehl aus, um einen vorhandenen socks5-Proxy für Port PROXY_PORT zu nutzen:

      ./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o ProxyCommand=nc -X 5 -x 127.0.0.1:PROXY_PORT %h %p'
      

      Ersetzen Sie dabei PROXY_PORT durch die Portnummer.

  4. Wenn Sie die Regeln für eingehenden Traffic in Schritt 1 angepasst haben, sollten Sie Ihre Änderungen rückgängig machen.

Offlinebewertungsbericht generieren

  • Sobald alle Daten erfasst sind, können Sie einen detaillierten HTML-Bericht erstellen:

    ./mcdc report --format html --full > REPORT_NAME.html
     

(Erweitert) Skripts an Ihre Anforderungen anpassen

Es ist möglich, dass keines der Skripts genau Ihren Anforderungen entspricht. Möglicherweise ist auf einigen Ihrer VMs entweder der SSM-Agent oder die Verbindung zur Instanz nicht installiert.

In solchen Fällen haben Sie normalerweise eine Standardmethode zum Herstellen einer Verbindung zu Ihren Maschinen. Wir empfehlen Ihnen, Skripts zu schreiben, mit denen Sie diese Methoden in großem Maßstab orchestrieren können. In einigen Fällen müssen Sie diese Skripts möglicherweise von Grund auf neu schreiben, in anderen Fällen können Sie jedoch auch die vorhandenen Skripts ändern.

Sie haben beispielsweise die Möglichkeit, das SSH-Erfassungsskript so zu ändern, dass anstelle von öffentlichen IP-Adressen private Adressen verwendet werden.

Die Skripts sind stark kommentiert, damit sie leicht zu verstehen sind.

(Erweitert) Orchestrierungsskript von Grund auf neu schreiben

So orchestrieren Sie die Gastsuchanfrage und Datenerfassung in großem Umfang:

  1. Identifizieren Sie alle VMs, von denen Sie erfassen möchten.
  2. Laden Sie das Gasterfassungsskript auf jede VM hoch. Linux- und Windows-VMS erfordern unterschiedliche Gastsammlungsskripts.
  3. Führen Sie das Gasterfassungsskript auf jeder VM aus.
  4. Laden Sie das erstellte Artefakt von jeder VM herunter.
  5. Importieren Sie das heruntergeladene Gasterfassungsskript in die mcdc-Befehlszeile.

Auch wenn Sie häufig einen Großteil davon von Grund auf neu schreiben müssen, können Ihnen in den Beispielskripts einige hilfreiche Bausteine helfen, die Sie bei einigen dieser Aufgaben unterstützen. Beispiel:

Nächste Schritte