Uso del agente EC2Launch v2 para realizar tareas durante la inicialización de una instancia de EC2
Todas las instancias admitidas de Amazon EC2 que se lanzan desde las AMI para Windows Server 2022 y Windows Server 2025 de AWS incluyen el agente de inicialización EC2Launch v2 (EC2Launch.exe
) de manera predeterminada. También proporcionamos AMI de Windows Server 2016 y 2019 con EC2Launch v2 instalado como agente de inicialización predeterminado. Estas AMI se proporcionan de manera adicional a las AMI de Windows Server 2016 y 2019 que incluyen EC2Launch v1. Puede buscar AMI de Windows que incluyan EC2Launch v2 de manera predeterminada ingresando el siguiente prefijo en la búsqueda en la página AMIs de la consola de Amazon EC2: EC2LaunchV2-Windows_Server-*
.
Para comparar las características de la versión del agente de inicialización, consulte Comparación de los agentes de inicialización de Amazon EC2.
EC2Launch v2 realiza tareas durante el inicio de la instancia y se ejecuta si una instancia se detiene y posteriormente se inicia, o se reinicia. EC2Launch v2 también puede realizar tareas bajo demanda. Algunas de estas tareas se activan automáticamente, mientras que otras se deben activar manualmente. El servicio EC2Launch v2 admite todas las características de EC2Config y EC2Launch.
Este servicio utiliza un archivo de configuración para controlar su funcionamiento. Puede actualizar el archivo de configuración mediante una herramienta gráfica o editándolo directamente como un archivo .yml único (agent-config.yml
). Los binarios de servicio se encuentran en el directorio %ProgramFiles%\Amazon\EC2Launch
.
EC2Launch v2 publica registros de eventos de Windows para ayudarlo a solucionar errores y establecer desencadenadores. Para obtener más información, consulte Registros de eventos de Windows.
El agente EC2Launch v2 es compatible con las siguientes versiones del sistema operativo (SO) Windows Server:
Versiones de sistemas operativos compatibles
-
Windows Server 2025
-
Windows Server 2022
-
Windows Server 2019 (canal de servicio a largo plazo y canal semestral)
-
Windows Server 2016
Conceptos de EC2Launch v2
Es útil entender los siguientes conceptos al considerar EC2Launch v2.
Tarea
Puede invocar una tarea para que realice una acción en una instancia. Se pueden configurar las tareas en el archivo agent-config.yml
o a través de los datos de usuario. Para obtener una lista de las tareas disponibles para EC2Launch v2, consulte Tareas de EC2Launch v2. Para obtener información y el esquema sobre la configuración de tareas, consulte Configuración de tareas de EC2Launch v2.
Escenario
Una etapa es una agrupación lógica de tareas que ejecuta el agente EC2Launch v2. Algunas tareas solo pueden ejecutarse en una etapa específica. Otras se pueden ejecutar en varias etapas. Al usar agent-config.yml
, debe especificar una lista de etapas y una lista de tareas a ejecutar dentro de cada etapa.
El servicio ejecuta las etapas en el siguiente orden:
- Fase 1: Iniciar
- Fase 2: Red
- Fase 3: PreReady
- Windows está listo
-
Una vez finalizada la etapa de preparación previa, el servicio envía el mensaje
Windows is ready
a la consola Amazon EC2. - Etapa 4: PostReady
-
Los datos del usuario se ejecutan durante la etapa PostReady. Algunas versiones del script se ejecutan antes de la etapa PostReady del archivo
agent-config.yml
y otras después, de la siguiente manera:- Antes de
agent-config.yml
-
-
Datos de usuario de YAML versión 1.1
-
Datos de usuario XML
-
- Después de
agent-config.yml
-
-
Datos de usuario de YAML, versión 1.0 (versión antigua para compatibilidad con versiones anteriores)
-
- Antes de
Para ver etapas y tareas de ejemplo, consulte Ejemplo: agent-config.yml.
Cuando utilice datos de usuario, debe especificar una lista de tareas para que las ejecute el agente de inicialización. El escenario está implícito. Para ver tareas de ejemplo, consulte Ejemplo: datos de usuario.
EC2Launch v2 ejecuta la lista de tareas en el orden en que usted especifique en agent-config.yml
y en los datos de usuario. Las etapas se ejecutan de forma secuencial. La siguiente etapa comienza una vez finalizada la anterior. Las tareas se ejecutan de forma secuencial.
Frecuencia
La frecuencia de las tareas determina cuándo deben ejecutarse las tareas, en función del contexto de arranque. La mayoría de las tareas solo tienen una frecuencia permitida. Puede especificar la frecuencia de las tareas de executeScript
.
Verá las siguientes frecuencias en Configuración de tareas de EC2Launch v2.
-
Una vez: la tarea se ejecuta una vez, cuando la AMI se ha arrancado por primera vez (Sysprep terminado).
-
Siempre: la tarea se ejecuta cada vez que se ejecuta el agente de inicialización. El agente de inicialización se ejecuta cuando:
-
una instancia se inicia o se reinicia
-
el servicio EC2Launch se ejecuta
-
EC2Launch.exe run
se invoca
-
agent-config
agent-config
es un archivo que se encuentra en la carpeta de configuración de EC2Launch v2. Incluye configuración para las etapas de arranque, red, PreReady y PostReady. Este archivo se utiliza con el objetivo de especificar la configuración de la instancia para las tareas que deben ejecutarse cuando la AMI se arranca por primera vez o las veces siguientes.
De forma predeterminada, la instalación de EC2Launch v2 instala un archivo agent-config
que incluye configuraciones recomendadas que se utilizan en AMI estándar de Amazon Windows. Puede actualizar el archivo de configuración para modificar la experiencia de arranque predeterminada de la AMI que EC2Launch v2 especifique.
Datos de usuario
Los datos de usuario son datos que se pueden configurar al iniciar una instancia. Puede actualizar los datos de usuario para cambiar dinámicamente el modo en que se configuran las AMI personalizadas o las AMI de inicio rápido. EC2Launch v2 admite una entrada de datos de usuario de 60 KB. Los datos de usuario incluyen sólo la etapa UserData y, por lo tanto, se ejecutan después del archivo agent-config
. Puede introducir datos de usuario al iniciar una instancia utilizando el asistente de inicialización de instancias o modificar los datos de usuario desde la consola de EC2. Para obtener más información sobre el trabajo con datos de usuarios, consulte Cómo gestiona Amazon EC2 los datos de usuario de las instancias de Windows.
Información general sobre las tareas de EC2Launch v2
EC2Launch v2 puede realizar las siguientes tareas en cada arranque:
-
Configure fondos de pantalla nuevos y personalizados opcionalmente en los que se representen información sobre la instancia.
-
Establezca los atributos de la cuenta de administrador que se crea en el equipo local.
-
Agregue sufijos de DNS a la lista de sufijos de búsqueda. Sólo se agregan a la lista los sufijos que aún no existen.
-
Establezca las letras de unidad para los volúmenes adicionales y amplíelas para utilizar el espacio disponible.
-
Escriba archivos desde la configuración en el disco.
-
Ejecute los scripts especificados en el archivo de configuración de EC2Launch v2 o desde
user-data
. Los scripts deuser-data
pueden ser texto plano o comprimidos y proporcionarse en formato base64. -
Ejecute un programa con argumentos dados.
-
Establecer el nombre del equipo.
-
Enviar información de instancia a la consola de Amazon EC2.
-
Envía la huella digital del certificado RDP a la consola de Amazon EC2.
-
Ampliar dinámicamente la partición del sistema operativo para incluir cualquier espacio sin particionar.
-
Ejecute los datos del usuario. Para obtener más información acerca de cómo especificar datos de usuario, consulte Configuración de tareas de EC2Launch v2.
-
Establezca rutas estáticas no persistentes para alcanzar el servicio de metadatos y los servidores AWS KMS.
-
Establezca las particiones que no sean de arranque en
mbr
ogpt
. -
Inicie el servicio Systems Manager tras Sysprep.
-
Optimice la configuración de ENA.
-
Habilite OpenSSH para versiones posteriores de Windows.
-
Habilite tramas gigantes.
-
Establezca Sysprep para que se ejecute con EC2Launch v2.
-
Publique registros de eventos de Windows.
Estructura del directorio de EC2Launch v2
EC2Launch v2 debe instalarse en los siguientes directorios:
-
Binarios de servicio:
%ProgramFiles%\Amazon\EC2Launch
-
Datos del servicio (configuración, archivos de registro y archivos de estado):
%ProgramData%\Amazon\EC2Launch
nota
De manera predeterminada, Windows oculta los archivos y las carpetas en C:\ProgramData
. Para ver los directorios y los archivos de EC2Launch v2, debe ingresar la ruta en Windows Explorer o cambiar las propiedades de la carpeta para mostrar los archivos y las carpetas ocultos.
El directorio %ProgramFiles%\Amazon\EC2Launch
contiene binarios y bibliotecas auxiliares. Incluye los siguientes subdirectorios:
-
settings
-
EC2LaunchSettingsUI.exe
: interfaz de usuario para modificar el archivoagent-config.yml
-
YamlDotNet.dll
: DLL para admitir algunas operaciones en la interfaz de usuario
-
-
tools
-
ebsnvme-id.exe
: herramienta para examinar los metadatos de los volúmenes de EBS en la instancia -
AWSAcpiSpcrReader.exe
: herramienta para determinar el puerto COM correcto a usar -
EC2LaunchEventMessage.dll
: DLL para admitir el registro de eventos de Windows para EC2Launch.
-
-
service
-
EC2LaunchService.exe
— Ejecutable de servicio de Windows que se inicia cuando el agente de inicialización se ejecuta como un servicio.
-
-
EC2Launch.exe
: ejecutable principal de EC2Launch -
EC2LaunchAgentAttribution.txt
: atribución del código utilizado en EC2 Launch
El directorio %ProgramData%\Amazon\EC2Launch
contiene los subdirectorios siguientes. Todos los datos producidos por el servicio, incluidos los registros, la configuración y el estado, se almacenan en este directorio.
-
config
: configuraciónEl archivo de configuración del servicio se almacena en este directorio como
agent-config.yml
. Este archivo se puede actualizar para modificar, agregar o eliminar tareas predeterminadas ejecutadas por el servicio. El permiso para crear archivos en este directorio se encuentra restringido a la cuenta de administrador a fin de evitar la escalada de privilegios. -
log
: registros de instanciasLos registros del servicio (
agent.log
), la consola (console.log
), el rendimiento (bench.log
), los errores (err.log
) y la telemetría (telemetry.log
) se almacenan en este directorio. Los archivos de registro se anexan en las ejecuciones posteriores del servicio. -
state
: datos del estado del servicioEl estado que utiliza el servicio para determinar qué tareas deben ejecutarse se almacena aquí. Hay un archivo
.run-once
que indica si el servicio ya se ejecutó después de Sysprep (por lo que las tareas con una frecuencia de una vez se omitirán en la siguiente ejecución). Este subdirectorio incluye unstate.json
yprevious-state.json
para realizar un seguimiento del estado de cada tarea. -
sysprep
: SysprepEste directorio contiene archivos que se utilizan para determinar qué operaciones debe realizar Sysprep cuando crea una AMI de Windows personalizada que se puede reutilizar.
-
wallpaper
: fondo de pantallaLas imágenes de este fondo de pantalla se almacenan en este directorio.
Telemetría
La telemetría es información adicional que ayuda a AWS a comprender mejor sus requisitos, diagnosticar problemas y ofrecer recursos para mejorar su experiencia con Servicios de AWS.
EC2Launch v2 versión 2.0.592
y posteriores recopilan telemetría, como métricas de uso y errores. Estos datos se recopilan de la instancia de Amazon EC2 en la que se ejecuta EC2Launch v2. Esto incluye todas las AMI de Windows que son propiedad de AWS.
EC2Launch v2 recopila los siguientes tipos de telemetría:
-
Información de uso: comandos del agente, método de instalación y frecuencia de ejecución programada.
-
Errores e información de diagnóstico: códigos de error de instalación del agente, códigos de error de ejecución y pilas de llamadas con error.
Ejemplos de datos recopilados:
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
La telemetría se encuentra habilitada de forma predeterminada. Puede desactivar la recopilación de telemetría en cualquier momento. Si la telemetría se encuentra habilitada, EC2Launch v2 envía datos de telemetría sin notificaciones adicionales de los clientes.
Visibilidad de telemetría
Cuando la telemetría se encuentra habilitada, aparece en el resultado de la consola de Amazon EC2 de la siguiente manera.
2021/07/15 21:44:12Z: Telemetry: <Data>
Desactivar la telemetría en una instancia
Para desactivar la telemetría en una sola instancia, puede definir una variable de entorno del sistema o utilizar el MSI a fin de modificar la instalación.
Para desactivar la telemetría al establecer una variable de entorno de sistema, ejecute el siguiente comando como administrador.
setx /M EC2LAUNCH_TELEMETRY 0
Para desactivar la telemetría mediante el MSI, ejecute el siguiente comando después de descargar el MSI.
msiexec /i ".\AmazonEC2Launch.msi" Remove="Telemetry" /q