Azure Spot Virtual Machines para Virtual Machine Scale Sets

El uso de máquinas virtuales de acceso puntual de Azure en conjuntos de escalado permite aprovechar las ventajas de nuestra capacidad no utilizada con un importante ahorro en los costos. Siempre que Azure necesite recuperar la capacidad, la infraestructura de esta plataforma expulsa las instancias de las máquinas virtuales de acceso puntual de Azure. Por lo tanto, las instancias de máquinas virtuales de acceso puntual de Azure son excelentes para cargas de trabajo que puedan soportar interrupciones, como los trabajos de procesamiento por lotes, los entornos de desarrollo y pruebas, las cargas de trabajo de proceso de gran tamaño, etc.

La cantidad de capacidad sin usar disponible varía, por ejemplo, en función del tamaño, la región o la hora del día. Al implementar instancias de máquinas virtuales de acceso puntual en los conjuntos de escalado, Azure asigna las instancias solo si hay capacidad disponible, aunque estas no tienen un Acuerdo de Nivel de Servicio. Un conjunto de escalado de Azure Spot Virtual Machines se implementa en un dominio de error único y no ofrece garantías de alta disponibilidad.

Limitaciones

Los siguientes tamaños no se admiten en las máquinas virtuales de acceso puntual de Azure:

  • Serie B
  • Versiones de promoción de cualquier tamaño (como los tamaños de promoción Dv2, NV, NC, H)

Azure Spot Virtual Machine puede implementarse en cualquier región, excepto en Microsoft Azure operado por 21Vianet.

Actualmente se admiten los siguientes tipos de ofertas:

  • Contrato Enterprise
  • Código de oferta de pago por uso (003P)
  • Patrocinado (0036P y 0136P)
  • Para el proveedor de servicios en la nube (CSP), consulte el Centro de partners o contacte con su partner directamente.

Precios

Los precios de las instancias de máquinas virtuales de acceso puntual de Azure son variables, en función de la región y la SKU. Para más información, consulte los precios para Linux y Windows.

La variabilidad en los precios permite establecer un precio máximo, en dólares estadounidenses (USD), con un máximo de 5 decimales. Por ejemplo, el valor 0.98765 correspondería a un precio máximo de 0,98765 USD por hora. Si establece el precio máximo en -1, la instancia no se expulsará según el precio. El precio de la instancia será el precio actual de la máquina virtual de acceso puntual de Azure o el de una instancia estándar, el que sea menor de los dos, siempre que haya capacidad y cuota disponibles.

Directiva de expulsión

Al crear un conjunto de escalado mediante máquinas virtuales de acceso puntual de Azure, puede establecer la directiva de expulsión en Desasignar (opción predeterminada) o Eliminar.

La directiva Deallocate (Desasignar) cambia las instancias expulsadas al estado stopped-deallocated para que pueda volver a implementarlas. Sin embargo, no hay ninguna garantía de que la asignación se realice correctamente. Las máquinas virtuales desasignadas se siguen teniendo en cuenta en la cuota de instancias del conjunto de escalado y se le cobra por los discos subyacentes.

Si quiere que las instancias se eliminen al expulsarse, puede establecer la directiva de expulsión en Eliminar. Con la directiva de expulsión establecida para eliminar, puede crear nuevas máquinas virtuales mediante el aumento de la propiedad de recuento de instancias del conjunto de escalado. Las máquinas virtuales expulsadas se eliminan junto con sus discos subyacentes y, por tanto, no se le cobra el almacenamiento. También puede usar la característica de escalado automático de los conjuntos de escalado para probar y compensar automáticamente las máquinas virtuales expulsadas; sin embargo, no hay ninguna garantía de que la asignación se realice correctamente. Con el fin de evitar el costo de los discos y alcanzar los límites de cuota, se recomienda usar únicamente la característica de escalado automático en los conjuntos de escalado de Azure Spot Virtual Machine al establecer la directiva de expulsión en Delete (Eliminar).

Los usuarios pueden optar por recibir notificaciones en las máquinas virtuales mediante Azure Scheduled Events. De este modo se le notifica que se van a expulsar las máquinas virtuales y tendrá 30 segundos para terminar los trabajos y cerrar las tareas antes de que esto ocurra.

Historial de expulsiones

Puede ver los precios históricos y las tasas de expulsión por tamaño en una región en el portal. Seleccione View pricing history and compare prices in nearby regions (Ver el historial de precios y comparar precios en regiones cercanas) para ver una tabla o gráfico de precios para un tamaño específico. Los precios y las tasas de expulsión en las siguientes imágenes son solo ejemplos.

Gráfico:

Screenshot of the region options with the difference in pricing and eviction rates as a chart.

Table:

Screenshot of the region options with the difference in pricing and eviction rates as a table.

Intento de restauración

Esta característica de nivel de plataforma usa IA para intentar restaurar automáticamente las instancias de máquina virtual de acceso puntual de Azure expulsadas dentro de un conjunto de escalado para mantener el recuento de instancias de destino.

Ventajas de Prueba y restauración:

  • Intenta restaurar las máquinas virtuales de acceso puntual de Azure expulsadas por motivos de capacidad.
  • Se espera que las máquinas virtuales de acceso puntual de Azure restauradas se ejecuten durante más tiempo con menos probabilidad de que se produzca una expulsión desencadenada por la capacidad.
  • Mejora la duración de una máquina virtual de acceso puntual de Azure, por lo que las cargas de trabajo se ejecutan durante más tiempo.
  • Permite que los conjuntos de escalado de máquinas virtuales conserven el recuento de destinos de las máquinas virtuales de acceso puntual de Azure, de la misma forma que la característica que sirve para conservar el recuento de destinos que ya existe para las máquinas virtuales de pago por uso.

La característica Prueba y restauración está deshabilitada en los conjuntos de escalado en los que se usa Escalado automático. El número de máquinas virtuales del conjunto de escalado está controlado por las reglas de escalado automático.

Grupos de selección de ubicación

Un grupo de selección de ubicación es una construcción similar a un conjunto de disponibilidad de Azure, con sus propios dominios de error y dominios de actualización. De forma predeterminada, un conjunto de escalado consta de un único grupo de selección de ubicación con un tamaño máximo de 100 máquinas virtuales. Si la propiedad singlePlacementGroup de un conjunto de escalado se establece en false, el conjunto de escalado puede estar compuesto por varios grupos de selección de ubicación y tiene un intervalo de 0 a 1000 máquinas virtuales.

Importante

A menos que use InfiniBand con HPC, se recomienda establecer la propiedad del conjunto de escalado singlePlacementGroup en false para habilitar varios grupos de selección de ubicación para un mejor escalado en la región o zona.

Implementación de máquinas virtuales de acceso puntual de Azure en conjuntos de escalado

Para implementar máquinas virtuales de acceso puntual en conjuntos de escalado, puede establecer la nueva marca Priority (Prioridad) en Spot (Acceso puntual). Todas las máquinas virtuales del conjunto de escalado se establecerán para Spot. Para crear un conjunto de escalado con máquinas virtuales de acceso puntual de Azure, use uno de los métodos siguientes:

Portal

El proceso para crear un conjunto de escalado que use máquinas virtuales de acceso puntual de Azure es igual que el que se detalla en el artículo de introducción. Al implementar un conjunto de escalado, puede elegir establecer la marca de Spot, el tipo de expulsión, la directiva de expulsión y, si quiere habilitarlo, intente restaurar instancias: Create a scale set with Azure Spot Virtual Machines

CLI de Azure

Importante

A partir de noviembre de 2023, los conjuntos de escalado de máquinas virtuales creados con PowerShell y la CLI de Azure tendrán como valor predeterminado el modo de orquestación flexible si no se especifica ningún modo de orquestación. Para obtener más información sobre este cambio y las acciones que debe realizar, vaya a Cambio importante para clientes de PowerShell o la CLI de VMSS: Centro de comunidad de Microsoft

El proceso para crear un conjunto de escalado con máquinas virtuales de acceso puntual de Azure es igual que el que se detalla en el artículo de introducción. Basta con agregar "--Priority Spot" y --max-price. En este ejemplo, usamos -1 para --max-price, por lo que la instancia no se expulsará según el precio.

az vmss create \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --image Ubuntu2204 \
    --orchestration-mode Flexible \
    --single-placement-group false \
    --admin-username azureuser \
    --generate-ssh-keys \
    --priority Spot \
    --eviction-policy Deallocate \
    --max-price -1 \
    --enable-spot-restore True \
    --spot-restore-timeout PT1H

PowerShell

Importante

A partir de noviembre de 2023, los conjuntos de escalado de máquinas virtuales creados con PowerShell y la CLI de Azure tendrán como valor predeterminado el modo de orquestación flexible si no se especifica ningún modo de orquestación. Para obtener más información sobre este cambio y las acciones que debe realizar, vaya a Cambio importante para clientes de PowerShell o la CLI de VMSS: Centro de comunidad de Microsoft

El proceso para crear un conjunto de escalado con máquinas virtuales de acceso puntual de Azure es igual que el que se detalla en el artículo de introducción. Basta con agregar "-Priority Spot" y proporcionar un valor de -max-price a New-AzVmssConfig.

$vmssConfig = New-AzVmssConfig `
    -Location "East US 2" `
    -SkuCapacity 2 `
    -OrchestrationMode "Flexible" `
    -SkuName "Standard_DS2" `
    -Priority "Spot" `
    -max-price -1 `
    -EnableSpotRestore `
    -SpotRestoreTimeout 60 `
    -EvictionPolicy delete

Plantillas de Resource Manager

El proceso para crear un conjunto de escalado que use máquinas virtuales de acceso puntual de Azure es igual que el que se detalla en el artículo de introducción para Linux o Windows.

Para implementaciones de plantilla de máquina virtual de acceso puntual de Azure, use "apiVersion": "2019-03-01" o posterior.

Agregue las propiedades priority, evictionPolicy, billingProfile y spotRestoryPolicy a la sección "virtualMachineProfile": y la propiedad "singlePlacementGroup": false, a la sección "Microsoft.Compute/virtualMachineScaleSets" en la plantilla:


{
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  },
  "properties": {
    "singlePlacementGroup": false,
    }

        "virtualMachineProfile": {
              "priority": "Spot",
                "evictionPolicy": "Deallocate",
                "billingProfile": {
                    "maxPrice": -1
                },
                "spotRestorePolicy": {
                  "enabled": "bool",
                  "restoreTimeout": "string"
    },
            },

Para eliminar la instancia después de que se haya expulsado, cambie el parámetro evictionPolicy a Delete.

Simulación de una expulsión

Puede simular una expulsión de una máquina virtual de acceso puntual de Azure para probar la capacidad de respuesta de una aplicación ante una expulsión repentina.

Reemplazar lo siguiente por su propia información:

  • subscriptionId
  • resourceGroupName
  • vmName
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/simulateEviction?api-version=2020-06-01

Response Code: 204 significa que la expulsión simulada se ha realizado correctamente.

Para más información, consulte la sección sobre la prueba de una notificación de expulsión simulada.

Preguntas más frecuentes

P: Una vez que se crea, ¿es lo mismo una instancia de máquina virtual de acceso puntual de Azure que una instancia estándar?

R: Sí, salvo que no hay ningún Acuerdo de Nivel de Servicio para las máquinas virtuales de acceso puntual y se pueden expulsar en cualquier momento.

P: ¿Qué se debe hacer si se produce la expulsión pero aún se necesita capacidad?

R: Si necesita capacidad de inmediato, se recomienda usar máquinas virtuales estándar en lugar de máquinas virtuales de acceso puntual.

P: ¿Cómo se administra la cuota de las máquinas virtuales de acceso puntual de Azure?

R: Las instancias de máquinas virtuales de acceso puntual de Azure y las instancias estándar tienen grupos de cuotas independientes. La cuota de máquinas virtuales de acceso puntual de Azure se comparte entre las instancias de máquinas virtuales y de conjuntos de escalado. Para más información, consulte Límites, cuotas y restricciones de suscripción y servicios de Microsoft Azure.

P: ¿Puedo solicitar cuota adicional para las máquinas virtuales de acceso puntual de Azure?

R: Sí, puede enviar la solicitud para aumentar su cuota en las máquinas virtuales de acceso puntual de Azure mediante el proceso de solicitud de cuota estándar.

P: ¿Puedo convertir los conjuntos de escalado existentes en conjuntos de escalado de Azure Spot Virtual Machines?

R: No, solo se permite establecer la marca Spot durante la creación.

P: Si uso low para los conjuntos de escalado de prioridad baja, ¿necesito empezar a usar Spot en su lugar?

R: Por ahora, low y Spot funcionarán, pero debe empezar a usar Spot.

P: ¿Puedo crear un conjunto de escalado con máquinas virtuales normales y máquinas virtuales de acceso puntual de Azure?

R: No, un conjunto de escalado no admite más de un tipo de prioridad.

P: ¿Puedo usar la escalabilidad automática con conjuntos de escalado de Azure Spot Virtual Machines?

R: Sí, puede establecer reglas de escalado automático en el conjunto de escalado de Azure Spot Virtual Machines. Si se expulsan las máquinas virtuales, la escalabilidad automática puede intentar crear nuevas máquinas virtuales de acceso puntual de Azure. Recuerde que, aun así, no se garantiza esta capacidad.

¿Funciona el escalado automático con las dos directivas de expulsión (desasignar y eliminar)?

R: Sí. No obstante, se recomienda establecer la directiva de expulsión en "Eliminar" cuando se use la escalabilidad automática. Esto es porque las instancias desasignadas se cuentan para el número de capacidad en el conjunto de escalado. Cuando se usa el escalado automático, es probable que alcance el número de instancias de destino rápidamente debido a las instancias expulsadas desasignadas. Además, las operaciones de escalado pueden verse afectadas por expulsiones puntuales. Por ejemplo, las instancias de Azure Virtual Machine Scale Sets podrían situarse por debajo del recuento mínimo establecido debido a varias expulsiones puntuales durante las operaciones de escalado.

P: ¿Dónde puedo publicar preguntas?

R: Puede publicar y etiquetar la pregunta con azure-spot en Preguntas y respuestas.

Pasos siguientes

Consulte la página de precios de Virtual Machine Scale Sets para ver información de precios.