Utilización de plantillas de lanzamiento múltiples - Amazon EC2 Auto Scaling

Utilización de plantillas de lanzamiento múltiples

Además de utilizar varios tipos de instancia, también puede utilizar varias plantillas de lanzamiento.

Por ejemplo, supongamos que configura un grupo de escalado automático para aplicaciones de uso informático intensivo y desea incluir una combinación de tipos de instancias C5, C5a y C6g. Sin embargo, las instancias C6g cuentan con un procesador Graviton de AWS basado en la arquitectura ARM de 64 bits, mientras que las instancias C5 y C5a se ejecutan en procesadores Intel x86 de 64 bits. Las AMI para las instancias C5 y C5a funcionan en ambos tipos de instancias, pero no en instancias C6g. Para solucionar este problema, use una plantilla de lanzamiento diferente para las instancias de C6g. Puede seguir utilizando la misma plantilla de lanzamiento para las instancias C5 y C5a.

Esta sección contiene procedimientos para utilizar la AWS CLI para realizar tareas relacionadas con el uso de múltiples plantillas de lanzamiento. Actualmente, esta característica solo está disponible si utiliza la AWS CLI o un SDK, y no está disponible desde la consola.

Configuración de un grupo de escalado automático para utilizar varias plantillas de lanzamiento

Puede configurar un grupo de escalado automático para que utilice varias plantillas de lanzamiento, como se muestra en los siguientes ejemplos.

Configuración de un nuevo grupo de escalado automático para que utilice varias plantillas de lanzamiento (AWS CLI)

Utilice el comando create-auto-scaling-group. Por ejemplo, el comando siguiente crea un nuevo grupo de escalado automático. Especifica los tipos de instancias c5.large, c5a.large y c6g.large, y define una nueva plantilla de lanzamiento para el tipo de instancias c6g.large, para asegurarse de que se utiliza una AMI adecuada para lanzar instancias de ARM. Amazon EC2 Auto Scaling utiliza el orden de los tipos de instancias para determinar qué tipo de instancias se utilizará en primer lugar al cumplir con la capacidad en diferido.

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

El archivo config.json contiene la salida siguiente.

{ "AutoScalingGroupName":"my-asg", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateName":"my-launch-template-for-x86", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c6g.large", "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template-for-arm", "Version": "$Latest" } }, { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" } ] }, "InstancesDistribution":{ "OnDemandBaseCapacity": 1, "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize":1, "MaxSize":5, "DesiredCapacity":3, "VPCZoneIdentifier":"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags":[ ] }
Configuración de un grupo de escalado automático existente para que utilice varias plantillas de lanzamiento (AWS CLI)

Utilice el comando update-auto-scaling-group. Por ejemplo, el siguiente comando asigna la plantilla de lanzamiento nombrada my-launch-template-for-arm al tipo de c6g.large instancia del grupo de escalado automático denominado my-asg.

aws autoscaling update-auto-scaling-group --cli-input-json file://~/config.json

El archivo config.json contiene la salida siguiente.

{ "AutoScalingGroupName":"my-asg", "MixedInstancesPolicy":{ "LaunchTemplate":{ "Overrides":[ { "InstanceType":"c6g.large", "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template-for-arm", "Version": "$Latest" } }, { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" } ] } } }
Cómo configurar un nuevo grupo de escalado automático para utilizar varias plantillas de lanzamiento con una selección del tipo de instancia basada en atributos (AWS CLI)

Utilice el comando create-auto-scaling-group. Por ejemplo, el siguiente comando crea un nuevo grupo de escalado automático al especificar una plantilla de lanzamiento para las instancias de AWS Graviton con una AMI ARM y una plantilla de lanzamiento adicional para las instancias basadas en AMD o Intel con una AMI x86. Luego utiliza dos veces la selección de instancias basada en atributos para seleccionar entre un rango amplio de tipos de instancia para cada arquitectura de CPU. Puede agregar una configuración similar a un grupo de escalado automático existente con el comando update-autoscaling-group.

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

El archivo config.json contiene la salida siguiente.

{ "AutoScalingGroupName":"my-asg", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateName":"my-launch-template-for-arm", "Version":"$Latest" }, "Overrides":[ { "InstanceRequirements": { "VCpuCount": {"Min": 2}, "MemoryMiB": {"Min": 2048}, "CpuManufacturers": ["amazon-web-services"] } }, { "InstanceRequirements": { "VCpuCount": {"Min": 2}, "MemoryMiB": {"Min": 2048}, "CpuManufacturers": ["intel", "amd"] }, "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template-for-x86", "Version": "$Latest" } } ] }, "InstancesDistribution":{ "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "price-capacity-optimized" } }, "MinSize":1, "MaxSize":10, "DesiredCapacity":6, "VPCZoneIdentifier":"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags":[ ] }
Para verificar las plantillas de lanzamiento para un grupo de Auto Scaling

Utilice uno de los siguientes comandos:

Puede encontrar un ejemplo de especificación de varias plantillas de inicialización mediante la selección del tipo de instancia basada en atributos en una plantilla CloudFormation en AWS re:Post.