Den EC2Launch-v2-Agenten verwenden, um Aufgaben während des Starts einer EC2-Windows-Instance auszuführen
Alle unterstützten Instances von Amazon EC2, die von AWS-Windows-Server-2022- und Windows-Server-2025-AMIs gestartet werden, enthalten standardmäßig den EC2Launch-v2-Start-Agenten (EC2Launch.exe
). Darüber hinaus bieten wir AMIs für Windows Server 2016 und 2019 an, bei denen EC2Launch v2 als Standard-Launch-Agent installiert ist. Diese AMIs werden zusätzlich zu den AMIs für Windows Server 2016 und 2019 bereitgestellt, die EC2Launch v1 enthalten. Sie können nach Windows-AMIs suchen, die standardmäßig EC2Launch v2 enthalten, indem Sie in der Suche auf der Seite AMIs in der Amazon-EC2-Konsole das folgende Präfix eingeben: EC2LaunchV2-Windows_Server-*
.
Einen Vergleich der Feature der Start-Agent-Version finden Sie unter Amazon-EC2-Start-Agenten vergleichen.
EC2Launch v2 ist ein Service, der während des Instance-Startups Aufgaben ausführt und ausgeführt wird, wenn eine Instance gestoppt und später gestartet oder neu gestartet wird. Außerdem kann EC2Launch v2 nach Bedarf Aufgaben ausführen. Einige dieser Aufgaben sind automatisch aktiviert, während andere manuell aktiviert werden müssen. Der EC2Launch v2-Service unterstützt alle Features von EC2Config und EC2Launch.
Dieser Service verwendet eine Konfigurationsdatei zur Steuerung seines Betriebs. Sie können die Konfigurationsdatei entweder mit einem grafischen Tool aktualisieren oder direkt als einzelne .yml-Datei (agent-config.yml
) bearbeiten. Die Binärdateien des Services befinden sich im %ProgramFiles%\Amazon\EC2Launch
-Verzeichnis.
EC2Launch v2 veröffentlicht Windows-Ereignisprotokolle, um Ihnen bei der Fehlerbehebung und beim Festlegen von Auslösern zu helfen. Weitere Informationen finden Sie unter Windows-Ereignisprotokolle.
Der EC2Launch-v2-Agent unterstützt die folgenden Versionen für das Betriebssystem Windows Server (OS):
Unterstützte OS-Versionen
-
Windows Server 2025
-
Windows Server 2022
-
Windows Server 2019 (Langzeitwartungskanal und halbjährlicher Kanal)
-
Windows Server 2016
Konzepte für EC2Launch v2
Die folgenden Konzepte sind nützlich für die Verwendung von EC2Launch v2.
Aufgabe
Sie können eine Aufgabe aufrufen, um eine Aktion für eine Instance durchzuführen. Sie können Aufgaben in der agent-config.yml
-Datei oder über Benutzerdaten konfigurieren. Eine Liste der verfügbaren Aufgaben für EC2Launch v2 finden Sie unter EC2Launch v2-Aufgaben. Schemata und Einzelheiten zur Aufgabenkonfiguration finden Sie unter Aufgabenkonfiguration in EC2Launch v2.
Stufe
Eine Stufe ist eine logische Gruppierung von Aufgaben, die vom EC2Launch-v2-Agenten ausgeführt werden. Einige Aufgaben können nur in einer bestimmten Phase ausgeführt werden. Andere können in mehreren Phasen ausgeführt werden. Bei der Verwendung von agent-config.yml
müssen Sie eine Liste von Stufen und eine Liste von Aufgaben angeben, die innerhalb jeder Stufe ausgeführt werden sollen.
Der Service führt die Phasen in der folgenden Reihenfolge aus:
- Phase 1: Boot
- Phase 2: Netzwerk
- Phase 3: PreReady
- Windows ist bereit
-
Nach Abschluss der PreReady-Phase sendet der Service die
Windows is ready
-Nachricht an die Amazon-EC2-Konsole. - Stufe 4: PostReady
-
Benutzerdaten werden während der PostReady-Stufe ausgeführt. Einige Skriptversionen werden vor der
agent-config.yml
-Datei in der PostReady-Stufe ausgeführt, andere danach, wie folgt:- Vor
agent-config.yml
-
-
YAML-Benutzerdaten-Version 1.1
-
XML-Benutzerdaten
-
- Nach
agent-config.yml
-
-
YAML-Benutzerdatenversion 1.0 (Legacy-Version für Abwärtskompatibilität)
-
- Vor
Beispiele für Phasen und Aufgaben finden Sie unter Beispiel: agent-config.yml.
Wenn Sie Benutzerdaten verwenden, müssen Sie eine Liste von Aufgaben angeben, die der Startagent ausführen soll. Die Phase ist impliziert. Beispiele für Aufgaben finden Sie unter Beispiel: Benutzerdaten.
EC2Launch v2 führt die Liste der Aufgaben in der Reihenfolge aus, die Sie in agent-config.yml
und in den Benutzerdaten angeben. Die Phasen werden der Reihe nach ausgeführt. Die nächste Phase beginnt, nachdem die vorherige Phase abgeschlossen ist. Aufgaben werden nacheinander ausgeführt.
Häufigkeit
Die Frequenz der Aufgaben bestimmt, wann Aufgaben ausgeführt werden sollen, abhängig vom Startkontext. Die meisten Aufgaben haben nur eine zulässige Frequenz. Sie können eine Frequenz für executeScript
-Aufgaben festlegen.
Sie können die folgenden Frequenzen in der Aufgabenkonfiguration in EC2Launch v2 anzeigen.
-
Einmal – Die Aufgabe wird einmal ausgeführt, wenn das AMI zum ersten Mal gestartet wurde (Sysprep abgeschlossen).
-
Immer – Die Aufgabe wird jedes Mal ausgeführt, wenn der Startagent ausgeführt wird. Der Launch-Agent wird ausgeführt, wenn:
-
eine Instance startet oder neu startet
-
der EC2Launch-Service läuft
-
EC2Launch.exe run
wird aufgerufen
-
agent-config
agent-config
ist eine Datei, die sich im Konfigurationsordner für EC2Launch v2 befindet. Diese umfasst die Konfiguration für die Start-, Netzwerk-, PreReady- und PostReady-Stufen. Diese Datei wird verwendet, um die Instance-Konfiguration für Aufgaben festzulegen, die beim ersten oder späteren Start des AMI ausgeführt werden sollen.
Standardmäßig wird bei der EC2Launch v2-Installation eine agent-config
-Datei installiert, die empfohlene Konfigurationen enthält, die in Standard-Amazon-Windows-AMIs verwendet werden. Sie können die Konfigurationsdatei aktualisieren, um die Standardstartumgebung für Ihr AMI zu ändern, die EC2Launch v2 angibt.
Benutzerdaten
Benutzerdaten sind Daten, die beim Starten einer Instance konfiguriert werden können. Sie können Benutzerdaten aktualisieren, um dynamisch zu ändern, wie benutzerdefinierte AMIs oder Schnellstart-AMIs konfiguriert werden. EC2Launch-v2-unterstützt eine Eingabelänge von 60 KB. Benutzerdaten beinhalten nur die UserData-Phase und werden daher nach der agent-config
-Datei ausgeführt. Sie können Benutzerdaten eingeben, wenn Sie eine Instance mit dem Launch Instance Wizard starten oder Sie können Benutzerdaten über die EC2-Konsole ändern. Weitere Informationen zum Arbeiten mit Benutzerdaten finden Sie unter So verarbeitet Amazon EC2 Benutzerdaten für Linux-Instances.
Überblick über EC2Launch-v2-Aufgaben
EC2Launch v2 kann bei jedem Start die folgenden Aufgaben ausführen:
-
Einrichten eines neuen und optional angepassten Hintergrundbildes, das Informationen über die Instance wiedergibt.
-
Festlegen der Attribute für das Administratorkonto, das auf dem lokalen Computer erstellt wird.
-
Hinzufügen von DNS-Suffixen zur Liste der Suffixe. Nur Suffixe, die noch nicht vorhanden sind, werden der Liste hinzugefügt.
-
Festlegen von Laufwerkbuchstaben für zusätzliche Volumes und deren Erweiterung, um den verfügbaren Speicherplatz zu nutzen.
-
Schreiben Sie Dateien aus der Konfiguration auf die Festplatte.
-
Führen Sie die in der EC2Launch-v2-Konfigurationsdatei angegebenen Skripts oder von
user-data
aus. Skripts vonuser-data
können Klartext oder gezippt sein und als Base64-Format bereitgestellt werden. -
Führen Sie ein Programm mit angegebenen Argumenten aus.
-
Erstellen des Computer-Namens.
-
Senden von Instance-Informationen an die Amazon EC2-Konsole.
-
Senden Sie den Fingerabdruck des RDP-Zertifikats an die Amazon-EC2-Konsole.
-
Erweiterung der Betriebssystempartition, um den gesamten nicht partitionierten Speicherplatz mit einzuschließen.
-
Führen Sie Benutzerdaten aus. Weitere Informationen zur Angabe von Benutzerdaten finden Sie unter Aufgabenkonfiguration in EC2Launch v2.
-
Legen Sie nicht-persistente statische Routen fest, um den Metadatendienst und die AWS KMS-Server zu erreichen.
-
Festlegen von Nicht-Boot-Partitionen auf
mbr
odergpt
. -
Starten Sie den Systems-Manager-Service nach Sysprep.
-
Optimieren der ENA-Einstellungen.
-
Aktivieren von OpenSSH für spätere Windows-Versionen.
-
Aktivieren von Jumbo-Frames.
-
Einstellen von Sysprep so ein, dass es mit EC2Launch v2 ausgeführt wird.
-
Veröffentlichen von Windows-Ereignisprotokollen.
EC2Launch v2-Verzeichnisstruktur
EC2Launch v2 sollte in den folgenden Verzeichnissen installiert werden:
-
Service-Binärdateien:
%ProgramFiles%\Amazon\EC2Launch
-
Servicedaten (Einstellungen, Protokolldateien und Statusdateien):
%ProgramData%\Amazon\EC2Launch
Anmerkung
Windows blendet Dateien und Ordner unter C:\ProgramData
standardmäßig aus. Um die EC2Launch v2-Verzeichnisse und -Dateien anzuzeigen, müssen Sie entweder den Pfad im Windows Explorer eingeben oder die Ordnereigenschaften so ändern, dass ausgeblendete Dateien und Ordner angezeigt werden.
Das %ProgramFiles%\Amazon\EC2Launch
-Verzeichnis enthält Binärdateien und unterstützende Bibliotheken. Es enthält die folgenden Unterverzeichnisse:
-
settings
-
EC2LaunchSettingsUI.exe
— Benutzeroberfläche zum Ändern deragent-config.yml
-Datei -
YamlDotNet.dll
— DLL zur Unterstützung einiger Operationen der Benutzeroberfläche
-
-
tools
-
ebsnvme-id.exe
— Werkzeug zum Überprüfen der Metadaten der EBS-Volumes auf der Instance -
AWSAcpiSpcrReader.exe
— Werkzeug zur Bestimmung des korrekten zu verwendenden COM-Ports -
EC2LaunchEventMessage.dll
— DLL zur Unterstützung der Windows-Ereignisprotokollierung für EC2Launch.
-
-
service
-
EC2LaunchService.exe
— Ausführbare Windows-Dienstdatei, die gestartet wird, wenn der Launch-Agent als Dienst ausgeführt wird.
-
-
EC2Launch.exe
— zentrale ausführbare EC2Launch-Datei -
EC2LaunchAgentAttribution.txt
— Zuweisung für Code, der innerhalb von EC2 Launch verwendet wird
Das Verzeichnis %ProgramData%\Amazon\EC2Launch
enthält die folgenden Unterverzeichnisse. Alle von dem Service erzeugten Daten, einschließlich Protokolle, Konfiguration und Status, werden in diesem Verzeichnis gespeichert.
-
config
– KonfigurationDie Servicekonfigurationsdatei wird in diesem Verzeichnis als
agent-config.yml
gespeichert. Diese Datei kann aktualisiert werden, um Standardaufgaben zu ändern, hinzuzufügen oder zu entfernen, die von dem Service ausgeführt werden. Die Berechtigung zum Erstellen von Dateien in diesem Verzeichnis ist auf das Administratorkonto beschränkt, um die Eskalation von Berechtigungen zu verhindern. -
log
– Instance-ProtokolleProtokolle für den Service (
agent.log
), die Konsole (console.log
), die Leistung (bench.log
), Fehler (err.log
) und Telemetrie (telemetry.log
) werden in diesem Verzeichnis gespeichert. Protokolldateien werden bei nachfolgenden Ausführungen des Services angehängt. -
state
– ServicestatusdatenHier wird der Status gespeichert, mit dem der Service ermittelt wird, welche Aufgaben ausgeführt werden sollen. Es gibt eine
.run-once
-Datei, die angibt, ob der Service bereits nach Sysprep ausgeführt wurde (so dass Aufgaben mit der Häufigkeit "einmal" bei der nächsten Ausführung übersprungen werden). Dieses Unterverzeichnis enthält einstate.json
undprevious-state.json
, um den Status jeder Aufgabe zu verfolgen. -
sysprep
– SysprepDieses Verzeichnis enthält Dateien, die verwendet werden, um zu bestimmen, welche Operationen von Sysprep ausgeführt werden sollen, wenn ein angepasstes Windows-AMI erstellt wird, das wiederverwendet werden kann.
-
wallpaper
– HintergrundbildDiese Hintergrundbilder werden in diesem Verzeichnis gespeichert.
Telemetrie
Bei Telemetrie handelt es sich um zusätzliche Informationen, die AWS dabei helfen, Ihre Anforderungen besser zu verstehen, Probleme zu diagnostizieren und Features bereitzustellen, um Ihre Erfahrung mit AWS-Services zu verbessern.
EC2Launch v2-Version 2.0.592
und später sammeln Telemetrie, wie Nutzungsmetriken und Fehler. Diese Daten werden von der Amazon-EC2-Instance erfasst, auf der EC2Launch v2 ausgeführt wird. Dies umfasst alle Windows-AMIs, die AWS gehören.
EC2Launch v2 bietet folgende Telemetrie-Typen:
-
Nutzungsinformationen – Agent-Befehle, Installationsmethode und geplante Ausführungsfrequenz.
-
Fehler und Diagnoseinformationen – Agent-Installation-Fehlercodes, Ausführungs-Fehlercodes und Fehleraufrufstapel.
Beispiele für die gesammelten Daten:
2021/07/15 21:44:12Z: EC2LaunchTelemetry: IsAgentScheduledPerBoot=true 2021/07/15 21:44:12Z: EC2LaunchTelemetry: IsUserDataScheduledPerBoot=true 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentCommandCode=1 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentCommandErrorCode=5 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentInstallCode=2 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentInstallErrorCode=0
Die Telemetrie ist standardmäßig aktiviert. Sie können die Telemetriesammlung jederzeit deaktivieren. Wenn Telemetrie aktiviert ist, sendet EC2Launch v2 Telemetriedaten ohne zusätzliche Kundenbenachrichtigungen.
Telemetrie-Sichtbarkeit
Wenn die Telemetrie aktiviert ist, wird sie in der Amazon-EC2-Konsolenausgabe wie folgt angezeigt.
2021/07/15 21:44:12Z: Telemetry: <Data>
Deaktivieren der Telemetrie auf einer Instance
Um die Telemetrie für eine einzelne Instance zu deaktivieren, können Sie entweder eine Systemumgebungsvariable festlegen oder die Installation mit dem MSI ändern.
Um Telemetrie durch Festlegen einer Systemumgebungsvariablen zu deaktivieren, führen Sie den folgenden Befehl als Administrator aus.
setx /M EC2LAUNCH_TELEMETRY 0
Um die Telemetrie mithilfe der MSI zu deaktivieren, führen Sie den folgenden Befehl aus, nachdem Sie die MSI-Datei herunterladen.
msiexec /i ".\AmazonEC2Launch.msi" Remove="Telemetry" /q