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.
Ziele
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
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
Achten Sie darauf, dass die AWS-Befehlszeile die folgenden Berechtigungen hat:
- Kann
aws ssm describe-instance-information
aufrufen - Kann
aws ssm start-session
aufrufen
- Kann
SSH
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)
Achten Sie darauf, dass die AWS-Befehlszeile die folgenden Berechtigungen hat:
- Kann
aws ec2 describe-instances
aufrufen - Instanzverbindung
- Kann
mcdc
-Befehlszeile herunterladen
- Stellen Sie eine Verbindung zum Linux-Computer her:
ssh MACHINE_IP
Ersetzen Sie dabei MACHINE_IP durch die IP-Adresse des Linux-Computers.
- 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
- 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.
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.
Achten Sie darauf, dass alle VMs, die erfasst werden sollen, aktiviert sind.
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.
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.
Achten Sie darauf, dass alle VMs, von denen Sie erfassen möchten, aktiviert sind.
Führen Sie die Gastsuchanfrage mit dem SSH-Gasterfassungsskript aus dem Migrate to Containers-Repository auf GitHub aus.
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
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.
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:
- Identifizieren Sie alle VMs, von denen Sie erfassen möchten.
- Laden Sie das Gasterfassungsskript auf jede VM hoch. Linux- und Windows-VMS erfordern unterschiedliche Gastsammlungsskripts.
- Führen Sie das Gasterfassungsskript auf jeder VM aus.
- Laden Sie das erstellte Artefakt von jeder VM herunter.
- 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:
- Iteration über alle VMs in EC2 ausführen
- Windows- und Linux-Gasterfassungsskripts herunterladen
- Manchmal ist es nicht möglich, Dateien hoch- und herunterzuladen. In solchen Fällen ist es möglich, die Erfassungsskripts in die gesendeten Befehle aufzunehmen und die base64-codierten Artefakte in stdout zu schreiben. Das SSM-Erfassungsskript kann als nützliches Beispiel dienen.
- Das erfasste Artefakt in die
mcdc
-Befehlszeile importieren
Nächste Schritte
- Weitere Informationen zur
mcdc
-Befehlszeile - Skriptbeispiele ansehen
- Informationen zum Migrieren einer komplexeren Anwendung finden Sie in der Anleitung zur Migration einer Spring-Framework-Anwendung im GitHub-Repository für Migrate to Containers.
- Best Practices für die Planung