iniciar instancias desde una plantilla de inicialización - Amazon Elastic Compute Cloud

iniciar instancias desde una plantilla de inicialización

Las plantillas de inicialización son compatibles con varios servicios de inicialización de instancias. En este tema se describe cómo utilizar una plantilla de inicialización al iniciar una instancia con el asistente de inicialización de EC2, Amazon EC2 Auto Scaling, una EC2 Fleet o una flota de spot.

iniciar una instancia desde una plantilla de inicialización

Puede usar los parámetros incluidos en una plantilla de inicialización para iniciar una instancia. También puede omitir o añadir parámetros de inicialización antes de iniciar la instancia.

A las instancias que se inician mediante una plantilla de inicialización se le asignan automáticamente dos etiquetas con las claves aws:ec2launchtemplate:id y aws:ec2launchtemplate:version. Estas etiquetas no se pueden eliminar ni editar.

Console
Para iniciar una instancia desde una plantilla de inicialización mediante la consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, elija Launch Templates (Plantillas de inicialización).

  3. Seleccione la plantilla de inicialización que desee y elija Actions (Acciones), seguido de Launch instance from template (iniciar instancia desde una plantilla).

  4. En Source template version (Versión de la plantilla de origen), seleccione la versión de la plantilla de inicialización que desee utilizar.

  5. En Number of instances (Número de instancias), especifique el número de instancias que desea iniciar.

  6. (Opcional) Puede omitir o añadir parámetros de plantillas de inicialización cambiándolos o incluyéndolos en la sección Instance details (Detalles de la instancia).

  7. Elija Launch instance from template (iniciar instancia desde una plantilla).

AWS CLI
inicialización de una instancia desde una plantilla de inicialización mediante la AWS CLI
  • Utilice el comando run-instances y especifique el parámetro --launch-template. Opcionalmente, seleccione la versión de la plantilla de inicialización que usar. Si no especifica la versión, se usa la predeterminada.

    aws ec2 run-instances \ --launch-template LaunchTemplateId=lt-0abcd290751193123,Version=1
  • Para omitir un parámetro de plantilla de inicialización, especifíquelo en el comando run-instances. En el siguiente ejemplo, se omite el tipo de instancia especificado en la plantilla de inicialización (de haberla).

    aws ec2 run-instances \ --launch-template LaunchTemplateId=lt-0abcd290751193123 \ --instance-type t2.small
  • Si especifica un parámetro anidado parte de una estructura compleja, la instancia se inicia mediante una estructura completa tal y como se especifica en la plantilla de inicialización, además de con cualquier otro parámetro anidado que especifique.

    En el siguiente ejemplo, la instancia se inicia con la etiqueta Owner=TeamA, entre otras especificadas en la plantilla de inicialización. Si la plantilla de inicialización ya incluye una etiqueta con una clave de Owner, el valor se sustituye por TeamA.

    aws ec2 run-instances \ --launch-template LaunchTemplateId=lt-0abcd290751193123 \ --tag-specifications "ResourceType=instance,Tags=[{Key=Owner,Value=TeamA}]"

    En el siguiente ejemplo, la instancia se inicia con un volumen con el nombre de dispositivo /dev/xvdb, entre otros mapeos de dispositivos de bloques especificados en la plantilla de inicialización. Si la plantilla de inicialización ya incluye un volumen definido en /dev/xvdb, sus valores se sustituyen por los especificados.

    aws ec2 run-instances \ --launch-template LaunchTemplateId=lt-0abcd290751193123 \ --block-device-mappings "DeviceName=/dev/xvdb,Ebs={VolumeSize=20,VolumeType=gp2}"

Si se produce un error al iniciar la instancia o el estado pasa inmediatamente a terminated en lugar de running, consulte Solución de problemas de inicialización de instancias de Amazon EC2.

PowerShell
inicialización de una instancia desde una plantilla de inicialización mediante la AWS Tools for PowerShell
  • Use el comando Stop-EC2Instance y especifique el parámetro -LaunchTemplate. Opcionalmente, seleccione la versión de la plantilla de inicialización que usar. Si no especifica la versión, se usa la predeterminada.

    Import-Module AWS.Tools.EC2 New-EC2Instance ` -LaunchTemplate ( New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ LaunchTemplateId = 'lt-0abcd290751193123'; Version = '4' } )
  • Para anular un parámetro de plantilla de inicialización, especifique el parámetro en el comando New-EC2Instance. En el siguiente ejemplo, se omite el tipo de instancia especificado en la plantilla de inicialización (de haberla).

    Import-Module AWS.Tools.EC2 New-EC2Instance ` -InstanceType t4g.small ` -LaunchTemplate ( New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ LaunchTemplateId = 'lt-0abcd290751193123'; Version = '4' } )
  • Si especifica un parámetro anidado parte de una estructura compleja, la instancia se inicia mediante una estructura completa tal y como se especifica en la plantilla de inicialización, además de con cualquier otro parámetro anidado que especifique.

    En el siguiente ejemplo, la instancia se inicia con la etiqueta Owner=TeamA, entre otras especificadas en la plantilla de inicialización. Si la plantilla de inicialización ya incluye una etiqueta con una clave de Owner, el valor se sustituye por TeamA.

    Import-Module AWS.Tools.EC2 New-EC2Instance ` -InstanceType t4g.small ` -LaunchTemplate ( New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ LaunchTemplateId = 'lt-0abcd290751193123'; Version = '4' } ) ` -TagSpecification ( New-Object -TypeName Amazon.EC2.Model.TagSpecification -Property @{ ResourceType = 'instance'; Tags = @( @{key = "Owner"; value = "TeamA" }, @{key = "Department"; value = "Operations" } ) } )

    En el siguiente ejemplo, la instancia se inicia con un volumen con el nombre de dispositivo /dev/xvdb, entre otros mapeos de dispositivos de bloques especificados en la plantilla de inicialización. Si la plantilla de inicialización ya incluye un volumen definido en /dev/xvdb, sus valores se sustituyen por los especificados.

    Import-Module AWS.Tools.EC2 New-EC2Instance ` -InstanceType t4g.small ` -LaunchTemplate ( New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ LaunchTemplateId = 'lt-0abcd290751193123'; Version = '4' } ) ` -BlockDeviceMapping ( New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping -Property @{ DeviceName = '/dev/xvdb'; EBS = ( New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice -Property @{ VolumeSize = 25; VolumeType = 'gp3' } ) } )

Si se produce un error al iniciar la instancia o el estado pasa inmediatamente a terminated en lugar de running, consulte Solución de problemas de inicialización de instancias de Amazon EC2.

Usar plantillas de inicialización con Amazon EC2 Auto Scaling

Puede crear un grupo de Auto Scaling y especificar una plantilla de inicialización para usarla con dicho grupo. Cuando Amazon EC2 Auto Scaling inicia instancias en el grupo de Auto Scaling, utiliza los parámetros de inicialización definidos en la plantilla de inicialización asociada. Para obtener más información, consulte Create a launch template for an Auto Scaling group y Create a launch template using advanced settings en la Guía del usuario de Amazon EC2 Auto Scaling.

Para poder crear un grupo de escalado automático con una plantilla de inicialización, debe crear una plantilla que incluya los parámetros necesarios para iniciar una instancia de EC2 en un grupo de escalado automático, como el ID de la AMI. La consola proporciona orientación para ayudarlo a crear una plantilla que pueda utilizar con Amazon EC2 Auto Scaling.

Para crear una plantilla de inicialización para utilizarla con Auto Scaling y la consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, elija Launch Templates (Plantillas de inicialización) y, a continuación, Create launch template (Crear plantilla de inicialización).

  3. En Nombre de plantilla de inicialización, introduzca un nombre descriptivo para la plantilla.

  4. En Template version description (Descripción de la versión de plantilla), ingrese una breve descripción para esta versión de la plantilla de inicialización.

  5. En Auto Scaling guidance (Orientación sobre Auto Scaling), active la casilla de verificación para que Amazon EC2 proporcione orientación que le ayude a crear una plantilla para usarla con Auto Scaling.

  6. Modifique los parámetros de inicialización según sea necesario. Debido a que ha seleccionado la orientación sobre Auto Scaling, algunos campos son obligatorios y otros no están disponibles. Para obtener más información sobre cómo configurar los parámetros de inicialización de Amazon EC2 Auto Scaling, consulte Create a launch template for an Auto Scaling group y Crear una plantilla de inicialización mediante la configuración avanzada en la Guía del usuario de Amazon EC2 Auto Scaling.

  7. Elija Crear plantilla de inicialización.

  8. (Opcional) Para crear un grupo de escalado automático con esta plantilla de inicialización, en la página Next steps (Siguientes pasos) elija Create Auto Scaling group (Crear grupo de escalado automático).

Para ver ejemplos en los que se muestre cómo usar la AWS CLI para crear plantillas de inicialización con varias combinaciones de parámetros, consulte Examples for creating and managing launch templates with the AWS Command Line Interface (AWS CLI) en la Guía del usuario de Amazon EC2 Auto Scaling.

Para crear o actualizar un grupo de escalado automático con una plantilla de inicialización mediante la AWS CLI

Para obtener más información sobre cómo crear o actualizar un grupo de escalado automático mediante una plantilla de inicialización, consulte los siguientes temas en la Guía del usuario de Amazon EC2 Auto Scaling.

Usar plantillas de inicialización con EC2 Fleet

Puede crear una solicitud de EC2 Fleet y especificar una plantilla de inicialización en la configuración de la instancia. Cuando Amazon EC2 atiende la solicitud de EC2 Fleet, utiliza los parámetros de inicialización definidos en la plantilla de inicialización asociada. Puede omitir algunos de los parámetros especificados en la plantilla de inicialización.

Para obtener más información, consulte Crear una flota de EC2.

Para crear una EC2 Fleet con una plantilla de inicialización mediante la AWS CLI
  • Utilice el comando create-fleet. Use el parámetro --launch-template-configs para especificar la plantilla de inicialización y cualquier otra omisión para la misma.

Usar plantillas de inicialización con la flota de spot

Puede crear una solicitud de flota de spot y especificar una plantilla de inicialización en la configuración de la instancia. Cuando Amazon EC2 atiende la solicitud de flota de spot, utiliza los parámetros de inicialización definidos en la plantilla de inicialización asociada. Puede omitir algunos de los parámetros especificados en la plantilla de inicialización.

Para obtener más información, consulte Creación de una solicitud de flota de spot.

Para crear una solicitud de flota de spot con una plantilla de inicialización mediante la consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, elija Solicitudes de spot.

  3. Elija Request Spot Instances (Solicitar instancias de spot).

  4. En Launch parameters (Parámetros de inicialización), seleccione Use a launch template (Utilizar una plantilla de inicialización).

  5. En Launch template (Plantilla de inicialización), elija una plantilla de inicialización y, a continuación, en el campo de la derecha, elija la versión de la plantilla de inicialización.

  6. Para configurar su flota de spot, seleccione diferentes opciones en esta pantalla. Para obtener más información sobre las opciones, consulte Creación de una solicitud de flota de spot con los parámetros definidos (consola).

  7. Cuando esté listo para crear su flota de spot, elija Launch (iniciar).

Para crear una solicitud de flota de spot con una plantilla de inicialización mediante la AWS CLI
  • Utilice el comando request-spot-fleet. Use el parámetro LaunchTemplateConfigs para especificar la plantilla de inicialización y cualquier otra omisión para la misma.