Información general de la configuración de creación de un grupo de instancias mixtas - Amazon EC2 Auto Scaling

Información general de la configuración de creación de un grupo de instancias mixtas

En este tema se proporciona información general y prácticas recomendadas para crear un grupo de escalado automático de instancias mixtas.

Descripción general

Para crear un grupo de instancias mixtas, tiene dos opciones:

Manual selection

En los siguientes pasos, se describe cómo crear un grupo de instancias mixtas mediante la elección manual de tipos de instancias:

  1. Elija una plantilla de lanzamiento que tenga los parámetros para lanzar una instancia de EC2. Los parámetros en las plantillas de lanzamiento son opcionales, pero Amazon EC2 Auto Scaling no puede lanzar una instancia si falta el ID de amilong (AMI) en la plantilla de lanzamiento.

  2. Elija la opción para anular la plantilla de lanzamiento.

  3. Elija manualmente los tipos de instancias que se adapten a su carga de trabajo.

  4. Especificar los porcentajes de las instancias bajo demanda y las instancias de spot que se van a lanzar.

  5. Seleccione las estrategias de asignación que determinan cómo Amazon EC2 Auto Scaling satisface las capacidades a pedido y de spot de los posibles tipos de instancias.

  6. Elija las zonas de disponibilidad y las subredes de la VPC en las que lanzar las instancias.

  7. Especifique el tamaño inicial del grupo (la capacidad deseada) y el tamaño mínimo y máximo del grupo.

Las anulaciones son necesarias para anular el tipo de instancia declarado en la plantilla de lanzamiento y utilizar varios tipos de instancias que estén integrados en la propia definición de recursos del grupo de escalado automático. Para obtener más información acerca de los tipos de instancias que hay disponibles, consulte Tipos de instancias en la Guía del usuario de Amazon EC2.

También puede configurar los siguientes parámetros opcionales para cada tipo de instancia:

  • LaunchTemplateSpecification: puede asignar una plantilla de inicialización diferente a un tipo de instancia según sea necesario. Esta opción no está disponible desde la consola en este momento. Para obtener más información, consulte Utilización de plantillas de lanzamiento múltiples.

  • WeightedCapacity: usted decide cuánto representa la instancia para la capacidad deseada en relación con el resto de las instancias de su grupo. Si especifica un valor de WeightedCapacity para un tipo de instancias, debe especificar un valor de WeightedCapacity para todos ellos. De forma predeterminada, cada instancia cuenta como una instancia para la capacidad deseada. Para obtener más información, consulte Configuración de un grupo de escalado automático para utilizar ponderación de instancias.

Attribute-based selection

Para permitir que Amazon EC2 Auto Scaling elija los tipos de instancia automáticamente en función de sus atributos de instancia específicos, utilice los siguientes pasos para crear un grupo de instancias mixtas especificando sus requisitos de procesamiento:

  1. Elija una plantilla de lanzamiento que tenga los parámetros para lanzar una instancia de EC2. Los parámetros en las plantillas de lanzamiento son opcionales, pero Amazon EC2 Auto Scaling no puede lanzar una instancia si falta el ID de amilong (AMI) en la plantilla de lanzamiento.

  2. Elija la opción para anular la plantilla de lanzamiento.

  3. Especifique los atributos de instancia que coinciden con sus requisitos de computación, como vCPU y requisitos de memoria.

  4. Especificar los porcentajes de las instancias bajo demanda y las instancias de spot que se van a lanzar.

  5. Seleccione las estrategias de asignación que determinan cómo Amazon EC2 Auto Scaling satisface las capacidades a pedido y de spot de los posibles tipos de instancias.

  6. Elija las zonas de disponibilidad y las subredes de la VPC en las que lanzar las instancias.

  7. Especifique el tamaño inicial del grupo (la capacidad deseada) y el tamaño mínimo y máximo del grupo.

Las anulaciones son necesarias para anular el tipo de instancia declarado en la plantilla de lanzamiento y utilizar un conjunto de atributos de instancia que describan sus requisitos de procesamiento. Para conocer los atributos admitidos, consulte InstanceRequirements en Referencia de la API de Amazon EC2 Auto Scaling. También puede utilizar una plantilla de lanzamiento que ya tenga la definición de atributos de instancia.

También puede configurar el parámetro LaunchTemplateSpecification dentro de la estructura de anulaciones para asignar una plantilla de inicialización diferente a un conjunto de requisitos de instancia, según sea necesario. Esta opción no está disponible desde la consola en este momento. Para obtener más información, consulte LaunchTemplateOverrides en Referencia de API de Amazon EC2 Auto Scaling.

De forma predeterminada, establece la cantidad de instancias como la capacidad deseada de su grupo de escalado automático.

Alternativamente, puede establecer el valor de la capacidad deseada en la cantidad de vCPU o de memoria. Para ello, utilice la propiedad DesiredCapacityType de la operación de la API CreateAutoScalingGroup o el campo desplegable del Tipo de capacidad deseado en la Consola de administración de AWS. Esta es una alternativa útil a las ponderaciones de las instancias.

Flexibilidad del tipo de instancias

Para mejorar la disponibilidad, implemente la aplicación en varios tipos de instancias. Se recomienda utilizar varios tipos de instancias para satisfacer los requisitos de capacidad. De esta forma, Amazon EC2 Auto Scaling puede lanzar otro tipo de instancia si no hay suficiente capacidad en las zonas de disponibilidad elegidas.

Si no hay suficiente capacidad de instancia con las instancias de spot, Amazon EC2 Auto Scaling sigue intentando lanzarlas desde otros grupos de instancias spot. (Los grupos que usa están determinados por la elección de los tipos de instancias y la estrategia de asignación). Amazon EC2 Auto Scaling le permite aprovechar el ahorro de costos de las instancias de spot lanzándolas en lugar de las instancias bajo demanda.

Recomendamos ser flexible con al menos 10 tipos de instancias para cada carga de trabajo. Al elegir los tipos de instancias, no se limite a los nuevos tipos de instancias más populares. Elegir tipos de instancias de generación anterior tiende a provocar menos interrupciones de spot porque tienen menos demanda de los clientes bajo demanda.

Flexibilidad de zona de disponibilidad

Recomendamos ampliamente que extienda el grupo de escalado automático en varias zonas de disponibilidad. Con varias zonas de disponibilidad, puede diseñar aplicaciones que realizan una conmutación por error automática entre zonas para aumentar la resiliencia.

Como beneficio adicional, puede acceder a un grupo de capacidad de Amazon EC2 más amplio en comparación con los grupos de una sola zona de disponibilidad. Dado que la capacidad fluctúa de manera independiente para cada tipo de instancias en una zona de disponibilidad, a menudo puede obtener más capacidad informática con flexibilidad en el tipo de instancias y la zona de disponibilidad.

Para obtener más información acerca del uso de varias zonas de disponibilidad, consulte Ejemplo: distribuir instancias entre zonas de disponibilidad.

precio máximo de spot

Cuando crea su grupo de Auto Scaling con la AWS CLI o un SDK, puede especificar el parámetro SpotMaxPrice. El parámetro SpotMaxPrice determina el precio máximo que está dispuesto a pagar por una hora de instancia de spot.

Al especificar el parámetro WeightedCapacity en las anulaciones (o "DesiredCapacityType": "vcpu" o "DesiredCapacityType": "memory-mib" a nivel de grupo), el precio máximo representa el precio unitario máximo, no el precio máximo de una instancia completa.

Le recomendamos enfáticamente que no especifique un precio máximo. Su aplicación podría no ejecutarse si no recibe sus instancias de spot, como cuando el precio máximo es demasiado bajo. Si no especifica un precio máximo, el predeterminado es el precio bajo demanda. Solo pagará el precio de spot de las instancias de spot que lance. Seguirá recibiendo grandes descuentos por parte de las instancias de spot. Estos descuentos son posibles debido a los precios de spot estables disponibles mediante el modelo de precios de las instancias de spot. Para obtener más información, consulte Precios y ahorro en la Guía del usuario de Amazon EC2.

Reequilibrio de la capacidad proactivo

Si su caso de uso lo permite, le recomendamos el reequilibrio de la capacidad. El reequilibrio de capacidad permite mantener la disponibilidad de la carga de trabajo al sustituir de forma proactiva las instancias de spot que corren el riesgo de sufrir interrupciones.

Cuando se habilita el reequilibrio de la capacidad, Amazon EC2 Auto Scaling intenta reemplazar de forma proactiva las instancias de spot que han recibido una recomendación de reequilibrio. Esto da la oportunidad de reequilibrar la carga de trabajo con nuevas instancias de spot que no tengan un riesgo elevado de interrupción.

Para obtener más información, consulte Reequilibrio de la capacidad en Auto Scaling para reemplazar las instancias de spot en riesgo.

Comportamiento del escalado

Al crear un grupo de instancias mixtas, este utiliza instancias bajo demanda de forma predeterminada. Para utilizar instancias de spot, debe modificar el porcentaje del grupo que lanzar como instancias bajo demanda. Puede especificar cualquier número del 0 al 100 para el porcentaje bajo demanda.

De forma opcional, también puede designar un número base de instancias bajo demanda para comenzar. Si lo hace, Amazon EC2 Auto Scaling no lanza las instancias de spot hasta que se lance la capacidad base de instancias bajo demanda cuando el grupo escale horizontalmente. Lo que esté más allá de la capacidad base utiliza porcentajes bajo demanda para determinar cuántas instancias bajo demanda y de spot se deben lanzar.

Amazon EC2 Auto Scaling convierte el porcentaje en el número equivalente de instancias. Si el resultado crea un número fraccionario, redondea al siguiente número entero a favor de las instancias bajo demanda.

La tabla siguiente muestra el comportamiento del grupo de escalado automático a medida que reduce y aumenta su tamaño.

Ejemplo: Comportamiento del escalado
Opciones de compra Tamaño de grupo y número de instancias de ejecución en las opciones de compra
10 20 30 40

Ejemplo 1: base de 10, 50/50 % bajo demanda/spot

On-Demand Instances (base amount) 10 10 10 10
On-Demand Instances 0 5 10 15
Spot Instances 0 5 10 15

Ejemplo 2: base de 0, 0/100 % bajo demanda/spot

On-Demand Instances (base amount) 0 0 0 0
On-Demand Instances 0 0 0 0
Spot Instances 10 20 30 40

Ejemplo 3: base de 0, 60/40 % bajo demanda/spot

On-Demand Instances (base amount) 0 0 0 0
On-Demand Instances 6 12 18 24
Spot Instances 4 8 12 16

Ejemplo 4: base de 0, 100/0 % bajo demanda/spot

On-Demand Instances (base amount) 0 0 0 0
On-Demand Instances 10 20 30 40
Spot Instances 0 0 0 0

Ejemplo 5: base de 12, 0/100 % bajo demanda/spot

On-Demand Instances (base amount) 10 12 12 12
On-Demand Instances 0 0 0 0
Spot Instances 0 8 18 28

Cuando el tamaño del grupo aumenta, Amazon EC2 Auto Scaling intenta equilibrar su capacidad de manera uniforme en las zonas de disponibilidad especificadas. A continuación, lanza tipos de instancia de acuerdo con la estrategia de asignación especificada.

Cuando el tamaño del grupo disminuye, Amazon EC2 Auto Scaling identifica primero cuál de los dos tipos (spot o bajo demanda) debe ser terminado. A continuación, intenta terminar las instancias de forma equilibrada en todas las zonas de disponibilidad especificadas. También favorece la finalización de las instancias de una forma que se ajuste más a sus estrategias de asignación. Para obtener más información sobre las políticas de terminación, consulte Configuración de políticas de terminación de Amazon EC2 Auto Scaling.

Disponibilidad regional de los tipos de instancias

La disponibilidad de los tipos de instancias de EC2 varía en función de su Región de AWS. Por ejemplo, es posible que los tipos de instancias de última generación aún no estén disponibles en una región determinada. Debido a las variaciones en la disponibilidad de las instancias de una región a otra, es posible que tenga problemas a la hora de realizar solicitudes programáticas si en su región no están disponibles varios tipos de instancias en sus anulaciones. Si utiliza varios tipos de instancias que no estén disponibles en su región, la solicitud podría fallar por completo. Para resolver el problema, vuelva a intentar la solicitud con distintos tipos de instancias y asegúrese de que cada tipo de instancia esté disponible en la región. Para buscar los tipos de instancia que se ofrecen según la ubicación, utilice el comando describe-instance-type-offerings. Para obtener más información, consulte Finding an Amazon EC2 instance type en la Guía del usuario de Amazon EC2.

Para obtener más prácticas recomendadas para instancias de spot, consulte Prácticas recomendadas para instancias de spot de EC2 en la Guía del usuario de Amazon EC2.

Limitaciones

Después de agregar anulaciones a un grupo de escalado automático mediante una política de instancias mixtas, puede actualizar las anulaciones con la llamada a la API UpdateAutoScalingGroup, pero no eliminarlas. Para eliminar por completo las anulaciones, primero debe cambiar el grupo de escalado automático para utilizar una plantilla o una configuración de inicialización en lugar de una política de instancias mixtas. A continuación, puede volver a añadir una política de instancias mixtas sin anularla.