Utilice estrategias de asignación para determinar cómo la flota de EC2 o la flota de spot satisfacen la capacidad de spot y bajo demanda
Cuando utiliza varios grupos de capacidad (cada uno compuesto por un tipo de instancia y una zona de disponibilidad) en una flota de EC2 o una flota de spot, puede utilizar una estrategia de asignación para gestionar la forma en que Amazon EC2 gestiona sus capacidades de spot y bajo demanda de estos grupos. Las estrategias de asignación permiten optimizar la capacidad disponible, el precio y los tipos de instancias que se van a utilizar. Existen diferentes estrategias de asignación para las instancias de spot y las instancias bajo demanda.
Temas
Estrategias de asignación de instancias de spot
La configuración de inicialización determina todos los grupos de capacidad de spot posibles (tipos de instancias y zonas de disponibilidad) desde los que la flota de EC2 o la flota de spot pueden iniciar instancias de spot. Sin embargo, al iniciar instancias, la flota utiliza la estrategia de asignación que usted especifique para seleccionar los grupos específicos entre todos sus grupos posibles.
nota
(Solo instancias de Linux) Si se configura la instancia de spot para lanzarla con la característica SEV-SNP de AMD activada, se le cobrará una tarifa de uso por hora adicional que equivale al 10 % de la tarifa horaria bajo demanda
Puede especificar una de las siguientes estrategias de asignación para las instancias de spot:
- Precio de capacidad optimizada (recomendado)
-
La flota identifica los grupos con la mayor disponibilidad de capacidad para la cantidad de instancias que se van a iniciar. Esto significa que solicitaremos instancias de spot de los grupos que consideremos que tienen menos probabilidades de interrupción a corto plazo. A continuación, la flota solicita instancias de spot con el precio más bajo de estos grupos.
La estrategia de asignación del precio de capacidad optimizada es la mejor opción para la mayoría de las cargas de trabajo de spot, como las aplicaciones en contenedores sin estado, los microservicios, las aplicaciones web, los trabajos de datos y análisis y el procesamiento por lotes.
Si utiliza la AWS CLI, el nombre del parámetro es
price-capacity-optimized
para la flota de EC2 ypriceCapacityOptimized
para la flota de spot. - Capacidad optimizada
-
La flota identifica los grupos con la mayor disponibilidad de capacidad para la cantidad de instancias que se van a iniciar. Esto significa que solicitaremos instancias de spot de los grupos que consideremos que tienen menos probabilidades de interrupción a corto plazo. Opcionalmente, puede establecer una prioridad para cada tipo de instancia en su flota, donde la flota optimiza primero por capacidad, pero respeta las prioridades de los tipos de instancias sobre la base de los mejores esfuerzos.
Con las instancias de spot, los precios cambian lentamente con el paso del tiempo en función de las tendencias a largo plazo de la oferta y la demanda, pero la capacidad fluctúa en tiempo real. La estrategia de capacidad optimizada inicia instancias de spot de forma automática en los grupos con mayor disponibilidad, mediante el análisis de los datos de capacidad en tiempo real y la predicción de cuáles son los que tienen una mayor disponibilidad. Esto funciona bien para las cargas de trabajo que pueden tener un costo mayor de interrupción asociado al reinicio del trabajo, como integración continua (CI) prolongada, representación de imágenes y medios, aprendizaje profundo y computación de alto rendimiento (HPC) que pueden tener un costo mayor de interrupción asociado al reinicio del trabajo. Al ofrecer la posibilidad de experimentar menos interrupciones, la estrategia de capacidad optimizada puede reducir el costo total de la carga de trabajo.
Como alternativa, puede utilizar la estrategia de asignación de capacidad optimizada priorizada con un parámetro de prioridad para ordenar los tipos de instancias de la prioridad más alta a la más baja. Puede establecer la misma prioridad para diferentes tipos de instancia. La flota optimizará primero la capacidad, pero respetará las prioridades de tipo de instancias sobre la base del mejor esfuerzo (por ejemplo, si el respeto de las prioridades no afecta significativamente la capacidad de la flota para aprovisionar la capacidad óptima). Esta es una buena opción para cargas de trabajo en las que se debe minimizar la posibilidad de interrupción y también importa la preferencia por ciertos tipos de instancias. Tenga en cuenta que cuando establece la prioridad para los tipos de instancia para su capacidad de spot, la misma prioridad también se aplica a las instancias bajo demanda si la estrategia de asignación bajo demanda se establece en priorizada. Para la flota de spot, el uso de prioridades solo se admite si la flota utiliza una plantilla de inicialización.
Si utiliza la AWS CLI, los nombres de los parámetros son
capacity-optimized
ycapacity-optimized-prioritized
para la flota de EC2capacityOptimized
ycapacityOptimizedPrioritized
para la flota de spot. - Diversificada
-
Las instancias de spot se distribuyen en todos los grupos de capacidad de spot. Si utiliza la AWS CLI, el nombre del parámetro es
diversified
tanto para la flota de EC2 como para la flota de spot. - El precio más bajo (no recomendado)
-
aviso
No recomendamos la estrategia de asignación del precio más bajo porque presenta el mayor riesgo de interrupción para las instancias de spot.
Las instancias de spot provienen del grupo con el precio más bajo que tiene capacidad disponible. Cuando se utiliza la AWS CLI, esta es la estrategia predeterminada. Sin embargo, recomendamos que, para anular el valor predeterminado, especifique la estrategia de asignación de capacidad de precio optimizada.
Con la estrategia del precio más bajo si el grupo con el precio más bajo no tiene capacidad disponible, las instancias de spot provienen del siguiente grupo con el precio más bajo que tenga capacidad disponible. Si un grupo se queda sin capacidad antes de cubrir la capacidad deseada, la flota continuará completando la solicitud al extraer capacidad del siguiente grupo con el precio más bajo. Para garantizar que se logre la capacidad deseada, es posible que reciba instancias de spot de varios grupos.
Dado que esta estrategia solo tiene en cuenta el precio de la instancia y no la disponibilidad de capacidad, podría generar tasas de interrupción elevadas.
La estrategia de asignación del precio más bajo solo está disponible cuando se utiliza la AWS CLI. El nombre del parámetro es
lowest-price
para la flota de EC2 ylowestPrice
para la flota de spot. - Número de grupos que se van a utilizar
-
El número de grupos de spot en los que asignar la capacidad de spot de destino. Solo es válido cuando la estrategia de asignación se ha establecido en el precio más bajo. La flota selecciona los grupos de spot con el precio más bajo y asigna la capacidad de spot objetivo de manera uniforme entre los grupos de spot que especifique.
Tenga en cuenta que la flota intentará obtener instancias de spot del número de grupos que usted especifique en la medida de lo posible. Si un grupo se queda sin capacidad de spot antes de cubrir su capacidad objetivo, la flota continuará completando la solicitud al extraer capacidad del siguiente grupo con el precio más bajo. Para garantizar que la capacidad de destino se cumpla, es posible que reciba instancias de spot de una cantidad de grupos mayor al número de grupos que usted especificó. Del mismo modo, si la mayoría de los grupos no tienen capacidad de spot, es posible que reciba su capacidad de destino total de menos grupos que el número de grupos que especificó.
Este parámetro solo está disponible cuando se especifica la estrategia de asignación del precio más bajo y solo cuando se utiliza la AWS CLI. El nombre del parámetro es
InstancePoolsToUseCount
para la flota de EC2 y la flota de spot.
Estrategias de asignación para instancias bajo demanda
La configuración de inicialización determina todos los grupos de capacidad de spot posibles (tipos de instancias y zonas de disponibilidad) desde los que la flota de EC2 o la flota de spot pueden iniciar instancias bajo demanda. Sin embargo, al iniciar instancias, la flota utiliza la estrategia de asignación que usted especifique para seleccionar los grupos específicos entre todos sus grupos posibles.
Puede especificar una de las siguientes estrategias de asignación para las instancias bajo demanda:
- Precio más bajo
-
Las instancias bajo demanda provienen del grupo con el precio más bajo que tiene capacidad disponible. Esta es la estrategia predeterminada.
Si el grupo con el precio más bajo no tiene capacidad disponible, las instancias bajo demanda provienen del siguiente grupo con el precio más bajo que tenga capacidad disponible.
Si un grupo se queda sin capacidad antes de cubrir la capacidad deseada, la flota continuará completando la solicitud al extraer capacidad del siguiente grupo con el precio más bajo. Para garantizar que se logre la capacidad deseada, es posible que reciba instancias bajo demanda de varios grupos.
- Priorizada
-
La flota utiliza la prioridad que ha asignado a cada invalidación de la plantilla de inicialización e inicia primero la prioridad más alta de los tipos de instancia. Esta estrategia no se puede usar con la selección del tipo de instancia basada en atributos. Para ver un ejemplo de cómo utilizar esta estrategia de asignación, consulte Priorizar tipos de instancias para la capacidad bajo demanda.
Seleccionar la estrategia de asignación de spot apropiada
Para poder optimizar su flota para su caso de uso, elija la estrategia de asignación de spot adecuada.
Equilibrio del precio más bajo y la disponibilidad de capacidad
Para equilibrar las compensaciones entre los grupos de capacidad de spot con el precio más bajo y los grupos de capacidad de spot con la mayor disponibilidad de capacidad, se recomienda utilizar la estrategia de asignación de capacidad de precio optimizada. Esta estrategia toma decisiones sobre a qué grupos se van a solicitar instancias de spot en función del precio de los grupos y de la disponibilidad de capacidad de las instancias de spot de esos grupos. Esto significa que solicitaremos instancias de spot a los grupos que consideremos que tienen la menor probabilidad de interrupción a corto plazo, sin dejar de tener en cuenta el precio.
Si la flota ejecuta cargas de trabajo resistentes y sin estado, como aplicaciones en contenedores, microservicios, aplicaciones web, trabajos de datos y análisis, y procesamiento por lotes, utilice la estrategia de asignación de capacidad de precio optimizada para obtener ahorros de costos y disponibilidad de capacidad óptimos.
Si la flota ejecuta cargas de trabajo que pueden tener un costo mayor de interrupción asociado al reinicio del trabajo, debe implementar puntos de control para que las aplicaciones puedan reiniciarse desde ese punto en caso de que se interrumpan. Al utilizar puntos de control, la estrategia de asignación de capacidad de precio optimizada es una buena opción para estas cargas de trabajo, ya que asigna capacidad de los grupos con el precio más bajo y, además, ofrecen una tasa de interrupción de instancia de spot baja.
Para ver ejemplos de las configuraciones de JSON que utilizan la estrategia de asignación de capacidad de precio optimizada, consulte lo siguiente:
Cuando las cargas de trabajo tienen un alto costo de interrupción
Si lo desea, puede utilizar la estrategia de capacidad optimizada si ejecuta cargas de trabajo que utilizan tipos de instancias con precios similares o si el costo de la interrupción es tan importante que cualquier ahorro de costos es insuficiente en comparación con un aumento marginal de las interrupciones. Esta estrategia asigna capacidad de los grupos de capacidad de spot de la mayor disponibilidad que ofrecen la posibilidad de sufrir menos interrupciones, lo que puede reducir el costo total de la carga de trabajo.
Cuando se debe minimizar la posibilidad de interrupción, pero la preferencia por determinados tipos de instancia es importante, puede expresar las prioridades del grupo mediante la estrategia de asignación de capacidad optimizada priorizada y, luego, establecer el orden de los tipos de instancias que se utilizarán, de la prioridad más alta a la más baja.
Tenga en cuenta que cuando establece prioridades para la capacidad optimizada priorizada, estas también se aplican a las instancias bajo demanda si la estrategia de asignación bajo demanda se establece en priorizada. Tenga en cuenta que, para la flota de spot, el uso de prioridades solo se admite si la flota utiliza una plantilla de inicialización.
Para ver ejemplos de las configuraciones de JSON que utilizan la estrategia de asignación de capacidad de precio optimizada, consulte lo siguiente:
Para ver ejemplos de las configuraciones de JSON que utilizan la estrategia de asignación de capacidad optimizada priorizada, consulte lo siguiente:
Cuando su carga de trabajo es flexible en el tiempo y la disponibilidad de la capacidad no es un factor
Si su flota es pequeña o se ejecuta durante poco tiempo, puede utilizar la capacidad de precio optimizada para maximizar el ahorro de costos sin dejar de tener en cuenta la disponibilidad de capacidad.
Cuando la flota es grande o se ejecuta durante mucho tiempo
Si su flota es grande o se ejecuta durante mucho tiempo, puede mejorar su disponibilidad al distribuir las instancias de spot entre varios grupos, al usar la estrategia diversificada. Por ejemplo, si la flota especifica 10 grupos y una capacidad objetivo de 100 instancias, la flota inicia 10 instancias de spot en cada grupo. Si el precio de spot de un grupo sobrepasa el precio máximo de ese grupo, solo el 10 % de la flota se ve afectada. El uso de esta estrategia también consigue que su flota sea menos sensible a los aumentos en el precio de spot en cualquiera de los grupos a lo largo del tiempo. Con la estrategia diversificada, la flota no inicia instancias de spot; en ningún grupo con un precio de spot que sea mayor o igual que el precio bajo demanda
Mantener la capacidad objetivo para las instancias de spot
Después de que las instancias de spot se terminen debido a un cambio en el precio de spot o en la capacidad disponible de un grupo de capacidad de spot, una flota de tipo maintain
inicia las instancias de spot de reemplazo. La estrategia de asignación determina los grupos desde los que se inician las instancias de reemplazo, de la siguiente manera:
-
Si la estrategia de asignación es la capacidad de precio optimizada, la flota inicia instancias de reemplazo en los grupos que tienen la mayor disponibilidad de capacidad de instancia de spot, sin dejar de tener en cuenta el precio e identifica los grupos con el precio más bajo con alta disponibilidad de capacidad.
-
Si la estrategia de asignación es la capacidad optimizada, la flota inicia instancias de reemplazo en los grupos que tienen la mayor disponibilidad de capacidad de instancia de spot.
-
Si la estrategia de asignación es diversificada, la flota distribuye las instancias de spot de reemplazo entre los grupos restantes.
Priorizar tipos de instancias para la capacidad bajo demanda
Cuando una flota de EC2 o una flota de spot intenta cubrir la capacidad bajo demanda, de forma predeterminada inicia primero el tipo de instancia con el precio más bajo. Si la estrategia de asignación bajo demanda se configura como priorizada, la flota aplica la prioridad para determinar qué tipo de instancia debe usar primero para cubrir la capacidad bajo demanda. La prioridad se asigna a la invalidación de la plantilla de lanzamiento y la prioridad más alta se lanza primero.
Ejemplo: priorizar tipos de instancias
En este ejemplo, se configuran tres invalidaciones de plantilla de inicialización, cada una de ellas con un tipo de instancia distinto.
El precio bajo demanda de los tipos de instancias varía. Los siguientes son los tipos de instancias que se utilizan en este ejemplo, presentados por orden de precio, comenzando por el tipo de instancia menos caro:
-
m4.large
: menos caro -
m5.large
-
m5a.large
Si no se aplica la prioridad para determinar el orden, la flota cubrirá la capacidad bajo demanda comenzando por el tipo de instancia menos caro.
No obstante, supongamos que tiene instancias reservadas m5.large
sin usar que desea utilizar primero. Puede establecer la prioridad de la invalidación de la plantilla de lanzamiento, de forma que se utilicen los tipos de instancias conforme al orden de prioridad, de la siguiente manera:
-
m5.large
: prioridad 1 -
m4.large
: prioridad 2 -
m5a.large
: prioridad 3