Configurar un grupo de Auto Scaling para usar pesos de instancia - 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.

Configurar un grupo de Auto Scaling para usar pesos de instancia

Cuando utilizas varios tipos de instancias, puedes especificar cuántas unidades quieres asociar a cada tipo de instancia y, a continuación, especificar la capacidad del grupo con la misma unidad de medida. Esta opción de especificación de capacidad se conoce como ponderaciones.

Supongamos, por ejemplo, que ejecuta una aplicación que requiere muchos recursos de computación y que funciona mejor con al menos 8 vCPU y 15 GiB de RAM. Si utiliza c5.2xlarge como unidad base, cualquiera de los siguientes tipos de instancias EC2 satisfaría las necesidades de la aplicación.

Ejemplo de tipos de instancias
Tipo de instancia vCPU Memoria (GiB)
c5.2xlarge 8 16
c5.4xlarge 16 32
c5.12xlarge 48 96
c5.18xlarge 72 144
c5.24xlarge 96 192

De forma predeterminada, todos los tipos de instancias tienen la misma ponderación, independientemente de su tamaño. En otras palabras, tanto si Amazon EC2 Auto Scaling lanza un tipo de instancias grande como pequeño, todas las instancias cuentan a la hora de determinar la capacidad deseada del grupo de escalado automático.

Sin embargo, con los pesos, se asigna un valor numérico que especifica cuántas unidades se van a asociar a cada tipo de instancia. Por ejemplo, si las instancias tienen diferentes tamaños, una instancia c5.2xlarge podría tener una ponderación de 2, mientras que una instancia c5.4xlarge (que es dos veces mayor) podría tener una ponderación de 4, etc. Luego, cuando Amazon EC2 Auto Scaling escala el grupo, estas ponderaciones se traducen en la cantidad de unidades que cada instancia tiene en cuenta para calcular la capacidad deseada.

Las ponderaciones no cambian los tipos de instancias que Amazon EC2 Auto Scaling decide lanzar; en su lugar, lo hacen las estrategias de asignación. Para obtener más información, consulte Estrategias de asignación.

importante

Para configurar un grupo de escalado automático de modo que cumpla con la capacidad deseada utilizando la cantidad de vCPU o de memoria de cada tipo de instancia, le recomendamos que utilice una selección del tipo de instancia basada en atributos. Al configurar el DesiredCapacityType parámetro, se especifica automáticamente el número de unidades que se van a asociar a cada tipo de instancia en función del valor que haya establecido para este parámetro. Para obtener más información, consulte Crear un grupo de instancias mixtas mediante la selección del tipo de instancia basada en atributos.

Consideraciones

En esta sección, se analizan las consideraciones clave para implementar las ponderaciones de manera efectiva.

  • Elija algunos tipos de instancias que se adapten a las necesidades de rendimiento de su aplicación. Decida el peso que debe tener en cuenta cada tipo de instancia para la capacidad deseada de su grupo de Auto Scaling en función de sus capacidades. Estas ponderaciones se aplican a las instancias actuales y futuras.

  • Evite intervalos amplios entre los pesos. Por ejemplo, no especifiques un peso de 1 para un tipo de instancia cuando el siguiente tipo de instancia más grande tenga un peso de 200. La diferencia entre las ponderaciones más bajas y más altas tampoco debe ser exagerada. Las diferencias extremas de peso pueden afectar negativamente a la optimización de la relación costo-rendimiento.

  • Especifique la capacidad deseada del grupo en unidades, no en instancias. Por ejemplo, si utiliza pesos basados en vCPU, establezca el número deseado de núcleos, así como el mínimo y el máximo.

  • Establezca las ponderaciones y la capacidad deseada para que esta sea al menos dos o tres veces mayor que su ponderación más alta.

Tenga en cuenta lo siguiente al actualizar los grupos existentes:

  • Cuando añadas ponderaciones a un grupo existente, incluye las ponderaciones de todos los tipos de instancias que se utilizan actualmente.

  • Al añadir o cambiar los pesos, Amazon EC2 Auto Scaling lanzará o finalizará las instancias para alcanzar la capacidad deseada en función de los nuevos valores de peso.

  • Si elimina un tipo de instancia, las instancias en ejecución de ese tipo conservan su último peso, incluso si ya no están definidas.

Ejemplo: comportamientos relacionados con el peso

Cuando utiliza ponderaciones de instancias, Amazon EC2 Auto Scaling se comporta de la siguiente manera:

  • La capacidad actual será igual o superior a la capacidad deseada. La capacidad actual puede superar la capacidad deseada si se lanzan instancias que superan las unidades de capacidad deseadas restantes. Por ejemplo, supongamos que especifica dos tipos de instancias: c5.2xlarge y c5.12xlarge, y que asigna la ponderación 2 a c5.2xlarge y la ponderación 12 a c5.12xlarge. Si faltan cinco unidades para satisfacer la capacidad deseada, y Amazon EC2 Auto Scaling aprovisiona una c5.12xlarge, la capacidad deseada se sobrepasa en siete unidades.

  • Al lanzar instancias, Auto Scaling de Amazon EC2 prioriza la distribución de la capacidad entre las zonas de disponibilidad y el respeto de las estrategias de asignación en lugar de superar la capacidad deseada.

  • Amazon EC2 Auto Scaling puede superar el límite máximo de capacidad para mantener el equilibrio entre las zonas de disponibilidad, utilizando sus estrategias de asignación preferidas. El límite estricto impuesto por Amazon EC2 Auto Scaling es la capacidad deseada más el peso máximo.

Configuración de un grupo de escalado automático para utilizar ponderaciones

Puede configurar un grupo de escalado automático para usar ponderaciones, como se muestra en los siguientes ejemplos de AWS CLI . Para obtener instrucciones sobre cómo utilizar la consola, consulte Crear un grupo de instancias mixtas seleccionando manualmente los tipos de instancias.

Para configurar un nuevo grupo de escalado automático para utilizar ponderaciones (AWS CLI)

Utilice el comando create-auto-scaling-group. Por ejemplo, el comando siguiente crea un nuevo grupo de escalado automático y asigna ponderaciones al especificar lo siguiente:

  • El porcentaje del grupo que lanzar como instancias en diferido (0)

  • La estrategia de asignación de instancias de spot de cada zona de disponibilidad (capacity-optimized)

  • Los tipos de instancia que se van a lanzar por orden de prioridad (m4.16xlarge, m5.24xlarge)

  • Las ponderaciones de las instancias en relación con la diferencia de tamaño relativa (vCPU) entre los tipos de instancia (16, 24)

  • Las subredes en las que lanzar las instancias (subnet-5ea0c127, subnet-c934b782)subnet-6194ea3b, cada una de ellas correspondiente a una zona de disponibilidad diferente

  • La plantilla de lanzamiento (my-launch-template) y la versión de la plantilla de lanzamiento ($Latest)

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", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "m4.16xlarge", "WeightedCapacity": "16" }, { "InstanceType": "m5.24xlarge", "WeightedCapacity": "24" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize": 160, "MaxSize": 720, "DesiredCapacity": 480, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": [] }
Para configurar un grupo de escalado automático existente para utilizar ponderaciones (AWS CLI)

Utilice el comando update-auto-scaling-group. Por ejemplo, el comando siguiente asigna ponderaciones a los tipos de instancias de un grupo de escalado automático existente al especificar lo siguiente:

  • Los tipos de instancia que se van a lanzar por orden de prioridad (c5.18xlarge, c5.24xlarge, c5.2xlarge, c5.4xlarge)

  • Las ponderaciones de las instancias en relación con la diferencia de tamaño relativa (vCPU) entre los tipos de instancia (18, 24, 2. 4)

  • La nueva capacidad deseada, que es mayor que la ponderación más alta

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

El archivo config.json contiene la salida siguiente.

{ "AutoScalingGroupName": "my-existing-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "Overrides": [ { "InstanceType": "c5.18xlarge", "WeightedCapacity": "18" }, { "InstanceType": "c5.24xlarge", "WeightedCapacity": "24" }, { "InstanceType": "c5.2xlarge", "WeightedCapacity": "2" }, { "InstanceType": "c5.4xlarge", "WeightedCapacity": "4" } ] } }, "MinSize": 0, "MaxSize": 100, "DesiredCapacity": 100 }
Para verificar las ponderaciones con la línea de comandos

Utilice uno de los siguientes comandos:

Ejemplo de precio de spot por hora de unidad

En la siguiente tabla, se compara el precio por hora de las instancias de spot en diferentes zonas de disponibilidad del Este de EE. UU. (Norte de Virginia) con el precio de las instancias bajo demanda de la misma región. Los precios mostrados son solo ejemplos; no son los precios actuales. Estos son sus costos por hora de instancia.

Ejemplo: Precio de las instancias de spot por hora de instancia
Tipo de instancia us-east-1a us-east-1b us-east-1c Precios bajo demanda
c5.2xlarge 0,180 USD 0,191 USD 0,170 USD 0,34 USD
c5.4xlarge 0,341 USD 0,361 USD 0,318 USD 0,68 USD
c5.12xlarge 0,779 USD 0,777 USD 0,777 USD 2,04 USD
c5.18xlarge 1,207 USD 1,475 USD 1,357 USD 3,06 USD
c5.24xlarge 1,555 USD 1,555 USD 1,555 USD 4,08 USD

Con las ponderaciones de instancias, puede evaluar los costos en función del uso por hora de unidad. Puede calcular el precio por hora de unidad dividiendo el precio de un tipo de instancia por el número de unidades que representa. En las instancias bajo demanda, el precio por hora de unidad es el mismo cuando se implementa un solo tipo de instancia y cuando se implementa un tamaño diferente del mismo tipo de instancia. Sin embargo, el precio de spot por hora de unidad varía en función del grupo de spot.

En el siguiente ejemplo, se muestra cómo funciona el cálculo del precio de spot por hora de unidad con las ponderaciones de las instancias. Para facilitar el cálculo, supongamos que desea lanzar instancias de spot solo en us-east-1a. El precio por hora de unidad se muestra en la siguiente tabla.

Ejemplo: precio de spot por hora de unidad
Tipo de instancia us-east-1a Ponderación de instancia Precio por hora de unidad
c5.2xlarge 0,180 USD 2 0,090 USD
c5.4xlarge 0,341 USD 4 0,085 USD
c5.12xlarge 0,779 USD 12 0,065 USD
c5.18xlarge 1,207 USD 18 0,067 USD
c5.24xlarge 1,555 USD 24 0,065 USD