Crear un grupo 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.

Crear un grupo 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, todos los tipos de instancia que utiliza el grupo de escalado automático deben coincidir con los atributos de instancia requeridos. Esto se conoce como selección del 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 se realiza conforme a la práctica recomendada de spot que consiste en ser flexible en cuanto a los tipos de instancia, lo que brinda al servicio de spot de Amazon EC2 más posibilidades de encontrar y asignar la cantidad necesaria de capacidad de computación.

  • 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: sus grupos de Auto Scaling pueden usar tipos de instancias de nueva generación a medida que se lanzan. 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 tipos de instancia basada en atributos, en lugar de proporcionar una lista de tipos de instancias específicos, debes proporcionar una lista de los atributos de instancia que requieren tus instancias, como:

  • Recuento de vCPU: el número mínimo y máximo de vCPU por instancia.

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

  • Almacenamiento local: si se usarán volúmenes de almacén de instancias o EBS 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 la instancia. Para obtener una descripción de cada opción y los valores predeterminados, consulte la referencia de InstanceRequirementsla API Auto Scaling de Amazon EC2.

Cuando su grupo de Auto Scaling necesite lanzar una instancia, buscará los tipos de instancia que coincidan con los atributos especificados y que estén disponibles en esa zona de disponibilidad. A continuación, la estrategia de asignación determina cuáles de los tipos de instancias coincidentes se van a lanzar. De forma predeterminada, la selección del tipo de instancia basada en atributos tiene habilitada una función de protección de precios para evitar que su grupo de Auto Scaling lance tipos de instancias que superen los umbrales de su presupuesto.

De forma predeterminada, utiliza el número de instancias como unidad de medida al configurar la capacidad deseada de su grupo de Auto Scaling, lo que significa que cada instancia cuenta como una unidad.

Alternativamente, puede establecer el valor de la capacidad deseada en la cantidad de vCPU o de memoria. Para ello, utilice el campo desplegable Tipo de capacidad deseado en la operación AWS Management Console o UpdateAutoScalingGroup API CreateAutoScalingGroup o en la DesiredCapacityType propiedad. A continuación, Amazon EC2 Auto Scaling lanza el número de instancias necesario para cumplir con la capacidad de vCPU o memoria deseada. Por ejemplo, si usa vCPU como el tipo de capacidad deseado y usa instancias con 2 vCPU cada una, una capacidad deseada de 10 vCPU 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 instancias EC2 lanzadas por su grupo de Auto Scaling. La protección de precios es una función que impide que su grupo de Auto Scaling utilice tipos de instancias que usted consideraría demasiado caros, incluso si se ajustaran a los atributos que especificó.

La protección de precios está habilitada de forma predeterminada y tiene umbrales de precios distintos para las instancias bajo demanda y las instancias puntuales. 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 con el precio más bajo con los atributos especificados.

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

Protección de precios al contado

De forma predeterminada, Auto Scaling de Amazon EC2 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 Auto Scaling de Amazon EC2 lo haga por usted puede aumentar la probabilidad de que su capacidad puntual 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 bajo demanda identificado: el precio bajo demanda identificado 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 a un precio spot identificado: el precio 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 los atributos especificados. No recomendamos utilizar esta opción porque los precios al contado pueden fluctuar y, por lo tanto, su umbral de protección de precios también podría fluctuar.

Personalice la protección de precios

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

  • En la consola, utilice los ajustes de protección de precios bajo demanda y protección de precios al contado en los atributos de instancia 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 puntuales, utilice la propiedad MaxSpotPriceAsPercentageOfOptimalOnDemandPrice o la SpotMaxPricePercentageOverLowestPrice propiedad.

Si estableces el tipo de capacidad deseado (DesiredCapacityType) en vCPU o GiB de memoria, la protección de precios se aplica en función del precio por vCPU o 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 de la generación C, M o R actual coincide con los atributos especificados, la protección de precios sigue siendo aplicable. 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.

Requisitos previos

Cree un grupo de instancias mixto con una 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 de vCPU y memoria que se necesita. Para los casos de uso avanzados, puede especificar atributos como el tipo de almacenamiento, las interfaces de red, el fabricante de la CPU y el tipo de acelerador.

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

Para crear un grupo de instancias mixtas
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/ y elija Auto Scaling Groups (Grupos de escalado automático) 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 eligió una plantilla de lanzamiento que ya contiene un conjunto de atributos de instancia, como las vCPU y la memoria, se muestran los atributos de la instancia. Estos atributos se añaden a las propiedades del grupo de escalado automático, donde puede actualizarlos desde la consola de escalado automático de Amazon EC2 Auto Scaling, en cualquier momento.

    2. En Specify instance attributes (Especificar los atributos de instancia), primero ingrese sus requisitos de vCPU y memoria.

      • En vCPU, ingrese el número mínimo y máximo deseado de vCPU. 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. Expande la vista previa de los tipos de instancias 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 Network (Red), para la opción VPC, elija una VPC. El grupo de Auto Scaling debe crearse en la misma VPC que el grupo de seguridad especificado en la plantilla de lanzamiento.

    11. En Availability Zones and subnets (Zonas de disponibilidad y subredes), elija una o más subredes de la VPC especificada. 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 subredes de 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 Units (Unidades), vCPUs (vCPU) y Memory GiB (Memoria en GiB). De forma predeterminada, Amazon EC2 Auto Scaling especifica Units (Unidades), lo que se traduce en 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).

Crea un grupo de instancias mixto con una selección de tipos de instancia basada en atributos ()AWS CLI

Para crear 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 y un máximo de ocho vCPU.

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

  • CpuManufacturers: los tipos de instancia deben tener una CPU fabricada por Intel.

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 la cantidad de vCPU o 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 archivo YAML como único parámetro de su grupo de escalado automático.

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 la cantidad de vCPU o 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.

Obtenga 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. Cuando crea el grupo de escalado automático en la consola de Amazon EC2 Auto Scaling, aparece una vista previa de los tipos de instancia en la sección Preview matching instance types (Vista previa de los tipos de instancia coincidentes) en la página Choose instance launch options (Elegir opciones de lanzamiento de las instancias).

Como alternativa, puedes previsualizar los tipos de instancias realizando una llamada a la GetInstanceTypesFromInstanceRequirementsAPI de Amazon EC2 con el AWS CLI o un SDK. 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, consulte Vista previa de los tipos de instancia con atributos especificados en la Guía del usuario de Amazon EC2 para instancias de Linux.

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 .