

# Almacenamiento de parámetros de inicialización de instancias en plantillas de inicialización de Amazon EC2
<a name="ec2-launch-templates"></a>

Puede usar una *plantilla de inicialización* de Amazon EC2 para almacenar parámetros de inicialización de instancias con el objetivo de no tener que especificarlos cada vez que inicie una instancia de Amazon EC2. Por ejemplo, puede crear una plantilla de inicialización que almacene el ID de la AMI, el tipo de instancia y la configuración de red que suele usar para iniciar instancias. Al iniciar una instancia mediante la consola de Amazon EC2, un SDK de AWS o una herramienta de la línea de comandos, puede especificar la plantilla de inicialización en lugar de volver a ingresar los parámetros.

Para cada plantilla de inicialización, puede crear una o varias *versiones de plantillas de inicialización* numeradas. Cada versión tiene diferentes parámetros de inicialización. Al iniciar una instancia desde una plantilla de inicialización, puede utilizar cualquier versión de la plantilla. Si no especifica ninguna versión, se usará la predeterminada. Puede definir cualquier versión de la plantilla de inicialización como predeterminada — la versión predeterminada es la primera.

En el siguiente diagrama se muestra la plantilla de inicialización con tres versiones. La primera versión especifica el tipo de instancia, el ID de la AMI, la subred y el par de claves que utilizar para iniciar la instancia. La segunda versión se basa en la primera y también especifica un grupo de seguridad de la instancia. La tercera versión usa distintos valores para algunos de los parámetros. La versión 2 se establece como la predeterminada. Si ha iniciado la instancia desde esta plantilla de inicialización, se usarían los parámetros de la versión 2 si no se especificara ninguna otra versión.

![\[Plantilla de inicialización con tres versiones.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/launch-template-diagram.png)


**Topics**
+ [Restricciones para plantillas de inicialización de Amazon EC2](launch-template-restrictions.md)
+ [Permisos de IAM necesarios para las plantillas de inicialización de Amazon EC2](permissions-for-launch-templates.md)
+ [Uso de plantillas de inicialización de Amazon EC2 para controlar la inicialización de instancias de Amazon EC2](use-launch-templates-to-control-launching-instances.md)
+ [Creación de una plantilla de inicialización de Amazon EC2](create-launch-template.md)
+ [Modificar una plantilla de inicialización (administrar versiones de plantillas de inicialización)](manage-launch-template-versions.md)
+ [Eliminación de una plantilla de inicialización o una versión de plantilla de inicialización](delete-launch-template.md)

# Restricciones para plantillas de inicialización de Amazon EC2
<a name="launch-template-restrictions"></a>

A continuación se describen las restricciones que se aplican a las versiones y plantillas de inicialización:
+ **Cuotas**: para ver las cuotas de las plantillas de inicialización y las versiones de las plantillas de inicialización, abra la consola de [Service Quotas](https://console.aws.amazon.com/servicequotas/) o utilice el comando de la AWS CLI [list-service-quotas](https://docs.aws.amazon.com/cli/latest/reference/service-quotas/list-service-quotas.html). Cada cuenta de AWS puede tener un máximo de 5000 plantillas de inicialización por región y hasta 10 000 versiones por plantilla de inicialización. Es posible que sus cuentas tengan cuotas diferentes en función de su antigüedad e historial de uso.
+ **Los parámetros son opcionales**: los parámetros de la plantilla de inicialización son opcionales. Sin embargo, debe asegurarse de que la solicitud de inicialización de su instancia incluya todos los parámetros necesarios. Por ejemplo, si su plantilla de inicialización no incluye un ID de AMI, debe especificar un ID de AMI cuando inicialice una instancia con esta plantilla de inicialización.
+ **Parámetros no validados**: los parámetros de la plantilla de inicialización no están completamente validados cuando crea dicha plantilla. Si especifica valores incorrectos o si usa combinaciones de parámetros no compatibles, las instancias no se inicializarán con esta plantilla. Para evitar problemas, asegúrese de especificar los valores correctos y use combinaciones de parámetros compatibles. Por ejemplo, para iniciar una instancia en un grupo de ubicación, debe especificar un tipo de instancia admitido.
+ **Etiquetas**: puede etiquetar plantillas de inicialización, pero no puede etiquetar sus versiones.
+ **Inmutable**: las plantillas de inicialización son inmutables. Para modificar una plantilla de inicialización, debe crear una nueva versión de la plantilla de inicialización.
+ **Números de versión**: las versiones de las plantillas de inicialización están numeradas en el orden en el que se han creado. Al crear una versión de una plantilla de inicialización, no puede especificar el número de versión.

# Permisos de IAM necesarios para las plantillas de inicialización de Amazon EC2
<a name="permissions-for-launch-templates"></a>

Puede usar los permisos de IAM para controlar si los usuarios pueden mostrar, ver, crear o eliminar plantillas de inicialización o versiones de plantillas de inicialización.

**importante**  
No podrá usar los permisos de nivel de recursos para restringir los recursos que los usuarios pueden especificar en una plantilla de inicialización cuando creen una plantilla de inicialización o una versión de plantilla de inicialización. Por lo tanto, asegúrese de conceder permisos para crear plantillas de inicialización y versiones de plantillas de inicialización solo a los administradores de confianza.

Debe conceder a cualquier persona que vaya a utilizar una plantilla de inicialización los permisos necesarios para crear y acceder a los recursos especificados en la plantilla de inicialización. Por ejemplo:
+ Para inicializar una instancia desde una Imagen de máquina de Amazon (AMI) privada compartida, el usuario debe tener permiso de inicialización para la AMI.
+ Para crear volúmenes de EBS con etiquetas de instantáneas existentes, el usuario debe tener acceso de lectura a las instantáneas y permisos para crear y etiquetar volúmenes.

**Topics**
+ [ec2:CreateLaunchTemplate](#permissions-for-launch-templates-create)
+ [ec2:DescribeLaunchTemplates](#permissions-for-launch-templates-view)
+ [ec2:DescribeLaunchTemplateVersions](#permissions-for-launch-template-versions-view)
+ [ec2:DeleteLaunchTemplate](#permissions-for-launch-templates-delete)
+ [Controle los permisos del control de versiones](#permissions-for-launch-template-versions)
+ [Controle el acceso a las etiquetas de las plantillas de inicialización](#permissions-for-launch-templates-tags)

## ec2:CreateLaunchTemplate
<a name="permissions-for-launch-templates-create"></a>

Para crear una plantilla de inicialización en la consola o mediante las API, la entidad principal debe tener el permiso `ec2:CreateLaunchTemplate` en una política de IAM. Siempre que sea posible, utilice etiquetas que le ayuden a controlar el acceso a las plantillas de inicialización de su cuenta.

Por ejemplo, la siguiente declaración de política de IAM otorga a la entidad principal permiso para crear plantillas de inicialización solo si la plantilla usa la etiqueta especificada (*`purpose`*=*`testing`*).

```
{
    "Sid": "IAMPolicyForCreatingTaggedLaunchTemplates",
    "Action": "ec2:CreateLaunchTemplate",
    "Effect": "Allow",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:ResourceTag/purpose": "testing"
        }
    }
}
```

Es posible que las entidades principales que crean claves necesiten algunos permisos relacionados.
+ **ec2:CreateTags**: para añadir etiquetas a la plantilla de inicialización durante la operación `CreateLaunchTemplate`, la persona que llama `CreateLaunchTemplate` debe tener el permiso `ec2:CreateTags` en una política de IAM.
+ **ec2:RunInstances**: para iniciar instancias de EC2 a partir de la plantilla de inicialización que crearon, la entidad principal también debe tener el permiso `ec2:RunInstances` en una política de IAM.

En las acciones de creación de recursos que aplican etiquetas, los usuarios deben tener el permiso `ec2:CreateTags`. La siguiente instrucción de política de IAM utiliza la clave de condición `ec2:CreateAction` para permitir a los usuarios crear etiquetas únicamente en el contexto de `CreateLaunchTemplate`. Los usuarios no pueden etiquetar plantillas de inicialización que ya existan ni otros recursos. Para obtener más información, consulte [Conceder permisos para etiquetar recursos de Amazon EC2 durante la creación](supported-iam-actions-tagging.md).

```
{
    "Sid": "IAMPolicyForTaggingLaunchTemplatesOnCreation",
    "Action": "ec2:CreateTags",
    "Effect": "Allow",
    "Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/*",
    "Condition": {
        "StringEquals": {
            "ec2:CreateAction": "CreateLaunchTemplate"
        }
    }
}
```

El usuario de IAM que crea una plantilla de inicialización no tiene automáticamente permiso para usar la plantilla de inicialización que ha creado. Al igual que cualquier otra entidad principal, el creador de la clave necesita obtener permiso a través de una política de IAM. Si un usuario de IAM quiere iniciar una instancia de EC2 a partir de una plantilla de inicialización, debe tener el permiso `ec2:RunInstances`. Al conceder estos permisos, puede especificar que los usuarios solo puedan usar plantillas de inicialización con etiquetas o ID específicos. También puede controlar la AMI y otros recursos a los que cualquier persona que utilice plantillas de inicialización puede hacer referencia y utilizar al iniciar instancias especificando los permisos a nivel de recursos para la llamada `RunInstances`. Para ver ejemplos de políticas, consulte [Plantillas de lanzamiento](ExamplePolicies_EC2.md#iam-example-runinstances-launch-templates).

## ec2:DescribeLaunchTemplates
<a name="permissions-for-launch-templates-view"></a>

Para mostrar y ver las plantillas de inicialización de la cuenta, la entidad principal debe tener el permiso `ec2:DescribeLaunchTemplates` en una política de IAM. Puesto que las acciones `Describe` no admiten permisos a nivel de recurso, debe especificarlos sin condiciones y el valor del elemento de recurso en la política debe ser `"*"`. 

Por ejemplo, la siguiente declaración de política de IAM otorga el permiso a la entidad principal para mostrar y ver todas las plantillas de inicialización en la cuenta.

```
{
    "Sid": "IAMPolicyForDescribingLaunchTemplates",
    "Action": "ec2:DescribeLaunchTemplates",
    "Effect": "Allow",
    "Resource": "*"
}
```

## ec2:DescribeLaunchTemplateVersions
<a name="permissions-for-launch-template-versions-view"></a>

Las entidades principales que muestran y ven las plantillas de inicialización también deberían tener el permiso `ec2:DescribeLaunchTemplateVersions` para recuperar todo el conjunto de atributos que componen las plantillas de inicialización. 

Para mostrar y ver las versiones de las plantillas de inicialización de la cuenta, la entidad principal debe tener el permiso `ec2:DescribeLaunchTemplateVersions` en una política de IAM. Puesto que las acciones `Describe` no admiten permisos a nivel de recurso, debe especificarlos sin condiciones y el valor del elemento de recurso en la política debe ser `"*"`. 

Por ejemplo, la siguiente declaración de política de IAM otorga el permiso a la entidad principal para mostrar y ver todas las versiones de las plantillas de inicialización en la cuenta.

```
{
    "Sid": "IAMPolicyForDescribingLaunchTemplateVersions",
    "Effect": "Allow",
    "Action": "ec2:DescribeLaunchTemplateVersions",
    "Resource": "*"
}
```

## ec2:DeleteLaunchTemplate
<a name="permissions-for-launch-templates-delete"></a>

**importante**  
Debe tener precaución al dar permiso a las entidades principales para eliminar un recurso. Eliminar una plantilla de inicialización puede provocar un error en un recurso  de AWS que se base en la plantilla de inicialización.

Para eliminar una plantilla de inicialización, la entidad principal debe tener el permiso `ec2:DeleteLaunchTemplate` en una política de IAM. Siempre que sea posible, use claves de condición basadas en etiquetas para limitar los permisos.

Por ejemplo, la siguiente declaración de política de IAM otorga a la entidad principal permiso para eliminar plantillas de inicialización solo si la plantilla tiene la etiqueta especificada (*`purpose`*=*`testing`*).

```
{
    "Sid": "IAMPolicyForDeletingLaunchTemplates",
    "Action": "ec2:DeleteLaunchTemplate",
    "Effect": "Allow",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:ResourceTag/purpose": "testing"
        }
    }
}
```

Como alternativa, puede utilizar los ARN para identificar la plantilla de inicialización a la que se aplica la política de IAM.

Una plantilla de inicialización tiene el siguiente ARN.

```
"Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/lt-09477bcd97b0d310e"
```

Puede especificar varios ARN incluyéndolos en una lista o puede especificar un valor `Resource` de `"*"` sin el elemento `Condition` para que la entidad principal pueda eliminar cualquier plantilla de inicialización de la cuenta. 

## Controle los permisos del control de versiones
<a name="permissions-for-launch-template-versions"></a>

Los administradores de confianza pueden conceder acceso para crear y eliminar versiones de una plantilla de inicialización y para cambiar la versión predeterminada de una plantilla de inicialización mediante políticas de IAM similares a las de los ejemplos siguientes.

**importante**  
Tenga cuidado al dar permiso a las entidades principales para crear versiones de plantillas de inicialización o modificar las plantillas de inicialización.   
Cuando crea una versión de la plantilla de inicialización, afecta a cualquier recurso de AWS que permite a Amazon EC2 iniciar instancias en su nombre con la versión `Latest`. 
Cuando modifica una versión de la plantilla de inicialización, puede cambiar qué versión es el `Default` y por lo tanto afectar los recursos de AWS que permite a Amazon EC2 iniciar instancias en su nombre con esta versión modificada. 
También debe ser cauteloso a la hora de gestionar los recursos de AWS que interactúan con la versión de plantilla de inicialización `Latest` o `Default`, como la flota de EC2 y la flota de spot. Cuando se utiliza una versión diferente de la plantilla de inicialización para `Latest` o `Default`, Amazon EC2 no vuelve a comprobar los permisos para completar las acciones al iniciar nuevas instancias a fin de cumplir con la capacidad de destino de la flota porque no hay interacción del usuario con el recurso de AWS. Al conceder permiso a un usuario para llamar a las API de `CreateLaunchTemplateVersion` y `ModifyLaunchTemplate`, el usuario también obtiene el permiso `iam:PassRole` si dirige la flota a una versión de plantilla de inicialización diferente que contenga un perfil de instancia (un contenedor para un rol de IAM). Esto significa que un usuario puede actualizar una plantilla de inicialización para transferir un rol de IAM a una instancia, incluso si no tiene el permiso `iam:PassRole`. Para gestionar este riesgo, tenga cuidado al conceder permisos a las personas que pueden crear y gestionar las versiones de las plantillas de inicialización. 

### ec2:CreateLaunchTemplateVersion
<a name="permissions-for-launch-template-versions-create"></a>

Para crear una nueva versión de una plantilla de inicialización, la entidad principal debe tener el permiso `ec2:CreateLaunchTemplateVersion` para la plantilla de inicialización en una política de IAM.

Por ejemplo, la siguiente declaración de política de IAM otorga a la entidad principal permiso para crear las versiones de plantillas de inicialización solo si la versión usa la etiqueta especificada (*`environment`*=*`production`*). Como alternativa, puede especificar uno o varios ARN de plantilla de inicialización, o puede especificar un valor `Resource` de `"*"` sin el elemento `Condition` que permite a la entidad principal crear versiones de cualquier plantilla de inicialización de la cuenta. 

```
{
    "Sid": "IAMPolicyForCreatingLaunchTemplateVersions",
    "Action": "ec2:CreateLaunchTemplateVersion",
    "Effect": "Allow",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:ResourceTag/environment": "production"
        }
    }
}
```

### ec2:DeleteLaunchTemplateVersion
<a name="permissions-for-launch-template-versions-delete"></a>

**importante**  
Como siempre, debe tener precaución al dar permiso a las entidades principales para eliminar un recurso. Eliminar una versión de plantilla de inicialización puede provocar un error en un recurso de AWS que se base en la versión de plantilla de inicialización.

Para eliminar una versión de una plantilla de inicialización, la entidad principal debe tener el permiso `ec2:DeleteLaunchTemplateVersion` para la plantilla de inicialización en una política de IAM.

Por ejemplo, la siguiente declaración de política de IAM otorga a la entidad principal permiso para eliminar las versiones de plantillas de inicialización solo si la versión usa la etiqueta especificada (*`environment`*=*`production`*). Como alternativa, puede especificar uno o varios ARN de plantilla de inicialización, o puede especificar un valor `Resource` de `"*"` sin el elemento `Condition` que permite a la entidad principal eliminar versiones de cualquier plantilla de inicialización de la cuenta.

```
{
    "Sid": "IAMPolicyForDeletingLaunchTemplateVersions",
    "Action": "ec2:DeleteLaunchTemplateVersion",
    "Effect": "Allow",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:ResourceTag/environment": "production"
        }
    }
}
```

### ec2:ModifyLaunchTemplate
<a name="permissions-for-launch-templates-update"></a>

Para cambiar la versión `Default` asociada a una plantilla de inicialización, la entidad principal debe tener el permiso `ec2:ModifyLaunchTemplate` para la plantilla de inicialización en una política de IAM.

Por ejemplo, la siguiente declaración de política de IAM otorga a la entidad principal permiso para modificar plantillas de inicialización solo si la plantilla de inicialización usa la etiqueta especificada (*`environment`*=*`production`*). Como alternativa, puede especificar uno o varios ARN de plantilla de inicialización, o puede especificar un valor `Resource` de `"*"` sin el elemento `Condition` que permite a la entidad principal modificar cualquier plantilla de inicialización de la cuenta.

```
{
    "Sid": "IAMPolicyForModifyingLaunchTemplates",
    "Action": "ec2:ModifyLaunchTemplate",
    "Effect": "Allow",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:ResourceTag/environment": "production"
        }
    }
}
```

## Controle el acceso a las etiquetas de las plantillas de inicialización
<a name="permissions-for-launch-templates-tags"></a>

Puede utilizar claves de condición para limitar los permisos de etiquetado cuando el recurso es una plantilla de inicialización. Por ejemplo, la siguiente política de IAM permite eliminar solo la etiqueta con la clave `temporary` de las plantillas de inicialización de la cuenta y región especificadas.

```
{
    "Sid": "IAMPolicyForDeletingTagsOnLaunchTemplates",
    "Action": "ec2:DeleteTags",
    "Effect": "Allow",
    "Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/*",
    "Condition": {
        "ForAllValues:StringEquals": {
            "aws:TagKeys": ["temporary"]
        }
    }
}
```

Para obtener más información sobre las condiciones, claves que puede utilizar para controlar las etiquetas, y las claves y los valores que se pueden aplicar a los recursos de Amazon EC2, consulte [Controlar el acceso a etiquetas específicas](supported-iam-actions-tagging.md#control-tagging).

# Uso de plantillas de inicialización de Amazon EC2 para controlar la inicialización de instancias de Amazon EC2
<a name="use-launch-templates-to-control-launching-instances"></a>

Puede controlar la configuración de sus instancias de Amazon EC2 al especificar que los usuarios solo puedan iniciar instancias si usan una plantilla de inicialización y que solo puedan usar una plantilla de inicialización específica. También puede controlar quién puede crear, modificar, describir y eliminar plantillas de inicialización y versiones de las mismas.

## Usar plantillas de inicialización para controlar los parámetros de inicialización
<a name="launch-templates-authorization"></a>

Una plantilla de inicialización puede contener algunos o todos los parámetros necesarios para configurar una instancia en la inicialización. No obstante, cuando se inicializa una instancia con una plantilla de inicialización, podrá anular parámetros especificados en dicha plantilla. También puede especificar parámetros adicionales que no están en la plantilla de inicialización.

**nota**  
Durante la inicialización, no podrá eliminar parámetros de plantillas de inicialización (por ejemplo, no puede especificar un valor “null” en el parámetro). Para eliminar un parámetro, cree una nueva versión de la plantilla de inicialización sin el parámetro y úsela para iniciar la instancia.

Para inicializar instancias, los usuarios deben tener permiso de uso para la acción `ec2:RunInstances`. Los usuarios también deben disponer de permisos para crear o utilizar los recursos creados con la instancia o asociados a ella. Puede utilizar permisos de nivel de recurso para la acción `ec2:RunInstances` para controlar los parámetros de inicialización que pueden especificar los usuarios. También puede conceder permisos a los usuarios para iniciar una instancia con una plantilla de inicialización. Esto le permite administrar parámetros de inicialización en una plantilla de inicialización en lugar de en una política de IAM y usar una plantilla de inicialización como vehículo de autorización para iniciar instancias. Por ejemplo, puede especificar que los usuarios pueden iniciar instancias únicamente mediante una plantilla de inicialización y que solo deben usar una plantilla de inicialización específica. También puede controlar los parámetros de inicialización que los usuarios pueden omitir en la plantilla de inicialización. Para ver ejemplos de políticas, consulte [Plantillas de lanzamiento](ExamplePolicies_EC2.md#iam-example-runinstances-launch-templates).

## Controlar el uso de las plantillas de inicialización
<a name="launch-template-permissions"></a>

De forma predeterminada, los usuarios no tienen permisos para trabajar con plantillas de inicialización. Puede crear una política que conceda a los usuarios permisos para crear, modificar, describir y eliminar plantillas de inicialización y versiones de plantillas de inicialización. También puede aplicar permisos de nivel de recursos a algunas acciones de plantillas de inicialización para controlar la capacidad de un usuario de emplear recursos específicos en esas acciones. Para obtener más información, consulte los siguientes ejemplos de política: [Ejemplo: Trabajar con plantillas de lanzamiento](ExamplePolicies_EC2.md#iam-example-launch-templates).

Sea precavido a la hora de conceder permisos a los usuarios para utilizar las acciones `ec2:CreateLaunchTemplate` y `ec2:CreateLaunchTemplateVersion`. No podrá usar los permisos de nivel de recursos para controlar qué recursos pueden especificar los usuarios en la plantilla de inicialización. Para restringir los recursos que se usan para iniciar una instancia, asegúrese de conceder permisos para crear plantillas de inicialización y versiones de las mismas solo a los administradores adecuados.

## Problemas de seguridad importantes al utilizar plantillas de inicialización con flota de EC2 o Flota de spot
<a name="launch-template-security-ec2fleet-spotfleet"></a>

Para usar plantillas de inicialización, debe conceder permisos a los usuarios para crear, modificar, describir y eliminar plantillas de inicialización y versiones de plantillas de inicialización. Puede controlar quién puede crear plantillas de inicialización y iniciar versiones de plantillas al controlar el acceso a las acciones `ec2:CreateLaunchTemplate` y `ec2:CreateLaunchTemplateVersion`. También puede controlar el acceso a la acción `ec2:ModifyLaunchTemplate` para controlar quién puede modificar las plantillas de inicialización.

**importante**  
Si una flota de EC2 o Flota de spot está configurada para utilizar la versión de la plantilla de inicialización más reciente o predeterminada, la flota no sabrá si la más reciente o la predeterminada se modificaron posteriormente para que apunten a una versión diferente de la plantilla de inicialización. Cuando se utiliza una versión diferente de la plantilla de inicialización para la versión más reciente o la predeterminada, Amazon EC2 no vuelve a comprobar los permisos para completar las acciones al iniciar nuevas instancias a fin de cumplir con la capacidad de destino de la flota. Esta es una consideración importante al conceder permisos a quién puede crear y administrar las versiones de la plantilla de inicialización; en particular, la acción `ec2:ModifyLaunchTemplate` que permite al usuario cambiar la versión de la plantilla de inicialización predeterminada.

Al conceder permiso a un usuario para utilizar las acciones de EC2 para las API de la plantilla de inicialización, también se concede el permiso `iam:PassRole` al usuario si crea o actualiza una flota de EC2 o una Flota de spot para que apunte a una versión diferente de la plantilla de inicialización que contenga un perfil de instancia (un contenedor para un rol de IAM). Esto significa que un usuario puede actualizar una plantilla de inicialización para transferir un rol de IAM a una instancia, incluso si no tiene el permiso `iam:PassRole`. Para obtener más información y una política de IAM de ejemplo, consulte [Uso de un rol de IAM para conceder permisos a aplicaciones que se ejecutan en instancias de Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) en la *Guía del usuario de IAM*.

Para obtener más información, consulte [Controlar el uso de las plantillas de inicialización](#launch-template-permissions) y [Ejemplo: Trabajar con plantillas de lanzamiento](ExamplePolicies_EC2.md#iam-example-launch-templates).

# Creación de una plantilla de inicialización de Amazon EC2
<a name="create-launch-template"></a>

Puede crear una plantilla de inicialización de Amazon EC2 al especificar sus propios valores para los parámetros de configuración de la instancia o al obtener los valores de una plantilla de inicialización o de una instancia de Amazon EC2 existente.

No necesita especificar un valor para cada parámetro de la plantilla de inicialización; solo necesita especificar un parámetro de configuración de instancia para crear una plantilla de inicialización. Para indicar los parámetros que decida no especificar, seleccione **No incluir en la plantilla de lanzamiento** cuando use la consola. Cuando use una herramienta de línea de comandos, no incluya los parámetros para indicar que ha decidido no especificarlos en la plantilla de inicialización.

Si desea especificar una AMI en la plantilla de inicialización, puede seleccionar una AMI o especificar un parámetro de Systems Manager que apunte a una AMI al inicializar la instancia.

Cuando se inicializa una instancia con una plantilla de inicialización, los valores especificados en la plantilla de inicialización se utilizan para configurar los parámetros de instancia correspondientes. Si no se especifica ningún valor en la plantilla de inicialización, se usará el valor predeterminado para el parámetro de instancia correspondiente.

**Topics**
+ [Creación de una plantilla de inicialización con la especificación de parámetros](#create-launch-template-define-parameters)
+ [Crear una plantilla de inicialización a partir de una existente](#create-launch-template-from-existing-launch-template)
+ [Crear una plantilla de inicialización a partir de una instancia](#create-launch-template-from-instance)
+ [Uso de un parámetro de Systems Manager en lugar de un ID de AMI](#use-an-ssm-parameter-instead-of-an-ami-id)

## Creación de una plantilla de inicialización con la especificación de parámetros
<a name="create-launch-template-define-parameters"></a>

Para crear una plantilla de inicialización, debe especificar el nombre y al menos un parámetro de configuración de instancia.

Para obtener una descripción de cada parámetro, consulte [Referencia de parámetros de configuración de instancias de Amazon EC2](ec2-instance-launch-parameters.md).

------
#### [ Console ]

**Para crear una plantilla de lanzamiento**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. 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)**.

1. En **Nombre y descripción de la plantilla de lanzamiento**, haga lo siguiente:

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

   1. 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.

   1. Para [etiquetar](Using_Tags.md) la plantilla de inicialización durante la creación, expanda **Etiquetas de la plantilla**, elija **Agregar etiqueta** y, a continuación, introduzca un par de clave y valor de la etiqueta. Elija **Agregar nueva etiqueta** para cada etiqueta adicional.
**nota**  
Para etiquetar los recursos que se crean cuando se inicia una instancia, debe especificar las etiquetas en **Resource tags** (Etiquetas de recursos). Para obtener más información, consulte el paso 9 de este procedimiento.

1. En **Application and OS Images (Amazon Machine Image)**, puede mantener seleccionada la opción **No incluir en la plantilla de lanzamiento**, o bien elegir el sistema operativo (SO) de la instancia y, a continuación, seleccionar una AMI. De forma alternativa, puede especificar un parámetro de Systems Manager en lugar de especificar una AMI. Para obtener más información, consulte [Uso de un parámetro de Systems Manager en lugar de un ID de AMI](#use-an-ssm-parameter-instead-of-an-ami-id).

   Una AMI es una plantilla que contiene el sistema operativo y el software necesarios para inicializar una instancia.

1. En **Tipo de instancia**, puede mantener seleccionada la opción **No incluir en la plantilla de lanzamiento**, seleccionar un tipo de instancia o especificar los atributos y permitir que Amazon EC2 identifique los tipos de instancia con esos atributos.
**nota**  
La especificación de atributos de instancia solo se admite cuando los grupos de escalado automático, la flota de EC2 y la flota de spot usan la plantilla de inicialización para iniciar instancias. Para obtener más información, consulte [Create mixed instances group using attribute-based instance type selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) y [Especifique atributos para la selección del tipo de instancia para la flota de EC2 o flota de spot](ec2-fleet-attribute-based-instance-type-selection.md).  
Si planea usar la plantilla de inicialización en el [asistente de inicialización de instancias](ec2-launch-instance-wizard.md) o con la [API RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html), no podrá especificar ningún atributo de tipo de instancia. 

   El tipo de instancia determina la configuración de hardware (capacidad de CPU, memoria, almacenamiento y capacidad de red) y el tamaño de la computadora host que se usa para una instancia.

   Si no está seguro del tipo de instancia que debe elegir, puede hacer lo siguiente:
   + Elija **Comparar tipos de instancias** para comparar distintos tipos de instancia mediante los siguientes atributos: número de vCPU, arquitectura, cantidad de memoria (GiB), cantidad de almacenamiento (GB), tipo de almacenamiento y rendimiento de red.
   + Elija **Obtener asesoramiento** para obtener orientación y sugerencias sobre tipos de instancias en el buscador de tipos de instancias de EC2. Para obtener más información, consulte [Obtención de recomendaciones del buscador de tipos de instancias de EC2](get-ec2-instance-type-recommendations.md).
**nota**  
En función de la fecha de creación de su cuenta, es posible que sea apto para usar Amazon EC2 con el nivel gratuito.  
Si creó su Cuenta de AWS antes del 15 de julio de 2025 y esta tiene menos de 12 meses de antigüedad, puede usar Amazon EC2 con el nivel gratuito si selecciona el tipo de instancia **t2.micro** (o el tipo de instancia **t3.micro** en regiones en las que **t2.micro** no esté disponible). Tenga en cuenta que cuando inicializa una instancia **t3.micro**, se establece de forma predeterminada en el [modo **Ilimitado**](burstable-performance-instances-unlimited-mode.md), lo que puede generar cargos adicionales en función del uso de la CPU. Si un tipo de instancia se puede usar con el nivel gratuito, tiene la etiqueta **Elegible para el nivel gratuito**.  
Si creó la Cuenta de AWS el 15 de julio de 2025 o después, puede usar los tipos de instancias **t3.micro**, **t3.small**, **t4g.micro**, **t4g.small**, **c7i-flex.large** y **m7i-flex.large** durante 6 meses o hasta que agote sus créditos.  
Para obtener más información, consulte [Beneficios del nivel gratuito antes y después del 15 de julio de 2025](ec2-free-tier-usage.md#ec2-free-tier-comparison).

1. En **Par de claves (inicio de sesión)**, para **Nombre del par de claves**, mantenga seleccionada la opción **No incluir en la plantilla de lanzamiento**, elija un par de claves existente o cree uno nuevo.

1. En **Configuración de red**, puede mantener seleccionada la opción **No incluir en la plantilla de lanzamiento** o puede especificar valores para las distintas opciones de red.

1. En **Configurar almacenamiento**, si especificó una AMI en la plantilla de inicialización, la AMI incluirá uno o varios volúmenes de almacenamiento, incluido el volumen raíz (**Volumen 1 [raíz AMI]**). De manera opcional, puede especificar volúmenes adicionales para asociar a la instancia. Para agregar un nuevo volumen, elija **Add new volume (Agregar nuevo volumen)**.

1. En **Etiquetas de recursos**, para [etiquetar](Using_Tags.md) los recursos que se crean cuando se inicia una instancia, elija **Agregar etiqueta** y, a continuación, introduzca un par de clave y valor de la etiqueta. En **Resource types** (Tipos de recursos), especifique los recursos que se van a etiquetar durante la creación. Puede especificar la misma etiqueta para todos los recursos o especificar etiquetas diferentes para distintos recursos. Elija **Add tag** (Agregar etiqueta) para cada etiqueta adicional.

   Puede especificar etiquetas para los siguientes recursos que se crean cuando se utiliza una plantilla de inicialización:
   + instancias
   + Volúmenes
   + Elastic Graphics
   + Solicitudes de instancia de spot
   + Interfaces de red
**nota**  
Para etiquetar la plantilla de inicio en sí, debe especificar las etiquetas en **Template tags** (Etiquetas de plantilla). Para obtener más información, consulte el paso 3 de este procedimiento.

1. En **Detalles avanzados**, expanda la sección para ver los campos y, de manera opcional, especificar parámetros adicionales para su instancia.

1. Utilice el panel **Resumen** para revisar la configuración de la plantilla de inicialización. Puede ir a cualquier sección seleccionando su enlace y, a continuación, realizar los cambios necesarios.

1. Cuando esté listo para crear su plantilla de inicialización, elija **Create launch template** (Crear plantilla de inicialización).

------
#### [ AWS CLI ]

**Para crear una plantilla de lanzamiento**  
Use el comando [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html).

```
aws ec2 create-launch-template \
    --launch-template-name TemplateForWebServer \
    --version-description WebVersion1 \
    --tag-specifications 'ResourceType=launch-template,Tags=[{Key=purpose,Value=production}]' \
    --launch-template-data file://template-data.json
```

A continuación se muestra un ejemplo JSON que especifica los datos de la plantilla de inicialización para la configuración de la instancia. Guarde el JSON en un archivo e inclúyalo en el parámetro `--launch-template-data`, tal y como se muestra en el comando de ejemplo.

```
{
    "NetworkInterfaces": [{
        "AssociatePublicIpAddress": true,
        "DeviceIndex": 0,
        "Ipv6AddressCount": 1,
        "SubnetId": "subnet-0abcdef1234567890"
    }],
    "ImageId": "ami-0abcdef1234567890",
    "InstanceType": "r5.4xlarge",
    "TagSpecifications": [{
        "ResourceType": "instance",
        "Tags": [{
            "Key":"Name",
            "Value":"webserver"
        }]
    }],
    "CpuOptions": {
        "CoreCount":4,
        "ThreadsPerCore":2
    }
}
```

A continuación, se muestra un ejemplo del resultado.

```
{
    "LaunchTemplate": {
        "LatestVersionNumber": 1, 
        "LaunchTemplateId": "lt-01238c059e3466abc", 
        "LaunchTemplateName": "TemplateForWebServer", 
        "DefaultVersionNumber": 1, 
        "CreatedBy": "arn:aws:iam::123456789012:root", 
        "CreateTime": "2017-11-27T09:13:24.000Z"
    }
}
```

------
#### [ PowerShell ]

**Para crear una plantilla de lanzamiento**  
Utilice el cmdlet [New-EC2LaunchTemplate](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2LaunchTemplate.html).

```
$launchTemplateData = [Amazon.EC2.Model.RequestLaunchTemplateData]@{
    ImageId = 'ami-0abcdef1234567890'
    InstanceType = 'r5.4xlarge'
    NetworkInterfaces = @(
        [Amazon.EC2.Model.LaunchTemplateInstanceNetworkInterfaceSpecificationRequest]@{
            AssociatePublicIpAddress = $true
            DeviceIndex = 0
            Ipv6AddressCount = 1
            SubnetId = 'subnet-0abcdef1234567890'
        }
    )
    TagSpecifications = @(
        [Amazon.EC2.Model.LaunchTemplateTagSpecificationRequest]@{
            ResourceType = 'instance'
            Tags = [Amazon.EC2.Model.Tag]@{
                Key = 'Name'
                Value = 'webserver'
            }
        }
    )
    CpuOptions = [Amazon.EC2.Model.LaunchTemplateCpuOptionsRequest]@{
        CoreCount = 4
        ThreadsPerCore = 2
    }
}
$tagSpecificationData = [Amazon.EC2.Model.TagSpecification]@{
    ResourceType = 'launch-template'
    Tags = [Amazon.EC2.Model.Tag]@{
        Key = 'purpose'
        Value = 'production'
    }
}
New-EC2LaunchTemplate -LaunchTemplateName 'TemplateForWebServer' `
    -VersionDescription 'WebVersion1' `
    -LaunchTemplateData $launchTemplateData `
    -TagSpecification $tagSpecificationData
```

A continuación, se muestra un ejemplo del resultado.

```
CreatedBy            : arn:aws:iam::123456789012:root
CreateTime           : 9/19/2023 16:57:55
DefaultVersionNumber : 1
LatestVersionNumber  : 1
LaunchTemplateId     : lt-01238c059eEXAMPLE
LaunchTemplateName   : TemplateForWebServer
Tags                 : {purpose}
```

------

## Crear una plantilla de inicialización a partir de una existente
<a name="create-launch-template-from-existing-launch-template"></a>

Puede clonar una plantilla de inicialización existente y luego ajustar los parámetros para crear una nueva plantilla de inicialización. Sin embargo, solo podrá realizar esta acción cuando use la consola de Amazon EC2. La AWS CLI no admite la duplicación de plantillas. Para obtener una descripción de cada parámetro, consulte [Referencia de parámetros de configuración de instancias de Amazon EC2](ec2-instance-launch-parameters.md).

------
#### [ Console ]

**Para crear una plantilla de inicialización a partir de una existente**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. 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)**.

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

1. 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.

1. Para etiquetar la plantilla de inicialización durante la creación, expanda **Etiquetas de la plantilla**, elija **Agregar etiqueta** y, a continuación, introduzca un par de clave y valor de la etiqueta.

1. Expanda **Plantilla de origen** y para **Nombre de la plantilla de inicialización**, elija una plantilla de inicialización en la que basar la nueva plantilla de inicialización.

1. En **Source template version (Versión de la plantilla de origen)**, elija la versión de la plantilla de inicialización en la que desea basar la plantilla nueva.

1. Ajuste los parámetros de inicialización según sea necesario y elija **Create launch template (Crear plantilla de inicialización)**.

------

## Crear una plantilla de inicialización a partir de una instancia
<a name="create-launch-template-from-instance"></a>

Puede duplicar los parámetros de una instancia de Amazon EC2 existente y luego ajustar los parámetros para crear una plantilla de inicialización. Para obtener una descripción de cada parámetro, consulte [Referencia de parámetros de configuración de instancias de Amazon EC2](ec2-instance-launch-parameters.md).

------
#### [ Console ]

**Para crear una plantilla de inicialización a partir de una instancia**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Seleccione la instancia y elija **Acciones**, **Imagen y plantillas**, **Crear plantilla a partir de una instancia**.

1. Proporcione un nombre, descripción, etiquetas y ajuste los parámetros de inicialización según sea necesario.
**nota**  
Cuando cree una plantilla de inicialización desde una instancia, las direcciones IP y los ID de la interfaz de red de la instancia no estarán incluidos en la plantilla.

1. Elija **Create launch template (Crear plantilla de inicialización)**.

------
#### [ AWS CLI ]

Puede utilizar la AWS CLI para crear una plantilla de inicialización a partir de una instancia existente obteniendo primero los datos de la plantilla de inicialización de una instancia y, a continuación, creando una plantilla de inicialización con los datos de la plantilla de inicialización.

**Para obtener los datos de la plantilla de inicialización a partir de una instancia**
+ Utilice el comando [get-launch-template-data](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-launch-template-data.html) y especifique el ID de la instancia. Puede usar la salida como base para crear una nueva plantilla de inicialización o una versión. De forma predeterminada, la salida incluye un objeto de nivel superior `LaunchTemplateData`, que no puede especificarse en los datos de su plantilla de inicialización. Utilice la opción `--query` para excluir este objeto.

  ```
  aws ec2 get-launch-template-data \
      --instance-id i-0123d646e8048babc \
      --query "LaunchTemplateData"
  ```

  A continuación, se muestra un ejemplo del resultado.

  ```
      {
          "Monitoring": {}, 
          "ImageId": "ami-8c1be5f6", 
          "BlockDeviceMappings": [
              {
                  "DeviceName": "/dev/xvda", 
                  "Ebs": {
                      "DeleteOnTermination": true
                  }
              }
          ], 
          "EbsOptimized": false, 
          "Placement": {
              "Tenancy": "default", 
              "GroupName": "", 
              "AvailabilityZone": "us-east-1a"
          }, 
          "InstanceType": "t2.micro", 
          "NetworkInterfaces": [
              {
                  "Description": "", 
                  "NetworkInterfaceId": "eni-35306abc", 
                  "PrivateIpAddresses": [
                      {
                          "Primary": true, 
                          "PrivateIpAddress": "10.0.0.72"
                      }
                  ], 
                  "SubnetId": "subnet-7b16de0c", 
                  "Groups": [
                      "sg-7c227019"
                  ], 
                  "Ipv6Addresses": [
                      {
                          "Ipv6Address": "2001:db8:1234:1a00::123"
                      }
                  ], 
                  "PrivateIpAddress": "10.0.0.72"
              }
          ]
      }
  ```

  Puede escribir la salida directamente en un archivo; por ejemplo:

  ```
  aws ec2 get-launch-template-data \
      --instance-id i-0123d646e8048babc \
      --query "LaunchTemplateData" >> instance-data.json
  ```

**Para crear una plantilla de inicialización con datos de plantilla de inicialización**
+ Utilice el comando [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) para crear una plantilla de inicialización utilizando el resultado del procedimiento anterior. Para obtener más información acerca de cómo crear una plantilla de inicialización mediante la AWS CLI, consulte [Creación de una plantilla de inicialización con la especificación de parámetros](#create-launch-template-define-parameters).

------

## Uso de un parámetro de Systems Manager en lugar de un ID de AMI
<a name="use-an-ssm-parameter-instead-of-an-ami-id"></a>

En lugar de especificar un ID de AMI en las plantillas de inicialización, puede especificar un parámetro AWS Systems Manager. Si el ID de AMI cambia, puede actualizar el ID de AMI en un lugar actualizando el parámetro de Systems Manager en el almacén de parámetros de Systems Manager. Los parámetros también se pueden [compartir](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-shared-parameters.html) con otros Cuentas de AWS. Puede almacenar y administrar de forma centralizada los parámetros de la AMI en una cuenta y compartirlos con todas las otras que necesiten hacer referencia a ellos. Mediante el uso de un parámetro de Systems Manager, todas las plantillas de inicialización se pueden actualizar en una sola acción.

Un parámetro de Systems Manager es un par clave-valor definido por el usuario que crea en el [almacén de parámetros de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html). El almacén de parámetros proporciona una base central para almacenar los valores de configuración de la aplicación.

En el siguiente diagrama, el parámetro `golden-ami` se asigna primero a la AMI original `ami-aabbccddeeffgghhi` en el almacén de parámetros. En la plantilla de inicialización, el valor del ID de AMI es `golden-ami`. Cuando se inicia una instancia con esta plantilla de inicialización, el ID de AMI se transforma en `ami-aabbccddeeffgghhi`. Posteriormente, la AMI se actualiza, lo que da como resultado un nuevo ID de AMI. En el almacén de parámetros, el parámetro `golden-ami` se asigna al nuevo `ami-00112233445566778`. *La plantilla de inicialización permanece sin cambios.* Cuando se inicia una instancia con esta plantilla de inicialización, el ID de AMI se convierte en el nuevo `ami-00112233445566778`.

![\[Use los parámetros de Systems Manager del almacén de parámetros para actualizar una plantilla de inicialización.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/launch-template-ami-alias.png)


### Formato de parámetros de Systems Manager para identificadores de AMI
<a name="ssm-parameter-format-for-ami-ids"></a>

Las plantillas de inicialización requieren que los parámetros de Systems Manager definidos por el usuario sigan el siguiente formato cuando se usen en lugar de un ID de AMI:
+ Tipo de parámetro: `String`
+ Tipo de datos de parámetros: `aws:ec2:image`: esto garantiza que el almacén de parámetros valide que el valor ingresado tenga el formato adecuado para un ID de AMI.

Para obtener más información sobre cómo crear un parámetro válido para un ID de AMI, consulte [Creación de parámetros de Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html) en la *Guía del usuario de AWS Systems Manager*.

### Formato de parámetros de Systems Manager en plantillas de inicialización
<a name="ssm-parameter-format-in-launch-templates"></a>

Para utilizar un parámetro de Systems Manager en lugar de un ID de AMI en una plantilla de inicialización, debe utilizar uno de los siguientes formatos al especificar el parámetro en la plantilla de inicialización:

Para hacer referencia a un parámetro público:
+ `resolve:ssm:public-parameter`

Para hacer referencia a un parámetro almacenado en la misma cuenta:
+ `resolve:ssm:parameter-name`
+ `resolve:ssm:parameter-name:version-number`: el número de versión en sí mismo es una etiqueta por defecto
+ `resolve:ssm:parameter-name:label`

Para hacer referencia a un parámetro compartido desde otra Cuenta de AWS:
+ `resolve:ssm:parameter-ARN`
+ `resolve:ssm:parameter-ARN:version-number`
+ `resolve:ssm:parameter-ARN:label`

**Versiones de parámetros**

Los parámetros de Systems Manager son recursos versionados. Al actualizar un parámetro, se crean versiones nuevas y sucesivas del parámetro. Systems Manager admite [etiquetas de parámetros](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html) que se pueden asignar a versiones específicas de un parámetro.

Por ejemplo, el parámetro `golden-ami` puede tener tres versiones: `1`, `2`, y `3`. Puede crear una etiqueta de parámetro `beta` que se asigne a la versión `2` y una etiqueta de parámetro `prod` que se asigne a la versión`3`.

En una plantilla de inicialización, puede especificar la versión 3 del parámetro `golden-ami` mediante uno de los siguientes formatos:
+ `resolve:ssm:golden-ami:3`
+ `resolve:ssm:golden-ami:prod`

La especificación de la versión o la etiqueta es opcional. Cuando no se especifica ninguna versión ni etiqueta, se utiliza la última versión del parámetro.

### Especificación de un parámetro de Systems Manager en una plantilla de inicialización
<a name="specify-systems-manager-parameter-in-launch-template"></a>

Puede especificar un parámetro de Systems Manager en una plantilla de inicialización en lugar de un ID de AMI al crear una plantilla de inicialización o una nueva versión de una plantilla de inicialización.

------
#### [ Console ]

**Especificación de un parámetro de Systems Manager en una plantilla de inicialización**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. 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)**. 

1. En **Launch template name (Nombre de plantilla de inicialización)**, introduzca un nombre descriptivo para la plantilla.

1. En **Application and OS Images (Imagen de máquina de Amazon)** (Imágenes de aplicaciones y sistema operativo [imagen de máquina de Amazon]), elija **Browse more AMIs** (Buscar más AMI).

1. Elija el botón de flecha situado a la derecha de la barra de búsqueda y luego elija **Especificar valor personalizado/parámetro de Systems Manager**.

1. En el cuadro de diálogo **Especificar valor personalizado o parámetro de Systems Manager**, haga lo siguiente:

   1. Para el **ID de AMI o la cadena de parámetros de Systems Manager**, introduzca el nombre del parámetro de Systems Manager mediante uno de los siguientes formatos:

      Para hacer referencia a un parámetro público:
      + **resolve:ssm:*public-parameter***

      Para hacer referencia a un parámetro almacenado en la misma cuenta:
      + **resolve:ssm:*parameter-name***
      + **resolve:ssm:*parameter-name*:*version-number***
      + **resolve:ssm:*parameter-name*:*label***

      Para hacer referencia a un parámetro compartido desde otra Cuenta de AWS:
      + **resolve:ssm:*parameter-ARN***
      + **resolve:ssm:*parameter-ARN*:*version-number***
      + **resolve:ssm:*parameter-ARN*:*label***

   1. Seleccione **Save**.

1. Especifique cualquier otro parámetro de la plantilla de inicialización según sea necesario y, a continuación, seleccione **Crear plantilla de inicialización**.

Para obtener más información, consulte [Creación de una plantilla de inicialización con la especificación de parámetros](#create-launch-template-define-parameters).

------
#### [ AWS CLI ]

**Especificación de un parámetro de Systems Manager en una plantilla de inicialización**
+ Utilice el comando [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) (crear una plantilla de inicialización) para crear la plantilla de inicialización. Para especificar la AMI que se va a utilizar, introduzca el nombre del parámetro de Systems Manager con uno de los siguientes formatos:

  Para hacer referencia a un parámetro público:
  + **resolve:ssm:*public-parameter***

  Para hacer referencia a un parámetro almacenado en la misma cuenta:
  + **resolve:ssm:*parameter-name***
  + **resolve:ssm:*parameter-name*:*version-number***
  + **resolve:ssm:*parameter-name*:*label***

  Para hacer referencia a un parámetro compartido desde otra Cuenta de AWS:
  + **resolve:ssm:*parameter-ARN***
  + **resolve:ssm:*parameter-ARN*:*version-number***
  + **resolve:ssm:*parameter-ARN*:*label***

  En el siguiente ejemplo se crea una plantilla de inicialización que especifica lo siguiente:
  + Un nombre para la plantilla de inicialización (`TemplateForWebServer`)
  + Una etiqueta para la plantilla de inicialización (`purpose`=`production`)
  + Los datos de la configuración de la instancia, especificados en un archivo JSON:
    + La AMI que se va a utilizar (`resolve:ssm:golden-ami`)
    + El tipo de instancia que va a iniciar (`m5.4xlarge`)
    + Una etiqueta para la instancia (`Name`=`webserver`)

  ```
  aws ec2 create-launch-template \
      --launch-template-name TemplateForWebServer \
      --tag-specifications 'ResourceType=launch-template,Tags=[{Key=purpose,Value=production}]' \
      --launch-template-data file://template-data.json
  ```

  A continuación se muestra un archivo JSON de ejemplo que contiene los datos de la plantilla de inicialización de la configuración de la instancia. El valor de `ImageId` es el nombre del parámetro de Systems Manager, introducido en el formato requerido `resolve:ssm:golden-ami`.

  ```
  {"LaunchTemplateData": {
      "ImageId": "resolve:ssm:golden-ami",
      "InstanceType": "m5.4xlarge",
      "TagSpecifications": [{
          "ResourceType": "instance",
          "Tags": [{
              "Key":"Name",
              "Value":"webserver"
          }]
      }]
    }
  }
  ```

------

### Verificación de que la plantilla de inicialización tenga el ID de AMI correcto
<a name="ssm-parameter-verify-ami-id"></a>

**Cómo convertir el parámetro de Systems Manager en el ID de AMI real**  
Utilice el comando [describe-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-template-versions.html) e incluya el parámetro `--resolve-alias`.

```
aws ec2 describe-launch-template-versions \
    --launch-template-name my-launch-template \
    --versions $Default \
    --resolve-alias
```

La respuesta incluye el ID de AMI para el `ImageId`. En este ejemplo, cuando se inicializa una instancia utilizando esta plantilla de inicialización, el ID de AMI se resuelve como `ami-0ac394d6a3example`.

```
{
    "LaunchTemplateVersions": [
        {
            "LaunchTemplateId": "lt-089c023a30example",
            "LaunchTemplateName": "my-launch-template",
            "VersionNumber": 1,
            "CreateTime": "2022-12-28T19:52:27.000Z",
            "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
            "DefaultVersion": true,
            "LaunchTemplateData": {
                "ImageId": "ami-0ac394d6a3example",
                "InstanceType": "t3.micro",
            }
        }
    ]
}
```

### Recursos relacionados
<a name="ssm-parameter-related-resources"></a>

Para obtener más información sobre cómo trabajar con parámetros de Systems Manager, consulte los siguientes materiales de referencia en la documentación de Systems Manager.
+ Para obtener información sobre cómo buscar los parámetros públicos de la AMI compatibles con Amazon EC2, consulte [Calling AMI public parameters](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-public-parameters-ami.html).
+ Para obtener información sobre cómo compartir parámetros con otras cuentas de AWS o a través de AWS Organizations, consulte [Working with shared parameters](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-shared-parameters.html).
+ Para obtener información sobre la supervisión para controlar si los parámetros se crearon correctamente, consulte [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).

### Limitaciones
<a name="ssm-parameter-limitations"></a>
+ Solo las flotas de EC2 de tipo `instant` admiten el uso de una plantilla de inicialización que tenga un parámetro de Systems Manager especificado en lugar de un ID de AMI.
+ Las flotas de EC2 de tipo `maintain` y `request`, y las flotas de spot no admiten el uso de una plantilla de inicialización que tenga un parámetro de Systems Manager especificado en lugar de un ID de AMI. Para las flotas de EC2 de tipo `maintain` y `request`, y las flotas de spot, si especifica una AMI en la plantilla de inicialización, debe especificar el ID de AMI.
+ Si utiliza la [selección de la instancia basada en atributos](ec2-fleet-attribute-based-instance-type-selection.md) en su flota de EC2, no puede especificar un parámetro de Systems Manager en lugar de un ID de AMI. Cuando utilice la selección de la instancia basada en atributos, debe especificar el ID de AMI.
+ Amazon EC2 Auto Scaling ofrece otras restricciones. Para obtener más información, consulte [Use AWS Systems Manager parameters instead of AMI IDs in launch templates](https://docs.aws.amazon.com/autoscaling/ec2/userguide/using-systems-manager-parameters.html) en la *Guía del usuario de Amazon EC2 Auto Scaling*.

# Modificar una plantilla de inicialización (administrar versiones de plantillas de inicialización)
<a name="manage-launch-template-versions"></a>

Las plantillas de inicialización son inmutables; después de crear una plantilla de inicialización, no podrá modificarla. En cambio, puede crear una nueva versión de la plantilla de inicialización que incluya los cambios que necesite.

Puede crear diferentes versiones de una plantilla de inicialización, definir la versión predeterminada, describir una versión de plantilla de inicialización y [eliminar las versiones](delete-launch-template.md#delete-launch-template-version) que ya no necesite.

**Topics**
+ [Crear una versión de plantilla de inicialización](#create-launch-template-version)
+ [Establecer la versión de la plantilla de inicialización predeterminada](#set-default-launch-template-version)
+ [Describir una versión de una plantilla de inicialización](#describe-launch-template-version)

## Crear una versión de plantilla de inicialización
<a name="create-launch-template-version"></a>

Al crear una versión de una plantilla de inicialización, puede especificar parámetros nuevos o usar una versión que ya esté disponible como base para la nueva. Para obtener una descripción de cada parámetro, consulte [Referencia de parámetros de configuración de instancias de Amazon EC2](ec2-instance-launch-parameters.md).

------
#### [ Console ]

**Para crear una versión de plantilla de inicialización**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

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

1. Seleccione una plantilla de inicialización y, a continuación, elija **Actions (Acciones)**, **Modify template (Create new version) (Modificar plantilla (Crear nueva versión))**.

1. En **Template version description (Descripción de la versión de plantilla)**, escriba una descripción para esta versión de la plantilla de inicialización.

1. (Opcional) Expanda la **Source template (Plantilla de origen)** y seleccione una versión de la plantilla de inicialización para utilizarla como base para la nueva versión de la plantilla de inicialización. La nueva versión de plantilla de inicialización hereda los parámetros de inicialización de esta versión de plantilla de inicialización.

1. Modifique los parámetros de inicialización según sea necesario.

1. Elija **Crear plantilla de inicialización**.

------
#### [ AWS CLI ]

**Para crear una versión de plantilla de inicialización**  
Utilice el comando [create-launch-template-version](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template-version.html). Puede especificar una versión de origen en la que basar la nueva. La nueva versión hereda los parámetros de inicialización de esta versión, pero puede invalidarlos con `--launch-template-data`. En el siguiente ejemplo, se crea una nueva versión basada en la versión 1 de la plantilla de inicialización y se especifica un ID de AMI diferente.

```
aws ec2 create-launch-template-version \
    --launch-template-id lt-0abcd290751193123 \
    --version-description WebVersion2 \
    --source-version 1 \
    --launch-template-data "ImageId=ami-0abcdef1234567890"
```

------
#### [ PowerShell ]

**Para crear una versión de plantilla de inicialización**  
Utilice el cmdlet [New-EC2LaunchTemplateVersion](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2LaunchTemplateVersion.html). Puede especificar una versión de origen en la que basar la nueva. La nueva versión hereda los parámetros de inicialización de esta versión, pero puede invalidarlos con `LaunchTemplateData`. En el siguiente ejemplo, se crea una nueva versión basada en la versión 1 de la plantilla de inicialización y se especifica un ID de AMI diferente.

```
New-EC2LaunchTemplateVersion `
    -LaunchTemplateId lt-0abcd290751193123 `
    -VersionDescription WebVersion2 `
    -SourceVersion 1 `
    -LaunchTemplateData (
        New-Object `
            -TypeName Amazon.EC2.Model.RequestLaunchTemplateData `
            -Property @{ImageId = 'ami-0abcdef1234567890'}
    )
```

------

## Establecer la versión de la plantilla de inicialización predeterminada
<a name="set-default-launch-template-version"></a>

Puede definir la versión predeterminada de una plantilla de inicialización. Si no especifica una versión al iniciar una instancia desde una plantilla de inicialización, se inicia con los parámetros de la versión predeterminada.

------
#### [ Console ]

**Para establecer la versión de la plantilla de inicialización predeterminada**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

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

1. Seleccione la plantilla de inicialización que desee y elija **Actions (Acciones)**, seguido de **Set default version (Establecer versión predeterminada)**.

1. En **Template version (Versión de plantilla)**, seleccione el número de versión que desea establecer como versión predeterminada y elija **Set as default version (Establecer como versión predeterminada)**.

------
#### [ AWS CLI ]

**Para establecer la versión de la plantilla de inicialización predeterminada**  
Utilice el comando [modify-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-launch-template.html).

```
aws ec2 modify-launch-template \
    --launch-template-id lt-0abcd290751193123 \
    --default-version 2
```

------
#### [ PowerShell ]

**Para establecer la versión de la plantilla de inicialización predeterminada**  
Utilice el cmdlet [Edit-EC2LaunchTemplate](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2LaunchTemplate.html).

```
Edit-EC2LaunchTemplate `
    -LaunchTemplateId lt-0abcd290751193123 `
    -DefaultVersion 2
```

------

## Describir una versión de una plantilla de inicialización
<a name="describe-launch-template-version"></a>

Con la consola, puede ver todas las versiones de la plantilla de inicialización seleccionada u obtener una lista de las plantillas de inicialización cuya versión más reciente o predeterminada coincida con un número de versión específico. Con la AWS CLI, puede describir todas las versiones, versiones individuales o un rango de versiones de una plantilla de inicialización especificada. También puede describir todas las versiones más recientes o todas las versiones predeterminadas de todas las plantillas de inicialización de su cuenta.

------
#### [ Console ]

**Para describir una versión de una plantilla de inicialización**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

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

1. Puede ver una versión de una plantilla de inicialización específica u obtener una lista de las plantillas de inicialización cuya versión más reciente o predeterminada coincida con un número de versión específico.
   + Para ver la versión de una plantilla de inicialización: seleccione la plantilla de inicialización. En la pestaña **Versiones**, en **Versión**, seleccione una versión para ver sus detalles.
   + Para obtener una lista de todas las plantillas de inicialización cuya última versión coincida con un número de versión específico: en la barra de búsqueda, elija **Última versión**, y, a continuación, seleccione un número de versión.
   + Para obtener una lista de todas las plantillas de inicialización cuya última versión predeterminada coincida con un número de versión específico: en la barra de búsqueda, elija **Versión predeterminada**, y, a continuación, seleccione un número de versión.

------
#### [ AWS CLI ]

**Para describir una versión de una plantilla de inicialización**  
Utilice el comando [describe-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-template-versions.html) y especifique los números de versión. En el siguiente ejemplo, se especifican las versiones `1` y *`3`*.

```
aws ec2 describe-launch-template-versions \
    --launch-template-id lt-0abcd290751193123 \
    --versions 1 3
```

**Para describir las versiones de la plantilla de inicialización más recientes y predeterminadas de la cuenta**  
Utilice el comando [describe-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-template-versions.html) y especifique `$Latest`, `$Default` o ambos. Debe omitir el ID de la plantilla de inicialización y el nombre en la llamada. No puede especificar números de versión.

```
aws ec2 describe-launch-template-versions \
    --versions "$Latest,$Default"
```

------
#### [ PowerShell ]

**Para describir una versión de una plantilla de inicialización**  
Utilice el cmdlet [Get-EC2TemplateVersion](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2TemplateVersion.html) y especifique los números de versión. En el siguiente ejemplo, se especifican las versiones `1` y *`3`*.

```
Get-EC2TemplateVersion `
    -LaunchTemplateId lt-0abcd290751193123 `
    -Version 1,3
```

**Para describir las versiones de la plantilla de inicialización más recientes y predeterminadas de la cuenta**  
Use el cmdlet [Get-EC2TemplateVersion](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2TemplateVersion.html) y especifique `$Latest`, `$Default` o ambos. Debe omitir el ID de la plantilla de inicialización y el nombre en la llamada. No puede especificar números de versión.

```
Get-EC2TemplateVersion `
    -Version '$Latest','$Default'
```



------

# Eliminación de una plantilla de inicialización o una versión de plantilla de inicialización
<a name="delete-launch-template"></a>

Si ya no necesita una plantillla de inicialización en concreto, puede eliminarla. Al eliminar una plantilla de inicialización, también se eliminan todas sus versiones. Si solo desea eliminar una versión específica de una plantilla de inicialización, puede hacerlo mientras conserva las demás versiones de la plantilla de inicialización.

La eliminación de una plantilla de inicialización o la versión de una plantilla de inicialización no afecta a las instancias que haya iniciado desde la plantilla de inicialización. 

## Eliminación de una plantilla de inicialización junto con todas sus versiones
<a name="delete-launch-template-including-versions"></a>

Si ya no necesita una plantilla de inicialización, incluidas todas sus versiones, puede eliminar la plantilla de inicialización. Al eliminar una plantilla de inicialización, también se eliminan todas sus versiones.

------
#### [ Console ]

**Eliminación de una plantilla de inicialización y todas sus versiones**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

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

1. Seleccione la plantilla de inicialización que desee y elija **Actions (Acciones)**, seguido de **Delete template (Eliminar plantilla)**.

1. Escriba **Delete** para confirmar la eliminación y, a continuación, elija **Delete (Eliminar)**.

------
#### [ AWS CLI ]

**Eliminación de una plantilla de inicialización y todas sus versiones**  
Utilice el comando [delete-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-launch-template.html) y especifique la plantilla de lanzamiento.

```
aws ec2 delete-launch-template --launch-template-id lt-01238c059e3466abc
```

------
#### [ PowerShell ]

**Eliminación de una plantilla de inicialización y todas sus versiones**  
Utilice el comando [Remove-EC2LaunchTemplate](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2LaunchTemplate.html) (Herramientas de AWS para PowerShell) y especifique la plantilla de inicialización. Si se omite `-Force`, PowerShell solicitará una confirmación.

```
Remove-EC2LaunchTemplate -LaunchTemplateId lt-0123456789example -Force
```

------

## Eliminar una versión de plantilla de inicialización
<a name="delete-launch-template-version"></a>

Si ya no necesita una versión de plantillla de inicialización en concreto, puede eliminarla.

**Consideraciones**
+ No puede sustituir el número de versión después de eliminarlo.
+ No puede eliminar la versión predeterminada de la plantilla de inicialización. Para poder hacerlo, primero debe asignar otra como predeterminada. Si la versión predeterminada es la única versión para la plantilla de inicialización, debe [eliminar toda la plantilla de inicialización](#delete-launch-template).
+ Al utilizar la consola, puede eliminar una versión de la plantilla de inicialización a la vez. Cuando se utiliza la AWS CLI, puede eliminar hasta 200 versiones de plantillas de inicialización en una sola solicitud. Para eliminar más de 200 versiones en una sola solicitud, puede [eliminar la plantilla de inicialización](#delete-launch-template), que también elimina todas sus versiones.

------
#### [ Console ]

**Para eliminar una versión de plantilla de inicialización**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

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

1. Seleccione la plantilla de inicialización que desee y elija **Actions (Acciones)**, seguido de **Delete template version (Eliminar versión de plantilla)**.

1. Seleccione la versión que desea eliminar y elija **Delete (Eliminar)**.

------
#### [ AWS CLI ]

**Para eliminar una versión de plantilla de inicialización**  
Utilice el comando [delete-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-launch-template-versions.html) y especifique los números de versión que desea eliminar. Puede especificar hasta 200 versiones de plantillas de inicialización para eliminarlas en una sola solicitud.

```
aws ec2 delete-launch-template-versions \
    --launch-template-id lt-0abcd290751193123 \
    --versions 1
```

------
#### [ PowerShell ]

**Para eliminar una versión de plantilla de inicialización**  
Utilice el cmdlet [Remove-EC2TemplateVersion](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2TemplateVersion.html) y especifique los números de versión que desee eliminar. Puede especificar hasta 200 versiones de plantillas de inicialización para eliminarlas en una sola solicitud.

```
Remove-EC2TemplateVersion `
    -LaunchTemplateId lt-0abcd290751193123 `
    -Version 1
```

------