Utilice AWS Systems Manager parámetros en lugar de AMI IDs en 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 AMI IDs en 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). Puedes usar un parámetro almacenado en la tuya Cuenta de AWS, un parámetro compartido por otro Cuenta de AWS o un parámetro público para un público AMI mantenido por AWS.

Con los parámetros de Systems Manager, puede actualizar sus grupos de Auto Scaling para usarlos nuevos AMI IDs sin necesidad de crear nuevas plantillas de lanzamiento o nuevas versiones de las plantillas de lanzamiento cada vez que cambie un AMI ID. Estos IDs pueden cambiar con regularidad, por ejemplo, cuando una AMI se actualiza con las últimas actualizaciones del sistema operativo o del software.

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 empezar, cree un parámetro con el tipo de datos yaws:ec2:image, para su valor, introduzca el ID de unAMI. El AMI ID tiene la formaami-<identifier>, por ejemplo,ami-123example456. El AMI ID correcto depende del tipo de instancia y del lugar en el Región de AWS que esté lanzando su grupo de Auto Scaling.

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

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

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

Console
Para crear una plantilla de lanzamiento mediante un AWS Systems Manager parámetro
  1. Abre la EC2 consola de Amazon 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 sistemas operativos (Amazon Machine Image), selecciona Explorar más AMIs.

  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 AMIID o 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. Sustituya cada user input placeholder con tu propia información.

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

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 versión más reciente de Amazon Linux 2 AMI 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

Contenidos 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 siguiente ejemplo, se crea una plantilla de lanzamiento que obtiene el AMI ID de un parámetro de Systems Manager existente denominadogolden-ami.

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

Contenidos 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 siguiente ejemplo hace referencia a una versión específica del golden-ami parámetro. El ejemplo usa la versión 3 del golden-ami parámetro, 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 la etiqueta del parámetro prod que se asigna a una versión específica del golden-ami parámetro.

{ "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 AMI ID de un parámetro de Systems Manager existente con el valor ARN dearn: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

Contenidos 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. En el ejemplo se utiliza la versión 3 del MyParameter parámetro, pero puede utilizar 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 la etiqueta del parámetro prod que se asigna a una versión específica del MyParameter parámetro.

{ "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 IAM políticas en la Guía del AWS Systems Manager usuario.

Compruebe que una plantilla de lanzamiento tenga el AMI ID correcto

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

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

El ejemplo devuelve el AMI ID deImageId. Cuando se lanza una instancia con esta plantilla de lanzamiento, el AMI ID se convierte enami-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 AMI ID en la Guía del EC2 usuario de Amazon.

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 AMI IDs como parámetros.

  • No se admite la creación o actualización de grupos de instancias mixtas con una selección del tipo de instancia basada en atributos 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 su grupo de Auto Scaling, Amazon EC2 Auto Scaling resolverá el parámetro 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, a la GetParameters operación) pueden aumentar los costes de Systems Manager, ya que se incurre en cargos por cada API interacción con el almacén de parámetros. Para obtener más información, consulte Precios de AWS Systems Manager.