Cómo mantener bajo control los costos de tus VM en Azure
Las máquinas virtuales (VMs) en Azure pueden ser más costosas de lo esperado, especialmente sin una optimización adecuada. Este artículo te guía a través de estrategias como elegir la SKU correcta, optimizar tiempos de ejecución y aprovechar licencias existentes para reducir costos y mejorar la eficiencia a largo plazo.
“¿Por qué cuestan tanto mis máquinas virtuales (VMs) en Azure? ¡Pensé que la nube era más económica!”
Este es un comentario que escuchamos frecuentemente de nuestros clientes, especialmente de aquellos que migraron su infraestructura de TI a la nube con un enfoque de “Lift & Shift” sin realizar ajustes. Sin las optimizaciones adecuadas, la nube puede resultar más costosa de lo esperado.
¿Realmente necesitas una VM?
Esta es la primera pregunta que deberías plantearte: ¿La tarea requiere realmente una VM, o un servicio nativo de la nube como Azure Functions o un clúster de Kubernetes sería una mejor opción?
Sin embargo, existen buenas razones para optar por una VM:
- Requisitos de los proveedores de software
- Falta de conocimiento en la empresa para modernizar aplicaciones
- Escasez de personal
- Otras necesidades específicas
Entonces, ¿cómo optimizar los costos si no se puede prescindir de una VM?
A continuación, te presentamos estrategias efectivas.
Principales factores que influyen en los costos de las VMs
Los costos de las VMs en Azure están principalmente determinados por los siguientes factores:
- Tiempo de ejecución
- SKU asignado (Tamaño de la máquina virtual)
- Licencias del sistema operativo
El costo principal proviene de los recursos utilizados durante el tiempo de ejecución. Mientras una VM esté activa y consuma recursos de CPU y RAM, se generarán costos, independientemente de si está completamente utilizada o en inactividad. Cuando una VM está apagada, los costos se limitan al almacenamiento utilizado.
Cada VM en Azure está asociada con un SKU específico, que describe su configuración en términos de CPU y RAM. Diferentes SKUs están optimizados para distintos escenarios de uso, como una alta proporción de núcleos de CPU a RAM para tareas intensivas en cálculo.
El nombre del SKU usualmente proporciona información sobre su configuración.
Ejemplo: Una VM de la serie D está diseñada para un equilibrio entre CPU y RAM, típicamente 4 GB de RAM por núcleo de CPU. Por ejemplo, Standard_D4s_v5 ofrece 4 núcleos de CPU y 16 GB de RAM. La “s” indica compatibilidad con almacenamiento SSD premium.
Microsoft ofrece una lista completa de todos los SKUs disponibles, con detalles sobre su rendimiento.
Cómo optimizar los costos de las VMs
Para reducir los costos de las VMs, considera analizar estos aspectos:
Asignación de recursos
La primera pregunta clave es: ¿Está la VM asignada al SKU óptimo?
Para responder a esta pregunta, consulta las métricas de la VM en el portal de Azure. Esto puede revelar que el tamaño de la VM está sobredimensionado, o que los recursos solo se utilizan plenamente en ciertos momentos, dejando la VM inactiva el resto del tiempo. También puede ocurrir que la VM esté asignada a una serie de SKU inadecuada, y que una variante con más RAM por núcleo de CPU sea más adecuada.
Ejemplo: Uso intermitente
Un escenario típico: ejecuciones mensuales de facturación en un sistema ERP. La VM se utiliza intensivamente una vez al mes para procesar facturas, pero el resto del tiempo solo se usa para consultas de datos esporádicas y menos exigentes.
Solución: Reducir el tamaño de la VM durante la mayor parte del mes y aumentarlo temporalmente durante las ejecuciones de facturación. Azure permite realizar estos ajustes dentro de la misma serie con tiempo de inactividad mínimo.
Ejemplo: SKU inadecuado
Otro caso: Una aplicación necesita 64 GB de RAM, pero solo 4 núcleos de CPU. Si la VM está configurada como Standard_D16s_v5, incluye 16 núcleos de CPU, excediendo por mucho las necesidades.
Solución: Cambiar a un SKU como Standard_E8-4s_v5 proporcionaría los mismos 64 GB de RAM con solo 4 núcleos de CPU.
Usando el Calculador de precios de Azure, puedes identificar rápidamente los ahorros potenciales. Las diferencias mensuales pueden superar los 500 euros.
Optimización del tiempo de ejecución de las VMs
En la nube, las VMs generan costos según el uso activo de CPU y RAM. En entornos locales, las VMs solían operar 24/7 sin que esto afectara mucho los costos. En la nube, sin embargo, surge la pregunta: ¿Es necesario que la VM funcione 24/7?
Ejemplo: Uso 12/5
Imagina una VM cuya aplicación no se utiliza durante las noches ni los fines de semana. No se requiere disponibilidad continua.
Solución: Configura la VM para que se apague en horarios no laborales. Es importante considerar la gestión de actualizaciones para evitar riesgos de seguridad. Con Azure Automation Accounts, puedes automatizar el inicio y apagado de VMs en horarios predefinidos.
Ejemplo: Uso 24/7
Algunos sistemas, como controladores de dominio, necesitan estar disponibles constantemente para responder a usuarios, clientes y servidores.
Solución: En estos casos, Azure Reserved Instances son ideales. Las organizaciones pueden reservar recursos de computación por 1 a 3 años con una tarifa reducida. El pago puede ser mensual o anticipado. Además, las Reserved Instances pueden aplicarse a otras VMs con el mismo SKU cuando están disponibles.
Ejemplo: Modernización planificada
En algunos casos, se necesitan VMs mientras se planea una transición a servicios nativos de la nube, como Azure Functions o clústeres de Kubernetes. Si esta migración se prevé en menos de tres meses, las Reserved Instances podrían no ser rentables.
Solución: El Azure Savings Plan es una alternativa flexible. Similar a las Reserved Instances, abarca de 1 a 3 años, pero cubre una gama más amplia de servicios de Azure. Las empresas se comprometen a gastar un monto fijo por hora, obteniendo tarifas reducidas para servicios elegibles hasta ese límite. Los costos que excedan el compromiso se facturan a las tarifas estándar.
Licencias
Un factor a menudo subestimado en la optimización de costos son las licencias del sistema operativo. Cuando se crea una VM en Azure, Microsoft proporciona por defecto una licencia de alquiler para el sistema operativo. Sin embargo, muchas organizaciones ya cuentan con licencias existentes.
Solución: Azure Hybrid Benefit
Con Azure Hybrid Benefit, puedes usar licencias existentes, como Windows Server, en tus VMs de Azure.
Esta opción también está disponible para sistemas licenciados de terceros como Red Hat, SUSE Enterprise y Microsoft SQL Server.
El uso de licencias existentes en Azure está sujeto a ciertos requisitos. Una vez cumplidos, puedes activar el Hybrid Benefit fácilmente desde la configuración de la VM. Los beneficios son evidentes: una comparación entre VMs con y sin Hybrid Benefit resalta el ahorro potencial.
Vale la pena verificar si tus licencias actuales califican para el Azure Hybrid Benefit.
Conclusion
Un análisis detallado de la asignación de recursos, la optimización del tiempo de ejecución y el uso de licencias existentes son pasos clave para reducir costos. También es importante considerar alternativas a las VMs y explorar servicios nativos de la nube. Herramientas como el Calculador de precios de Azure, Azure Automation y opciones como Azure Hybrid Benefit te ayudarán a identificar oportunidades de ahorro.
Para tener éxito en la nube a largo plazo, es fundamental evaluar continuamente los costos y los beneficios, y estar dispuesto a optimizar la infraestructura según sea necesario.