Uso de una actualización de instancias con la omisión de coincidencias - 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.

Uso de una actualización de instancias con la omisión de coincidencias

Omitir coincidencia indica a Amazon EC2 Auto Scaling que ignore las instancias que ya tienen sus actualizaciones más recientes. De esta forma, no reemplaza más instancias de las necesarias. Esto es útil cuando quiere asegurarse de que su grupo de escalado automático utilice una versión determinada de la plantilla de lanzamiento y solo sustituya las instancias que usan una versión diferente.

Tenga en cuenta las siguientes consideraciones para omitir coincidencias:

  • Si inicia una actualización de instancias con la configuración deseada y omite la coincidencia, Amazon EC2 Auto Scaling comprueba si alguna instancia coincide con la configuración deseada. A continuación, solo reemplaza las instancias que no coincidan con la configuración deseada. Cuando la actualización de la instancia se haya realizado correctamente, Amazon EC2 Auto Scaling actualizará el grupo para reflejar la configuración deseada.

  • Si inicia una actualización de instancias omitiendo coincidencias, pero no especifica la configuración deseada, Amazon EC2 Auto Scaling comprueba si alguna instancia coincide con la configuración que guardó por última vez en el grupo Auto Scaling. A continuación, solo reemplaza las instancias que no coincidan con la última configuración guardada.

  • Puede utilizar la omisión de coincidencias con una nueva plantilla de lanzamiento, una nueva versión de la plantilla de lanzamiento actual o un conjunto de tipos de instancia. Si habilita la omisión de coincidencias, pero ninguna de estas opciones cambia, la actualización de instancias se ejecutará inmediatamente sin reemplazar ninguna instancia. Si ha realizado cualquier otro cambio en la configuración deseada (por ejemplo, cambiar su estrategia de asignación de puntos), Amazon EC2 Auto Scaling espera a que la actualización de la instancia se realice correctamente. A continuación, actualiza la configuración del grupo de escalado automático para reflejar la nueva configuración deseada.

  • No puede utilizar la omisión de coincidencias con una configuración de lanzamiento nueva.

  • Cuando inicia una actualización de instancias y proporciona la configuración deseada, Amazon EC2 Auto Scaling se asegura de que todas las instancias usen la configuración deseada. Por lo tanto, si especifica $Default o $Latest como la versión deseada para su plantilla de lanzamiento y, a continuación, crea una nueva versión de la plantilla de lanzamiento mientras se está actualizando la instancia, todas las instancias que ya se hayan reemplazado volverán a sustituirse.

  • La omisión de coincidencias no sabe si un script de datos de usuario de la plantilla de lanzamiento extraerá el código actualizado y lo instalará en nuevas instancias. Como resultado, es posible que, al omitir las coincidencias, no se reemplacen las instancias que tengan instalado un código desactualizado. En este caso, debe desactivar la omisión de coincidencias para asegurarse de que todas las instancias reciban el código más reciente, incluso sin actualizar la versión de la plantilla de lanzamiento.

En esta sección se incluyen AWS CLI instrucciones para iniciar una actualización de instancias con la opción de omisión de coincidencias habilitada. Para obtener instrucciones sobre cómo utilizar la consola, consulte Inicio de una actualización de instancias (consola).

Siga los pasos de esta sección para utilizar el y AWS CLI hacer lo siguiente:

  • Cree la plantilla de lanzamiento que quiera aplicar a las instancias.

  • Comience una actualización de instancias para aplicar la plantilla de lanzamiento a un grupo de escalado automático. Si no habilita la omisión de coincidencias, se reemplazarán todas las instancias. Esto se aplica incluso si la plantilla de lanzamiento utilizada para aprovisionar la instancia es la misma que se especificó para la configuración deseada.

Uso de la omisión de coincidencias con una nueva plantilla de lanzamiento
  1. Use el create-launch-templatecomando para crear una nueva plantilla de lanzamiento para su grupo de Auto Scaling. Incluya la --launch-template-data opción y la JSON entrada que definan los detalles de las instancias que se crean para su grupo de Auto Scaling.

    Por ejemplo, utilice el siguiente comando para crear una plantilla de lanzamiento básica con el AMI ID ami-0123456789abcdef0 y el tipo de instancia. t2.micro

    aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"ImageId":"ami-0123456789abcdef0","InstanceType":"t2.micro"}'

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b729example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "CreateTime": "2023-01-30T18:16:06.000Z", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

    Para obtener más información, consulte Ejemplos de creación y administración de plantillas de lanzamiento con AWS CLI.

  2. Usa el start-instance-refreshcomando para iniciar el flujo de trabajo de reemplazo de instancias y aplica tu nueva plantilla de lanzamiento con el ID Ejemplo de lt-068f72b729. Como la plantilla de lanzamiento es nueva, solo tiene una versión. Esto significa que la versión 1 de la plantilla de lanzamiento es el objetivo de esta actualización de instancias. Si se produce un evento de escalamiento horizontal durante la actualización de la instancia y Amazon EC2 Auto Scaling aprovisiona nuevas instancias con la versión 1 de esta plantilla de lanzamiento, no se reemplazarán. Cuando se finaliza adecuadamente la operación, la nueva plantilla de lanzamiento se aplica de manera correcta en un grupo de escalado automático.

    aws autoscaling start-instance-refresh --cli-input-json file://config.json

    Contenido de config.json.

    { "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b729example", "Version": "$Default" } }, "Preferences": { "SkipMatching": true } }

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }

Si tiene un grupo de Auto Scaling con una política de instancias mixtas, siga los pasos de esta sección AWS CLI para iniciar una actualización de instancias con la opción de omitir la coincidencia. Dispone de las opciones siguientes:

  • Proporcione una nueva plantilla de lanzamiento para aplicarla a todos los tipos de instancias especificados en la política.

  • Proporcione un conjunto actualizado de tipos de instancias cambiando o sin cambiar la plantilla de lanzamiento de la política. Por ejemplo, es posible que quiera alejarse de los tipos de instancias no deseados. Debe usar la plantilla de lanzamiento tal como está, sin cambiar los AMI grupos de seguridad u otros detalles de las instancias que se van a reemplazar.

Siga los pasos de una de las siguientes secciones, en función de la opción que se adapte a sus necesidades.

Uso de la omisión de coincidencias con una nueva plantilla de lanzamiento
  1. Use el create-launch-templatecomando para crear una nueva plantilla de lanzamiento para su grupo de Auto Scaling. Incluya la --launch-template-data opción y la JSON entrada que definan los detalles de las instancias que se crean para su grupo de Auto Scaling.

    Por ejemplo, utilice el siguiente comando para crear una plantilla de lanzamiento con el AMI ID ami-0123456789abcdef0.

    aws ec2 create-launch-template --launch-template-name my-new-template --version-description version1 \ --launch-template-data '{"ImageId":"ami-0123456789abcdef0"}'

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "LaunchTemplate": { "LaunchTemplateId": "lt-04d5cc9b88example", "LaunchTemplateName": "my-new-template", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "CreateTime": "2023-01-31T15:56:02.000Z", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

    Para obtener más información, consulte Ejemplos de creación y administración de plantillas de lanzamiento con AWS CLI.

  2. Para ver la política de instancias mixtas existente para su grupo de Auto Scaling, ejecute el describe-auto-scaling-groupscomando. Necesitará esta información en el siguiente paso, cuando inicie la actualización de instancias.

    El siguiente comando de ejemplo devuelve la política de instancias mixtas configurada para el grupo de Auto Scaling denominado my-asg.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "AutoScalingGroups":[ { "AutoScalingGroupName":"my-asg", "AutoScalingGroupARN":"arn", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-073693ed27example", "LaunchTemplateName":"my-old-template", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" }, { "InstanceType":"m5a.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } }, "MinSize":1, "MaxSize":5, "DesiredCapacity":4, ... } ] }
  3. Usa el start-instance-refreshcomando para iniciar el flujo de trabajo de reemplazo de instancias y aplica tu nueva plantilla de lanzamiento con el ID Ejemplo de lt-04d5cc9b88. Como la plantilla de lanzamiento es nueva, solo tiene una versión. Esto significa que la versión 1 de la plantilla de lanzamiento es el objetivo de esta actualización de instancias. Si se produce un evento de escalamiento horizontal durante la actualización de la instancia y Amazon EC2 Auto Scaling aprovisiona nuevas instancias con la versión 1 de esta plantilla de lanzamiento, no se reemplazarán. Cuando se finaliza adecuadamente la operación, la política de instancias mixtas se aplica de manera correcta en un grupo de escalado automático.

    aws autoscaling start-instance-refresh --cli-input-json file://config.json

    Contenido de config.json.

    { "AutoScalingGroupName":"my-asg", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-04d5cc9b88example", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" }, { "InstanceType":"m5a.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } } } }, "Preferences":{ "SkipMatching":true } }

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }

En el siguiente procedimiento, proporcionará un conjunto actualizado de tipos de instancias sin cambiar la plantilla de lanzamiento.

Para utilizar la omisión de coincidencias con un conjunto actualizado de tipos de instancias
  1. Para ver la política de instancias mixtas existente para su grupo de Auto Scaling, ejecute el describe-auto-scaling-groupscomando. Necesitará esta información en el siguiente paso, cuando inicie la actualización de instancias.

    El siguiente comando de ejemplo devuelve la política de instancias mixtas configurada para el grupo de Auto Scaling denominado my-asg.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "AutoScalingGroups":[ { "AutoScalingGroupName":"my-asg", "AutoScalingGroupARN":"arn", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-073693ed27example", "LaunchTemplateName":"my-template-for-auto-scaling", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" }, { "InstanceType":"m5a.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } }, "MinSize":1, "MaxSize":5, "DesiredCapacity":4, ... } ] }
  2. Usa el start-instance-refreshcomando para iniciar el flujo de trabajo de reemplazo de instancias y aplicar las actualizaciones. Si quiere reemplazar las instancias que utilizan tipos de instancia específicos, la configuración deseada debe especificar la política de instancias mixtas solo con los tipos de instancia deseados. Puede elegir si quiere agregar nuevos tipos de instancias en su lugar.

    El siguiente comando de ejemplo inicia una actualización de instancias sin el tipo de instancia no deseado m5a.large. Cuando un tipo de instancia de tu grupo no coincide con uno de los tres tipos de instancias restantes, las instancias se reemplazan. (Tenga en cuenta que una actualización de instancias no elige los tipos de instancia desde los que aprovisionar las nuevas instancias; en su lugar, lo hacen las estrategias de asignación). Cuando se finaliza adecuadamente la operación, la política de instancias mixtas se aplica de manera correcta en un grupo de escalado automático.

    aws autoscaling start-instance-refresh --cli-input-json file://config.json

    Contenido de config.json

    { "AutoScalingGroupName":"my-asg", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-073693ed27example", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } } } }, "Preferences":{ "SkipMatching":true } }