¿Los costos de Google Cloud SQL te quitan el sueño? Quizá ya escuchaste de los Committed Use Discounts (CUDs) para Cloud SQL, que pueden reducir drásticamente tu factura de SQL, pero no sabes cómo estimar con precisión el potencial de ahorro. Existe una herramienta que permite cuantificar de forma rápida y sencilla cuánto vas a ahorrar al comprar Cloud SQL CUDs y exactamente cuánto deberías comprometer. Vamos a verlo.

Los commitments de Google CloudSQL son geniales, pero ¿cómo sé por cuánto debería comprometerme?
¿Qué son los CUDs de Cloud SQL?
Para quienes no conocen los Committed Use Discounts, o CUDs: son una forma de obtener capacidad de cómputo con descuentos importantes en una región específica de GCP a cambio de comprometerse a pagar el uso 24/7 de ese recurso de cómputo regional durante un plazo de uno o tres años, con pago mensual y sin desembolso inicial. Tienes que pagar por la cantidad de cómputo a la que te comprometiste, la uses o no, así que los CUDs solo conviene contratarlos cuando tienes la certeza de que un workload en particular tendrá una carga constante y alta.
Los CUDs originalmente se limitaban a Compute Engine, pero hace poco se trasladaron los mismos principios a Cloud SQL.
¿Cómo funcionan los CUDs?
Cuando compras un commitment de Cloud SQL, funciona igual que un commitment de Compute Engine: te comprometes a usar una cantidad específica de CPUs y de GBs de RAM. Este método de commitment de cómputo resulta favorable para los usuarios de GCP porque te da flexibilidad sobre cómo se utiliza tu commitment. Por ejemplo, podrías destinar la totalidad de un commitment de 100 CPU y 400 GB de memoria a una sola base de datos de alto rendimiento, o repartir el uso entre 50 bases de datos más pequeñas de 2 CPU y 8 GB; el ahorro será el mismo.
Todos los tipos de máquina de Cloud SQL, salvo los de CPU compartida (por ejemplo, db-f1-micro y db-g1-small), pueden usarse para aplicar tu commitment. Así que si durante tu commitment se libera un nuevo tipo de máquina de Cloud SQL, puedes actualizar tus bases de datos a ese tipo más reciente y seguir aprovechando el descuento de tu commitment, siempre que sigas consumiendo la misma cantidad de CPU y memoria.
En general, la metodología de CUDs de GCP es menos restrictiva que la de otros proveedores de nube, donde estás obligado a comprometerte con un tipo y tamaño de máquina específicos, y con una cantidad determinada de esa máquina, durante toda la duración del commitment.
Potencial de ahorro con los CUDs
Los precios de los CUDs de Cloud SQL a agosto de 2020 son los siguientes: pagar un commitment de un año genera un descuento del 25% sobre el precio on-demand, mientras que un commitment de tres años genera un descuento del 52%. Este descuento puede aplicarse a cualquier tipo de base de datos de Cloud SQL (MySQL, PostgreSQL y SQL Server), pero es fundamental tener en cuenta que los CUDs solo aplican al número de CPUs y a la cantidad de memoria a la que te comprometiste; no aplican a costos de almacenamiento, redes ni (en el caso de SQL Server) licenciamiento. A continuación se muestran precios de ejemplo para SQL Server en configuración predeterminada y de alta disponibilidad (HA):

Precios de SQL Server: On-Demand vs. CUDs de 1 año o 3 años
Aunque a primera vista el esquema de precios parece sencillo, calcularlo para un entorno de producción puede ser un verdadero desafío. Es común tener varias instancias de Cloud SQL distribuidas en distintas regiones. Cada nodo líder puede tener varias réplicas de lectura que escalan hacia arriba y hacia abajo conforme la demanda de tus servicios sube y baja. También puedes tener developers aprovisionando instancias temporales de Cloud SQL para pruebas y desarrollo. Todos estos factores generan fluctuaciones intermitentes en el costo que dificultan determinar tu gasto base.
Si usaras tu factura de Cloud SQL de fin de mes para estimar el commitment de CPU y RAM que necesitas para Cloud SQL, lo más probable es que sobreaprovisiones y gastes más de lo necesario para tus verdaderos costos operativos base del día a día. Lo ideal es poder explorar tu uso por hora de Cloud SQL durante un período prolongado, desglosado por región, y con esos datos exploratorios cuantificar rápidamente tu uso y gasto base.
Reporte de elegibilidad de CUDs de Cloud SQL
De forma exclusiva para clientes de DoiT International como parte de nuestra Cloud Management Platform, ofrecemos Cloud Reports, una herramienta interactiva y exploratoria para descifrar rápidamente los costos de la nube. Como bien lo dice la FAQ de DoiT, Cloud Reports brinda "visibilidad instantánea de tus costos de Google Cloud sin tener que pasar horas interminables revisando tus facturas".
Si bien crear tus propios reportes personalizados que abarquen uno o más servicios de GCP es directo y sencillo, también vienen incluidos reportes predeterminados de uso común, entre los cuales está "Cloud SQL CUD Eligible Consumption". Este reporte muestra tu gasto por hora elegible para CUDs de Cloud SQL (uso de CPU y RAM) por región.
En el caso del siguiente cliente de DoiT, el gasto en Cloud SQL elegible para CUDs en us-central1 alcanza picos cercanos a los $28/hora; sin embargo, deberían aprovisionar cantidades de CPU y RAM más cercanas a los valores históricos base que se observan cuando los costos rondan los $23/hora, a menos que esperen sostener un uso de $28/hora durante los próximos 1 a 3 años:

Gasto por hora elegible para CUDs de Cloud SQL, desglosado por región

Gasto por hora elegible para CUDs de Cloud SQL, pasando el cursor sobre la región us-west1
Cloud Reports ofrece una visualización interactiva del gasto por hora elegible para CUDs de Cloud SQL, desglosado por región
Si vemos a otro cliente de DoiT con máquinas de Cloud SQL distribuidas en 10 regiones, queda claro lo compleja que puede volverse la estimación de CUDs de Cloud SQL por región.
Intentar determinar los CUDs para cada región en el siguiente ejemplo sería tremendamente propenso a errores y derivaría en sobreaprovisionamiento y subaprovisionamiento por región si basaras las estimaciones de CUDs únicamente en el costo total mensual de la factura de Cloud SQL. Hay variaciones regionales y diarias importantes en el gasto de Cloud SQL que se deben conocer y entender para determinar con precisión el uso base adecuado de CPU y RAM para los CUDs regionales:

Variaciones en el uso de Cloud SQL de una empresa global. Hay mucho potencial de ahorro con CUDs, pero ¡procede con cautela!
Para conocer el desglose por hora de cuántas CPUs y cuántos GBs de RAM se utilizaron, basta con hacer clic en Customize y luego cambiar lo siguiente:
- Metric de "Cost" a "Usage"
- La opción View As de "Area Spline" a "Table"
- Arrastra "Unit" como Breakout Dimension para separar el uso de CPU del uso de RAM

Tabla del consumo por hora de CPU y RAM de Cloud SQL
Sin Cloud Reports de DoiT para explorar los datos, determinar el CUD adecuado de Cloud SQL para cada región de un despliegue global llevaría semanas de desarrollar soluciones de monitoreo a medida y revisar datos. Evitar este enfoque preciso y, en su lugar, estimar el uso a ojo a partir de una factura mensual lo más probable es que termine en sobreaprovisionamiento de CUDs y, por ende, eleve significativamente tus costos de nube durante el plazo de tu commitment de 1 a 3 años.
Qué hacer a continuación
¿Te interesa ahorrar en tu gasto de Cloud SQL identificando rápidamente los niveles de uso base y tomándolos como referencia para un Committed Use Discount?
Contacta a DoiT International para descubrir cómo aprovechar Cloud Reports y conseguir ahorros rápidos en los costos de Cloud SQL. Vale mucho la pena.