Creación de grupos de instancias mixtas mediante la selección del tipo de instancia basada en atributos - 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.

Creación de grupos de instancias mixtas mediante la selección del tipo de instancia basada en atributos

En lugar de usar la elección manual de los tipos de instancia para un grupo de instancias mixtas, puede especificar un conjunto de atributos de instancia que describan los requisitos de computación. A medida que Amazon EC2 Auto Scaling lanza instancias, cualquier tipo de instancia que utilice el grupo Auto Scaling debe coincidir con los atributos de instancia requeridos. Esto se conoce como selección de tipo de instancia basada en atributos.

Este enfoque es ideal para las cargas de trabajo y los marcos que tienen flexibilidad en cuanto a qué tipos de instancia utilizan, tales como contenedores, macrodatos y CI/CD.

A continuación, se describen los beneficios de la selección del tipo de instancia basada en atributos:

  • Flexibilidad óptima para instancias puntuales: Amazon EC2 Auto Scaling puede seleccionar entre una amplia gama de tipos de instancias para lanzar instancias puntuales. Esto cumple con la mejor práctica de Spot de ser flexible en cuanto a los tipos de instancias, lo que brinda al servicio Amazon EC2 Spot una mejor oportunidad de encontrar y asignar la cantidad de capacidad de cómputo requerida.

  • Uso fácil de los tipos de instancias correctos: con tantos tipos de instancias disponibles, encontrar los tipos de instancias adecuados para su carga de trabajo puede necesitar mucho tiempo. Cuando especifica atributos de instancia, los tipos de instancia tendrán automáticamente los atributos necesarios para la carga de trabajo.

  • Uso automático de nuevos tipos de instancias: los grupos de escalado automático pueden utilizar tipos de instancias de última generación a medida que se inicializan. Los tipos de instancias de última generación se utilizan de forma automática cuando coinciden con sus requisitos y se ajustan a las estrategias de asignación que elija para su grupo de escalado automático.

Cómo funciona la selección de tipo de instancia basada en atributos

Con la selección de tipo de instancia basada en atributos, en lugar de proporcionar una lista de tipos de instancias específicos, proporciona una lista de atributos que requieren sus instancias, como:

  • CPUrecuento en v: número mínimo y máximo de unidades vCPUs por instancia.

  • Memoria: memoria mínima y máxima GiBs por instancia.

  • Almacenamiento local: si se van a utilizar EBS o almacenar en instancias los volúmenes para el almacenamiento local.

  • Rendimiento ampliable: si se usará la familia de instancias T, incluidos los tipos T4g, T3a, T3 y T2.

Hay muchas opciones disponibles para definir los requisitos de las instancias. Para obtener una descripción de cada opción y los valores predeterminados, consulte InstanceRequirementsla Amazon EC2 Auto Scaling API Reference.

Cuando su grupo de escalado automático necesite inicializar una instancia, buscará los tipos de instancia que coincidan con los atributos especificados y que estén disponibles en esa zona de disponibilidad. Las estrategias de asignación luego determinan los tipos de instancia que se van a inicializar. De forma predeterminada, la selección del tipo de instancia basada en atributos tiene habilitada una característica de protección de precios para evitar que su grupo de escalado automático inicialice tipos de instancias que superen los umbrales de su presupuesto.

De forma predeterminada, utiliza la cantidad de instancias como la unidad de medida cuando establece la capacidad deseada de su grupo de escalado automático, lo que significa que cada instancia cuenta como una unidad.

Como alternativa, puede establecer el valor de la capacidad deseada en el número vCPUs o la cantidad de memoria. Para ello, utilice el campo desplegable Tipo de capacidad deseado en la DesiredCapacityType propiedad AWS Management Console o de la UpdateAutoScalingGroup API operación CreateAutoScalingGroup o. A continuación, Amazon EC2 Auto Scaling lanza el número de instancias necesario para cumplir con la capacidad v CPU o de memoria deseada. Por ejemplo, si utiliza vCPUs el tipo de capacidad deseado y utiliza instancias con 2 vCPUs cada una, una capacidad deseada de 10 vCPUs lanzaría 5 instancias. Esta es una alternativa útil a las ponderaciones de las instancias.

Protección de precios

Con la protección de precios, puede especificar el precio máximo que está dispuesto a pagar por las EC2 instancias lanzadas por su grupo de Auto Scaling. La protección de precios es una característica que impide que su grupo de escalado automático utilice tipos de instancias que consideraría demasiado caros, incluso si se ajustan a los atributos especificados.

La protección de precios está habilitada de forma predeterminada y tiene umbrales de precios diferentes para las instancias bajo demanda y las instancias de spot. Cuando Amazon EC2 Auto Scaling necesita lanzar nuevas instancias, no se lanza ningún tipo de instancia cuyo precio supere el umbral correspondiente.

Protección de precios bajo demanda

En el caso de las instancias bajo demanda, usted define el precio máximo bajo demanda que está dispuesto a pagar como un porcentaje superior al precio bajo demanda identificado. El precio bajo demanda identificado es el precio del tipo de instancia C, M o R de la generación actual más barato con sus atributos especificados.

Si no se define explícitamente un valor de protección de precios bajo demanda, se utilizará un precio máximo bajo demanda predeterminado un 20 por ciento superior al precio bajo demanda identificado.

Protección de precios de spot

De forma predeterminada, Amazon EC2 Auto Scaling aplicará automáticamente una protección óptima del precio de las instancias puntuales para seleccionar de forma coherente entre una amplia gama de tipos de instancias. También puede configurar manualmente la protección de precios. Sin embargo, dejar que Amazon EC2 Auto Scaling lo haga por usted puede aumentar la probabilidad de que su capacidad de spot se agote.

Puede especificar manualmente la protección de precios con una de las opciones siguientes. Si configura manualmente la protección de precios, le recomendamos utilizar la primera opción.

  • Un porcentaje de un precio identificado bajo demanda: el precio identificado bajo demanda es el precio del tipo de instancia C, M o R de la generación actual con el precio más bajo, con los atributos especificados.

  • Un porcentaje superior al precio de spot identificado: el precio de spot identificado es el precio del tipo de instancia C, M o R de la generación actual con el precio más bajo, con sus atributos especificados. No le recomendamos utilizar esta opción porque los precios de spot pueden fluctuar y, por lo tanto, su umbral de protección de precios también.

Personalización de la protección de precios

Puede personalizar los umbrales de protección de precios en la consola de Amazon EC2 Auto Scaling o utilizando AWS CLI oSDKs.

  • En la consola, utilice las configuraciones de protección de precios bajo demanda y protección de precios de spot en los atributos de instancias adicionales.

  • En la InstanceRequirementsestructura, para especificar el umbral de protección del precio de las instancias bajo demanda, utilice la OnDemandMaxPricePercentageOverLowestPrice propiedad. Para especificar el umbral de protección del precio de las instancias de spot, utilice la propiedad MaxSpotPriceAsPercentageOfOptimalOnDemandPrice o SpotMaxPricePercentageOverLowestPrice.

Si establece el tipo de capacidad deseado (DesiredCapacityType) en vCPUso GiB de memoria, la protección de precios se aplica en función del precio por v CPU o por memoria, en lugar del precio por instancia.

También puede desactivar la protección de precios. Para indicar que no hay umbral de protección de precios, especifique un valor de porcentaje alto, como 999999.

nota

Si ningún tipo de instancia C, M o R actual de la generación actual coincide con los atributos especificados, la protección de precios sigue vigente. Si no se encuentra ninguna coincidencia, el precio identificado corresponde a los tipos de instancias de la generación actual con el precio más bajo o, en su defecto, a los tipos de instancias de la generación anterior con el precio más bajo que coincidan con sus atributos.

Protección del rendimiento

La protección del rendimiento es una función que garantiza que su grupo de Auto Scaling utilice tipos de instancias que sean similares o superen una línea base de rendimiento especificada. Para usar la protección del rendimiento, debes especificar una familia de instancias como referencia básica. Las capacidades de la familia de instancias especificada establecen el nivel de rendimiento más bajo aceptable. Cuando Auto Scaling selecciona los tipos de instancias, tiene en cuenta los atributos especificados y la línea base de rendimiento. Los tipos de instancias que se encuentran por debajo de la línea base de rendimiento se excluyen automáticamente de la selección, incluso si coinciden con los demás atributos especificados. Esto garantiza que todos los tipos de instancias seleccionados ofrezcan un rendimiento similar o superior al nivel base establecido por la familia de instancias especificada. Auto Scaling usa esta línea base para guiar la selección del tipo de instancia, pero no hay garantía de que los tipos de instancia seleccionados siempre superen la línea base para todas las aplicaciones.

Actualmente, esta función solo admite CPU el rendimiento como factor de rendimiento de referencia. El CPU rendimiento de la familia de instancias especificada sirve como línea base de rendimiento, lo que garantiza que los tipos de instancias seleccionados sean similares o superen esta línea base. Las familias de instancias con los mismos CPU procesadores generan los mismos resultados de filtrado, incluso si el rendimiento de su red o disco es diferente. Por ejemplo, si se especifica una c6in o c6i como referencia de referencia, se obtendrían resultados de filtrado idénticos basados en el rendimiento, ya que ambas familias de instancias utilizan el mismo CPU procesador.

Familias de instancias no compatibles

No se admiten las siguientes familias de instancias para la protección del rendimiento:

  • c1

  • g3 | g3s

  • hpc7g

  • m1 | m2

  • mac1 | mac2 | mac2-m1ultra | mac2-m2 | mac2-m2pro

  • p3dn | p4d | p5

  • t1

  • u-12tb1 | u-18tb1 | u-24tb1 | u-3tb1 | u-6tb1 | u-9tb1 | u7i-12tb | u7in-16tb | u7in-24tb | u7in-32tb

Si habilitas la protección del rendimiento especificando una familia de instancias compatible, los tipos de instancias devueltos excluirán las familias de instancias no compatibles mencionadas anteriormente.

Ejemplo: establece una línea base de CPU rendimiento

En el siguiente ejemplo, el requisito de la instancia es lanzarse con tipos de instancias que tengan CPU núcleos que tengan el mismo rendimiento que la familia de c6i instancias. Esto filtrará los tipos de instancias con CPU procesadores de menor rendimiento, incluso si cumplen con los demás requisitos de instancia especificados, como el número de. vCPUs Por ejemplo, si los atributos de instancia especificados incluyen 4 vCPUs y 16 GB de memoria, se c6i excluirá de la selección un tipo de instancia con estos atributos pero con un CPU rendimiento inferior al anterior.

"BaselinePerformanceFactors": { "Cpu": { "References": [ { "InstanceFamily": "c6i" } ] }
Consideraciones

Ten en cuenta lo siguiente cuando utilices la protección del rendimiento:

  • Puede especificar los tipos de instancia o los atributos de la instancia, pero no ambos al mismo tiempo.

  • Puede especificar un máximo de cuatro estructuras InstanceRequirements en una configuración de solicitud.

Requisitos previos

Creación de un grupo de instancias mixtas mediante la selección del tipo de instancia basada en atributos (consola)

Utilice el siguiente procedimiento para crear un grupo de instancias mixtas mediante la selección del tipo de instancia basada en atributos. Para ayudarlo a realizar los pasos de forma eficiente, se omiten algunas secciones opcionales.

Para la mayoría de las cargas de trabajo de uso general, basta con especificar la cantidad vCPUs y la memoria que necesitas. Para los casos de uso avanzados, puede especificar atributos como el tipo de almacenamiento, las interfaces de red, el CPU fabricante y el tipo de acelerador.

Para revisar las prácticas recomendadas para un grupo de instancias mixtas, consulte Información general de la configuración de creación de un grupo de instancias mixtas.

Creación de un grupo de instancias mixtas
  1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/y selecciona Auto Scaling Groups en el panel de navegación.

  2. En la barra de navegación de la parte superior de la pantalla, elija la misma Región de AWS que utilizó cuando creó la plantilla de lanzamiento.

  3. Elija Create an Auto Scaling group (Crear un grupo de escalado automático).

  4. En la página Choose launch template or configuration (Elegir una plantilla de lanzamiento o configuración), ingrese un nombre para el grupo de escalado automático.

  5. Para elegir la plantilla de lanzamiento, haga lo siguiente:

    1. En launch template (Plantilla de lanzamiento), elija una plantilla de lanzamiento existente.

    2. Para Launch template version (Versión de plantilla de lanzamiento), decida si el grupo de escalado automático utiliza el valor predeterminado, la última versión o una versión específica de la plantilla de lanzamiento para escalado horizontal.

    3. Compruebe que la plantilla de lanzamiento admita todas las opciones que tiene previsto utilizar y, a continuación, elija Next (Siguiente).

  6. En la página Elegir las opciones de lanzamiento de instancias, haga lo siguiente:

    1. En Instance type requirements (Requisitos de los tipos de instancia), elija Override launch template (Anular la plantilla de lanzamiento).

      nota

      Si ha elegido una plantilla de lanzamiento que ya contiene un conjunto de atributos de instancia, como vCPUs memoria, se muestran los atributos de la instancia. Estos atributos se añaden a las propiedades del grupo Auto Scaling, donde puede actualizarlos desde la consola de Amazon EC2 Auto Scaling en cualquier momento.

    2. En Especificar los atributos de la instancia, comience por introducir sus requisitos de memoria vCPUs y los suyos.

      • Para vCPUs, introduce el número mínimo y máximo deseado devCPUs. Para no especificar ningún límite, seleccione No minimum (Sin mínimo), No maximum (Sin máximo) o ambos.

      • En Memory (GiB) (Memoria [GiB]), ingrese la cantidad mínima y máxima de memoria deseada. Para no especificar ningún límite, seleccione No minimum (Sin mínimo), No maximum (Sin máximo) o ambos.

    3. (Opcional) En Additional instance attributes (Atributos de instancia adicionales), puede especificar opcionalmente uno o varios atributos para expresar sus requisitos de computación con más detalle. Cada atributo adicional agrega más restricciones a la solicitud.

    4. Expanda Vista previa de tipos de instancia coincidentes para ver los tipos de instancias que tienen los atributos especificados.

    5. En Opciones de compra de instancias, para la Distribución de instancias, especifique los porcentajes del grupo que se lanzará como instancias bajo demanda e instancias de spot, respectivamente. Si la suya es una aplicación sin estado, tolerante a errores y capaz de gestionar la interrupción de una instancia, puede especificar un mayor porcentaje de instancias de spot.

    6. (Opcional) Cuando especifique un porcentaje para las instancias de spot, seleccione Incluir capacidad base bajo demanda y luego especifique la cantidad mínima de la capacidad inicial del grupo de escalado automático que deben satisfacer las instancias bajo demanda. Lo que esté más allá de la capacidad base utiliza la configuración de Instances distribution (Distribución de las instancias) para determinar cuántas instancias bajo demanda y de spot deben lanzarse.

    7. En Allocation strategies (Estrategias de asignación), se selecciona de forma automática la opción Lowest price (Precio más bajo) para On-Demand allocation strategy (Estrategia de asignación bajo demanda) y no es posible cambiarla.

    8. En Spot allocation strategy (Estrategia de asignación de spot), elija una estrategia de asignación. Price capacity optimized (Capacidad de precios optimizada) se selecciona de forma predeterminada. Lowest price (Precio más bajo) está oculto de forma predeterminada y solo aparece cuando elige Show all strategies (Mostrar todas las estrategias). Si selecciona Precio más bajo, ingrese los grupos con los precios más bajos para diversificar a través de Grupos más baratos.

    9. En Reequilibrio de la capacidad, elija si desea habilitar o desactivar el reequilibrio de la capacidad. Use el reequilibrio de la capacidad para responder automáticamente cuando sus instancias de spot se aproximen a su finalización por una interrupción de spot. Para obtener más información, consulte Utilizar el reequilibrio de capacidad para gestionar las interrupciones de spot de Amazon EC2.

    10. En Red, para VPC, elija unVPC. El grupo Auto Scaling debe crearse VPC igual que el grupo de seguridad que especificó en la plantilla de lanzamiento.

    11. Para las zonas de disponibilidad y las subredes, elija una o más subredes de las especificadas. VPC Utilice subredes en varias zonas de disponibilidad para lograr una alta disponibilidad. Para obtener más información, consulte Consideraciones a la hora de elegir las subredes VPC.

    12. Elija Siguiente, Siguiente.

  7. Para el paso Configure group size and scaling policies (Configurar el tamaño del grupo y las políticas de escalado), haga lo siguiente:

    1. Para medir la capacidad deseada en unidades distintas de las instancias, elija la opción adecuada para Tamaño del grupo, Tipo de capacidad deseada. Se admiten vCPUsunidades y GiB de memoria. De forma predeterminada, Amazon EC2 Auto Scaling especifica las unidades, lo que se traduce en el número de instancias.

    2. Para la Capacidad deseada, establezca el tamaño inicial de su grupo de escalado automático.

    3. En la sección Escalado, en Límites de escalado, si el nuevo valor de la Capacidad deseada es superior a la Capacidad deseada mínima y a la Capacidad deseada máxima, la Capacidad deseada máxima se incrementa automáticamente al nuevo valor de capacidad deseada. Puede cambiar estos límites según sea necesario. Para obtener más información, consulte Establecimiento de límites de escalado para el grupo de escalado automático.

  8. Elija Skip to review (Omitir para revisar).

  9. En la página Review (Revisar), elija Create Auto Scaling group (Crear grupo de escalado automático).

Creación de un grupo de instancias mixtas mediante la selección del tipo de instancia basada en atributos (AWS CLI)

Creación de un grupo de instancias mixtas mediante la línea de comandos

Utilice uno de los siguientes comandos:

Configuración de ejemplo

Para crear un grupo de Auto Scaling con una selección de tipo de instancia basada en atributos mediante el AWS CLI, utilice el siguiente create-auto-scaling-groupcomando.

Se especifican los siguientes atributos de instancia:

  • VCpuCount— Los tipos de instancia deben tener un mínimo de cuatro vCPUs y un máximo de ocho. vCPUs

  • MemoryMiB: los tipos de instancia deben tener un mínimo de 16 384 MiB de memoria.

  • CpuManufacturers— Los tipos de instancias deben estar fabricados por IntelCPU.

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

A continuación se muestra un ejemplo de un archivo config.json.

{ "AutoScalingGroupName": "my-asg", "DesiredCapacityType": "units", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Default" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": {"Min": 4, "Max": 8}, "MemoryMiB": {"Min": 16384}, "CpuManufacturers": ["intel"] } }] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "price-capacity-optimized" } }, "MinSize": 0, "MaxSize": 100, "DesiredCapacity": 4, "DesiredCapacityType": "units", "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

Para establecer el valor de la capacidad deseada como el número vCPUs o la cantidad de memoria, especifique "DesiredCapacityType": "vcpu" o "DesiredCapacityType": "memory-mib" en el archivo. El tipo de capacidad deseada predeterminado es units, que establece el valor de la capacidad deseada como la cantidad de instancias.

Como alternativa, puede usar el siguiente create-auto-scaling-groupcomando para crear el grupo Auto Scaling. Esto hace referencia a un YAML archivo como único parámetro para su grupo de Auto Scaling.

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

A continuación se muestra un ejemplo de un archivo config.yaml.

--- AutoScalingGroupName: my-asg DesiredCapacityType: units MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceRequirements: VCpuCount: Min: 2 Max: 4 MemoryMiB: Min: 2048 CpuManufacturers: - intel InstancesDistribution: OnDemandPercentageAboveBaseCapacity: 50 SpotAllocationStrategy: price-capacity-optimized MinSize: 0 MaxSize: 100 DesiredCapacity: 4 DesiredCapacityType: units VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

Para establecer el valor de la capacidad deseada como el número vCPUs o la cantidad de memoria, especifique DesiredCapacityType: vcpu o DesiredCapacityType: memory-mib en el archivo. El tipo de capacidad deseada predeterminado es units, que establece el valor de la capacidad deseada como la cantidad de instancias.

Obtención de una vista previa de los tipos de instancia

Puede obtener una vista previa de los tipos de instancia que son compatibles con sus requisitos de computación sin necesidad de lanzarlos y ajustar los requisitos en caso de ser necesario. Al crear el grupo de Auto Scaling en la consola de Amazon EC2 Auto Scaling, aparece una vista previa de los tipos de instancia en la sección Vista previa de los tipos de instancia coincidentes de la página Elegir opciones de lanzamiento de instancias.

Como alternativa, puedes previsualizar los tipos de instancias realizando una EC2 GetInstanceTypesFromInstanceRequirementsAPIllamada a Amazon con AWS CLI o unaSDK. Transfiera los parámetros InstanceRequirements de la solicitud en el mismo formato que utilizaría para crear o actualizar un grupo de escalado automático. Para obtener más información, consulta la sección Vista previa de tipos de instancias con atributos específicos en la Guía del EC2 usuario de Amazon.

Para obtener más información sobre la selección del tipo de instancia basada en atributos, consulte Selección del tipo de instancia basada en atributos para EC2 Auto Scaling y EC2 Fleet en el blog. AWS

Puede declarar la selección del tipo de instancia basada en atributos al crear un grupo de escalado automático mediante AWS CloudFormation. Para obtener más información, consulte el fragmento de ejemplo en la sección Ejemplos de plantillas de escalado automático en la Guía del usuario de AWS CloudFormation .