Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejemplos de creación y administración de plantillas de lanzamiento con AWS CLI
Puede crear y administrar plantillas de lanzamiento mediante AWS Management Console, AWS Command Line Interface (AWS CLI) oSDKs. En esta sección se muestran ejemplos de creación y administración de plantillas de lanzamiento para Amazon EC2 Auto Scaling desde AWS CLI.
Contenido
- Ejemplo de uso
- Creación de una plantilla de lanzamiento básica
- Especificar etiquetas que etiquetan instancias en el lanzamiento
- Especifica un IAM rol para pasarlo a las instancias
- Asignación de direcciones IP públicas
- Especificar un script de datos de usuario que configura instancias en el lanzamiento
- Especificar una asignación de dispositivos de bloques
- Especificar hosts dedicados para traer licencias de software de proveedores externos
- Especificar una interfaz de red existente
- Creación de múltiples interfaces de red
- Administración de las plantillas de lanzamiento
- Actualización de un grupo de Auto Scaling para utilizar una plantilla de lanzamiento
Ejemplo de uso
{ "LaunchTemplateName": "my-template-for-auto-scaling", "VersionDescription": "test description", "LaunchTemplateData": { "ImageId": "ami-04d5cc9b88example", "InstanceType": "t2.micro", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "Monitoring": { "Enabled": true }, "Placement": { "Tenancy": "dedicated" }, "CreditSpecification": { "CpuCredits": "unlimited" }, "MetadataOptions": { "HttpTokens": "required", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled" } } }
Creación de una plantilla de lanzamiento básica
Para crear una plantilla de lanzamiento básica, utilice el create-launch-templatecomando de la siguiente manera, con las siguientes modificaciones:
-
ami-04d5cc9b88example
Sustitúyala por el ID AMI desde el que se van a lanzar las instancias. -
t2.micro
Sustitúyala por un tipo de instancia que sea compatible con el AMI que especificaste.
En este ejemplo, se crea una plantilla de lanzamiento con el nombre my-template-for-auto-scaling
. Si las instancias creadas por esta plantilla de lanzamiento se lanzan de forma predeterminadaVPC, reciben una dirección IP pública de forma predeterminada. Si las instancias se lanzan de forma no predeterminadaVPC, no reciben una dirección IP pública de forma predeterminada.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Para obtener más información sobre los parámetros con JSON formato de comillas, consulte Uso de comillas con cadenas AWS CLI en la Guía del usuario.AWS Command Line Interface
Como alternativa, puede especificar los parámetros con JSON formato en un archivo de configuración.
En el ejemplo siguiente se crea una plantilla de lanzamiento básica, que hace referencia a un archivo de configuración para los valores de parámetro de plantilla de lanzamiento.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data file://config.json
Contenido de config.json
:
{ "ImageId":"
ami-04d5cc9b88example
", "InstanceType":"t2.micro
" }
Especificar etiquetas que etiquetan instancias en el lanzamiento
En el siguiente ejemplo se agrega una etiqueta (por ejemplo, purpose=webserver
) a instancias en el lanzamiento.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"purpose
","Value":"webserver
"}]}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
nota
Si especifica etiquetas de instancia en la plantilla de lanzamiento y elige propagar las etiquetas del grupo de Auto Scaling a sus instancias, todas las etiquetas se fusionarán. Si se especifica la misma clave de etiqueta para una etiqueta en su plantilla de lanzamiento y una etiqueta en su grupo de Auto Scaling, entonces el valor de la etiqueta del grupo tiene prioridad.
Especifica un IAM rol para pasarlo a las instancias
En el siguiente ejemplo, se especifica el nombre del perfil de instancia asociado al IAM rol que se va a transferir a las instancias en el momento del lanzamiento. Para obtener más información, consulte IAMfunción para las aplicaciones que se ejecutan en EC2 instancias de Amazon.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"IamInstanceProfile":{"Name":"my-instance-profile
"},"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Asignación de direcciones IP públicas
En el siguiente create-launch-templateejemplo, se configura la plantilla de lanzamiento para asignar direcciones públicas a las instancias lanzadas de forma no VPC predeterminada.
nota
Cuando especifique una interfaz de red, especifique un valor Groups
que corresponda a los grupos de seguridad en los VPC que el grupo de Auto Scaling lanzará las instancias. Especifique las VPC subredes como propiedades del grupo Auto Scaling.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"AssociatePublicIpAddress":true
,"Groups":["sg-903004f88example
"],"DeleteOnTermination":true
}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Especificar un script de datos de usuario que configura instancias en el lanzamiento
En el ejemplo siguiente se especifica una secuencia de comandos de datos de usuario como una cadena codificada en base64 que configura instancias en el momento del lanzamiento. El create-launch-templatecomando requiere datos de usuario codificados en base64.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"UserData":"IyEvYmluL2Jhc...
","ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Especificar una asignación de dispositivos de bloques
En el siguiente create-launch-templateejemplo, se crea una plantilla de lanzamiento con una asignación de dispositivos de bloques: un volumen de 22 gigabytes asignado EBS a. /dev/xvdcz
El /dev/xvdcz
volumen utiliza el tipo de volumen General Purpose SSD (gp2) y se elimina al finalizar la instancia a la que está conectado.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"BlockDeviceMappings":[{"DeviceName":"/dev/xvdcz
","Ebs":{"VolumeSize":22
,"VolumeType":"gp2
","DeleteOnTermination":true
}}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Especificar hosts dedicados para traer licencias de software de proveedores externos
Si especifica la tenencia de host, puede especificar un grupo de recursos de host y una configuración de licencias de License Manager para traer licencias de software elegibles de proveedores externos. A continuación, puede usar las licencias en las EC2 instancias mediante el siguiente create-launch-templatecomando.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"Placement":{"Tenancy":"host","HostResourceGroupArn":"arn
"},"LicenseSpecifications":[{"LicenseConfigurationArn":"arn
"}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Especificar una interfaz de red existente
El siguiente create-launch-templateejemplo configura la interfaz de red principal para usar una interfaz de red existente.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"NetworkInterfaceId":"eni-b9a5ac93
","DeleteOnTermination":false
}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Creación de múltiples interfaces de red
El siguiente create-launch-templateejemplo agrega una interfaz de red secundaria. La interfaz de red principal tiene un índice de dispositivo de 0 y la interfaz de red secundaria tiene un índice de dispositivo de 1.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"Groups":["sg-903004f88example
"],"DeleteOnTermination":true
},{"DeviceIndex":1,"Groups":["sg-903004f88example
"],"DeleteOnTermination":true
}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Si usa un tipo de instancia que admite varias tarjetas de red y adaptadores Elastic Fabric (EFAs), puede agregar una interfaz secundaria a una tarjeta de red secundaria y EFA habilitarla mediante el siguiente create-launch-templatecomando. Para obtener más información, consulta Cómo añadir una EFA a una plantilla de lanzamiento en la Guía del EC2 usuario de Amazon.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"NetworkInterfaces":[{"NetworkCardIndex":0,"DeviceIndex":0,"Groups":["sg-7c2270198example
"],"InterfaceType":"efa","DeleteOnTermination":true
},{"NetworkCardIndex":1
,"DeviceIndex":1
,"Groups":["sg-7c2270198example
"],"InterfaceType":"efa","DeleteOnTermination":true
}],"ImageId":"ami-09d95fab7fexample
","InstanceType":"p4d.24xlarge
"}'
aviso
El tipo de instancia p4d.24xlarge incurre en costos más altos que los otros ejemplos de esta sección. Para obtener más información sobre los precios de las instancias P4d, consulte los precios de las instancias EC2 P4d de Amazon
nota
Si se asocian varias interfaces de red de la misma subred a una instancia, se puede presentar un enrutamiento asimétrico, especialmente en instancias que utilizan una variante de Amazon Linux. Si necesita este tipo de configuración, debe configurar la interfaz de red secundaria dentro del sistema operativo. Para ver un ejemplo, consulte ¿Cómo puedo hacer que mi interfaz de red secundaria funcione en mi instancia de UbuntuEC2?
Administración de las plantillas de lanzamiento
AWS CLI Incluye varios otros comandos que le ayudan a administrar sus plantillas de lanzamiento.
Contenido
Enumeración y descripción de las plantillas de lanzamiento
Puede usar dos AWS CLI comandos para obtener información sobre sus plantillas de lanzamiento: describe-launch-templatesy describe-launch-template-versions.
El describe-launch-templatescomando le permite obtener una lista de cualquiera de las plantillas de lanzamiento que haya creado. Puede utilizar una opción para filtrar los resultados en un nombre de plantilla de lanzamiento, crear tiempo, clave de etiqueta o combinación clave-valor de etiqueta. Este comando devuelve información resumida sobre cualquiera de sus plantillas de lanzamiento, incluido el identificador de plantilla de lanzamiento, la versión más reciente y la versión predeterminada.
En el ejemplo siguiente se proporciona un resumen de la plantilla de lanzamiento especificada.
aws ec2 describe-launch-templates --launch-template-names
my-template-for-auto-scaling
A continuación, se muestra un ejemplo de respuesta.
{
"LaunchTemplates": [
{
"LaunchTemplateId": "lt-068f72b729example",
"LaunchTemplateName": "my-template-for-auto-scaling",
"CreateTime": "2020-02-28T19:52:27.000Z",
"CreatedBy": "arn:aws:iam::123456789012:user/Bob",
"DefaultVersionNumber": 1,
"LatestVersionNumber": 1
}
]
}
Si no utiliza --launch-template-names
para limitar la salida a una plantilla de lanzamiento, se devuelve información sobre todas las plantillas de lanzamiento.
El siguiente describe-launch-template-versionscomando proporciona información que describe las versiones de la plantilla de lanzamiento especificada.
aws ec2 describe-launch-template-versions --launch-template-id
lt-068f72b729example
A continuación, se muestra un ejemplo de respuesta.
{
"LaunchTemplateVersions": [
{
"VersionDescription": "version1",
"LaunchTemplateId": "lt-068f72b729example",
"LaunchTemplateName": "my-template-for-auto-scaling",
"VersionNumber": 1,
"CreatedBy": "arn:aws:iam::123456789012:user/Bob",
"LaunchTemplateData": {
"TagSpecifications": [
{
"ResourceType": "instance",
"Tags": [
{
"Key": "purpose",
"Value": "webserver"
}
]
}
],
"ImageId": "ami-04d5cc9b88example",
"InstanceType": "t2.micro",
"NetworkInterfaces": [
{
"DeviceIndex": 0,
"DeleteOnTermination": true,
"Groups": [
"sg-903004f88example"
],
"AssociatePublicIpAddress": true
}
]
},
"DefaultVersion": true,
"CreateTime": "2020-02-28T19:52:27.000Z"
}
]
}
Crear una versión de plantilla de inicialización
El siguiente create-launch-template-versioncomando crea una nueva versión de la plantilla de lanzamiento basada en la versión 1 de la plantilla de lanzamiento y especifica un AMI identificador diferente.
aws ec2 create-launch-template-version --launch-template-id
lt-068f72b729example
--version-descriptionversion2
\ --source-version1
--launch-template-data "ImageId=ami-c998b6b2example
"
Para configurar la versión predeterminada de la plantilla de lanzamiento, utilice el modify-launch-templatecomando.
Eliminar una versión de plantilla de inicialización
El siguiente delete-launch-template-versionscomando elimina la versión de la plantilla de lanzamiento especificada.
aws ec2 delete-launch-template-versions --launch-template-id
lt-068f72b729example
--versions 1
Eliminación de una plantilla de inicialización
Si ya no necesita una plantilla de lanzamiento, puede eliminarla mediante el siguiente delete-launch-templatecomando. Al eliminar una plantilla de inicialización, también se eliminan todas sus versiones.
aws ec2 delete-launch-template --launch-template-id
lt-068f72b729example
Actualización de un grupo de Auto Scaling para utilizar una plantilla de lanzamiento
Puede usar el update-auto-scaling-groupcomando para agregar una plantilla de lanzamiento a un grupo de Auto Scaling existente.
Actualización de un grupo de Auto Scaling para utilizar la versión más reciente de una plantilla de lanzamiento
El siguiente update-auto-scaling-groupcomando actualiza el grupo de Auto Scaling especificado para usar la última versión de la plantilla de lanzamiento especificada.
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --launch-template LaunchTemplateId=lt-068f72b729example
,Version='$Latest'
Actualización de un grupo de Auto Scaling para utilizar una versión específica de una plantilla de lanzamiento
El siguiente update-auto-scaling-groupcomando actualiza el grupo de Auto Scaling especificado para usar una versión específica de la plantilla de lanzamiento especificada.
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --launch-template LaunchTemplateName=my-template-for-auto-scaling
,Version='2
'