Utilice AWS Systems Manager parámetros en lugar de ID de AMI en las plantillas de lanzamiento - Amazon EC2 Auto Scaling

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.

Utilice AWS Systems Manager parámetros en lugar de ID de AMI en las plantillas de lanzamiento

En esta sección se muestra cómo crear una plantilla de lanzamiento que especifique un AWS Systems Manager parámetro que haga referencia a un ID de Amazon Machine Image (AMI). Puede usar un parámetro almacenado en su propia AMI Cuenta de AWS, un parámetro compartido con otro Cuenta de AWS o un parámetro público para una AMI pública mantenida por AWS.

Con los parámetros de Systems Manager, puede actualizar los grupos de escalado automático para utilizar nuevos ID de AMI sin necesidad de crear nuevas plantillas de lanzamiento o nuevas versiones de estas cada vez que cambie un ID de AMI. Estos ID pueden cambiar con regularidad, como cuando una AMI se actualiza con actualizaciones de software o el sistema operativo más reciente.

Puede crear, actualizar o eliminar sus propios parámetros de Systems Manager mediante el Almacén de parámetros, una capacidad de AWS Systems Manager. Debe crear un parámetro de Systems Manager antes de poder usarlo en una plantilla de lanzamiento. Para comenzar, cree un parámetro con el tipo de datos aws:ec2:image, y para su valor, especifique el ID de una AMI. El ID de AMI tiene el formato ami-<identifier>, por ejemplo, ami-123example456. El ID de AMI correcto depende del tipo de instancia y la Región de AWS en la que quiere lanzar el grupo de escalado automático.

Para obtener más información sobre la creación de un parámetro válido para un ID de AMI, consulte Creación de parámetros de Systems Manager.

Cree una plantilla de lanzamiento que especifique un parámetro para la AMI

Para crear una plantilla de lanzamiento que especifique un parámetro para la AMI, utilice uno de los métodos siguientes:

Console
Para crear una plantilla de lanzamiento mediante un AWS Systems Manager parámetro
  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 Launch template name (Nombre de plantilla de inicialización), introduzca un nombre descriptivo para la plantilla.

  4. En (Imágenes de aplicaciones y sistema operativo (imagen de máquina de Amazon), elija Buscar más AMI.

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

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

    2. Seleccione Guardar.

  7. Configure cualquier otro ajuste de la plantilla de lanzamiento según sea necesario y, a continuación, seleccione Crear plantilla de lanzamiento. Para obtener más información, consulte Creación de una plantilla de lanzamiento para un grupo de Auto Scaling.

AWS CLI

Para crear una plantilla de lanzamiento que especifique un parámetro de Systems Manager, puede utilizar uno de los siguientes comandos de ejemplo. Reemplace cada marcador de posición de entrada del usuario con información propia.

Ejemplo: cree una plantilla de lanzamiento que especifique un parámetro público AWS de su propiedad

Utilice la siguiente sintaxis: resolve:ssm:public-parameter, donde resolve:ssm es el prefijo estándar y public-parameter es la ruta y el nombre del parámetro público.

En este ejemplo, la plantilla de lanzamiento utiliza un parámetro público AWS proporcionado para lanzar instancias con la última AMI de Amazon Linux 2 configurada para su perfil. Región de AWS

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

Contenido de config.json:

{ "ImageId":"resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2", "InstanceType":"t2.micro" }

A continuación, se muestra un ejemplo de respuesta.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-089c023a30example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2022-12-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }
Ejemplo: cree una plantilla de lanzamiento que especifique un parámetro almacenado en la misma cuenta

Utilice la siguiente sintaxis: resolve:ssm:parameter-name, donde resolve:ssm es el prefijo estándar y parameter-name es el nombre del parámetro de Systems Manager.

En el ejemplo siguiente se crea una plantilla de lanzamiento que obtiene el ID de AMI de un parámetro de Systems Manager existente denominado golden-ami.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling \ --launch-template-data file://config.json

Contenido de config.json:

{ "ImageId":"resolve:ssm:golden-ami", "InstanceType":"t2.micro" }

La versión predeterminada del parámetro, cuando no se especifica, es la versión más reciente.

El ejemplo siguiente hace referencia a una versión específica del parámetro golden-ami. El ejemplo usa la versión 3 del parámetro golden-ami, pero puede usar cualquier número de versión válido.

{ "ImageId":"resolve:ssm:golden-ami:3", "InstanceType":"t2.micro" }

El siguiente ejemplo similar hace referencia a una etiqueta del parámetro prod que asigna a una versión específica del parámetro golden-ami.

{ "ImageId":"resolve:ssm:golden-ami:prod", "InstanceType":"t2.micro" }

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

{ "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2022-12-27T17:11:21.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }
Ejemplo: cree una plantilla de lanzamiento que especifique un parámetro compartido desde otro Cuenta de AWS

Utilice la siguiente sintaxis:resolve:ssm:parameter-ARN, donde resolve:ssm es el prefijo estándar y parameter-ARN es el ARN del parámetro Systems Manager.

En el siguiente ejemplo, se crea una plantilla de lanzamiento que obtiene el ID de AMI de un parámetro de Systems Manager existente con el ARN de. arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

Contenido de config.json:

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter", "InstanceType":"t2.micro" }

La versión predeterminada del parámetro, cuando no se especifica, es la versión más reciente.

El ejemplo siguiente hace referencia a una versión específica del parámetro MyParameter. El ejemplo usa la versión 3 del parámetro MyParameter, pero puede usar cualquier número de versión válido.

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter:3", "InstanceType":"t2.micro" }

El siguiente ejemplo similar hace referencia a una etiqueta del parámetro prod que asigna a una versión específica del parámetro MyParameter.

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter:prod", "InstanceType":"t2.micro" }

A continuación, se muestra un ejemplo de respuesta.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-00f93d4588example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2024-01-08T12:43:21.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

Para especificar un parámetro del almacén de parámetros en una plantilla de lanzamiento, debe tener el ssm:GetParameters permiso para el parámetro especificado. Cualquier persona que utilice la plantilla de lanzamiento también necesitará el ssm:GetParameters permiso para validar el valor del parámetro. Para obtener más información, consulte Restringir el acceso a los parámetros de Systems Manager mediante políticas de IAM en la Guía del AWS Systems Manager usuario.

Verificar que una plantilla de lanzamiento obtenga el ID de AMI correcto

Utilice el describe-launch-template-versionscomando e incluya la --resolve-alias opción para resolver el parámetro en el ID de AMI real.

aws ec2 describe-launch-template-versions --launch-template-name my-template-for-auto-scaling \ --versions $Default --resolve-alias

El ejemplo devuelve el ID de AMI de ImageId. Cuando se lanza una instancia con esta plantilla de lanzamiento, el ID de AMI se resuelve con ami-0ac394d6a3example.

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

Para obtener más información sobre cómo especificar un parámetro de Systems Manager en la plantilla de lanzamiento, consulte Utilizar un parámetro de Systems Manager en lugar de un ID de AMI en la Guía del usuario de Amazon EC2 para instancias de Linux.

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.

Limitaciones

Al trabajar con los parámetros de Systems Manager, tenga en cuenta las siguientes limitaciones:

  • Amazon EC2 Auto Scaling solo admite la especificación de los ID de AMI como parámetros.

  • Actualmente no se admite la creación o actualización de grupos de instancias mixtas mediante una plantilla de lanzamiento que especifique un parámetro de Systems Manager.

  • Si su grupo de Auto Scaling usa una plantilla de lanzamiento que especifica un parámetro de Systems Manager, no podrá iniciar una actualización de instancias con la configuración deseada ni mediante la función de omisión de coincidencias.

  • En cada llamada para crear o actualizar el grupo de escalado automático, Amazon EC2 Auto Scaling resolverá el parámetro de Systems Manager de la plantilla de lanzamiento. Si utiliza parámetros avanzados o límites de rendimiento más altos, las llamadas frecuentes al Almacén de parámetros (es decir, la operación GetParameters) pueden aumentar los costos de Systems Manager, ya que se cobran cargos por interacción con la API del Almacén de parámetros. Para obtener más información, consulte Precios de AWS Systems Manager.