MySQL autogestionado o Cloud SQL para MySQL

MySQL es una de las bases de datos relacionales de código abierto más populares del mundo. Una de las razones por las que es popular es la capacidad de alojar y gestionar la base de datos de muchas formas que cumplan los requisitos de carga de trabajo de un usuario. Los usuarios pueden configurar la base de datos para que sea autogestionada on‐premise y en máquinas virtuales de la nube, o bien utilizar una oferta totalmente gestionada de un proveedor de la nube. Este artículo se centra en la opción de MySQL autogestionada y en la solución totalmente gestionada Cloud SQL para MySQL, que proporciona Google Cloud. Explicaremos las ventajas e inconvenientes de cada una de las opciones.

MySQL autogestionado

La opción de MySQL autogestionada significa que el usuario (que, en la mayoría de los casos, es un administrador de la base de datos) es responsable de la mayoría de las actividades implicadas en la configuración, la instalación, la configuración y el mantenimiento de la base de datos, el sistema operativo, las redes, el almacenamiento, la instancia de máquina virtual y el hardware que aloja la instancia y el servidor de la base de datos. Algunas de estas tareas, como el hardware, las instancias de máquina virtual, el almacenamiento, las redes y las tareas del sistema operativo, se pueden realizar más fácilmente utilizando un proveedor de servicios en la nube como Google Cloud. Independientemente de si el usuario gestiona una base de datos on-premise o en la nube, es responsable de algunas tareas importantes de gestión de bases de datos para que el sistema se ejecute sin problemas. Estas tareas se enumeran a continuación.

  • Disponibilidad: los componentes de hardware y software pueden fallar. No obstante, la responsabilidad de diseñar el sistema de tal manera que sea tolerante a fallos de hardware y de software, y garantiza la disponibilidad continua de la base de datos, el servidor y la aplicación corresponde al usuario.  
  • Mantenimiento de la base de datos: en la opción de MySQL autogestionada, los usuarios deben mantener actualizadas las diferentes capas de la pila de la aplicación con las últimas versiones del software, así como tomar decisiones sobre la asistencia para versiones del fin del ciclo de vida, no compatibles o antiguas del hardware, el sistema operativo y otro software. Además, los usuarios tienen que instalar parches de software, del sistema operativo y de MySQL con regularidad y mantener la base de datos en funcionamiento sin interrupciones importantes.
  • Escalabilidad: a medida que aumenta el uso de las aplicaciones, se mejora el rendimiento de las bases de datos. De forma similar, para admitir una gran cantidad de cargas de trabajo o de clientes, los recursos de hardware se deben escalar o escalar verticalmente. Esta responsabilidad recae en los usuarios en el caso de que el producto se administre a través de MySQL. Escalar recursos de hardware en un entorno on‐premise requiere mucho tiempo y es una actividad compleja, lo que a veces conlleva periodos de inactividad del sistema.
  • Seguridad: en los últimos tiempos, la seguridad se ha convertido en el aspecto más importante de todas las capas del sistema de bases de datos, empezando por la protección física del hardware para configurar cortafuegos de red, proteger las conexiones de las bases de datos y mucho más. Son actividades complejas que requieren un esfuerzo considerable y experiencia especializada en casos de configuración autogestionada.
  • Monitorización: Además de la configuración, instalación y configuración de MySQL, los usuarios también tendrán que preocuparse de monitorizar varios componentes en todas las capas de la pila, como la monitorización a nivel de hardware y del sistema operativo, MySQL y tomar medidas correctivas en caso de fallos.

En el siguiente diagrama se muestra la responsabilidad del usuario al habilitar la configuración autogestionada. Aunque la autogestión en Google Cloud reduce algunas tareas relacionadas con el hardware, la computación, las redes y el almacenamiento, las responsabilidades de gestionar las capas restantes de la pila siguen siendo las del usuario. El administrador de la base de datos y el desarrollador de la aplicación tienen que dedicar suficiente tiempo, energía y recursos a gestionar MySQL.

Imagen que muestra todas las responsabilidades del administrador de la base de datos que es el alojamiento de bases de datos autogestionado

¿Qué es Cloud SQL para MySQL?

Cloud SQL es un servicio de base de datos totalmente gestionado que ofrece facilidades para configurar, mantener y gestionar la configuración de bases de datos MySQL, PostgreSQL y SQL Server en Google Cloud. Cloud SQL gestiona todos los aspectos del hardware, las redes, el sistema operativo, la seguridad, la monitorización, el mantenimiento, la disponibilidad y el escalado de la base de datos MySQL. Los usuarios no tienen todas estas responsabilidades, lo que les permite centrarse en el desarrollo de aplicaciones y en aportar valor a sus clientes.

El siguiente diagrama es similar al de arriba, en el que se muestran las tareas que implica gestionar las distintas capas de la base de datos MySQL, con la única diferencia de que todas las tareas que Cloud SQL gestiona en nombre del usuario se muestran en azul.

Imagen para un alojamiento de bases de datos totalmente gestionado

Además de gestionar muchas de las tareas que se muestran más arriba, Cloud SQL ofrece varias funciones y soluciones que no están disponibles de forma nativa en un entorno autogestionado. A continuación se enumeran algunas de las principales funciones que ofrece Cloud SQL.

Fiabilidad: las copias de seguridad y la recuperación son las actividades más importantes en la gestión de bases de datos. Cloud SQL ofrece copias de seguridad automáticas y copias de seguridad bajo demanda, que sirven para restaurar las bases de datos en un punto en el tiempo en caso de corrupción, desastres o modificaciones de datos no deseadas.

Disponibilidad: Cloud SQL proporciona una alta disponibilidad gracias a las instancias de varios servidores que alojan la base de datos en varias zonas con la capacidad automática de conmutación por error para proporcionar disponibilidad en caso de fallo de la máquina virtual o del centro de datos. Cloud SQL garantiza una disponibilidad superior al 99,95 % en cualquier lugar del mundo.

Además de la función de alta disponibilidad, Cloud SQL también cuenta con un equipo de Site Reliability Engineering (SRE) que se encarga de garantizar la fiabilidad de las instancias de bases de datos en Google Cloud.

Las réplicas de lectura entre regiones son otra función que se puede utilizar como mecanismo de recuperación tras fallos en caso de fallo. Permite que un usuario muestre rápidamente la base de datos afectada en otro sitio (región) con un impacto mínimo para el negocio.

Escalabilidad: Cloud SQL ofrece la creación de réplicas de lectura de MySQL, como instancias adicionales de solo lectura de MySQL, en la misma región o en regiones remotas que permiten el servicio de solicitudes desde las réplicas, así como la instancia principal, lo que mejora el rendimiento de la lectura. Las réplicas de lectura también se pueden utilizar con fines de creación de informes y se pueden destruir una vez que se cumplan las necesidades empresariales.

Cloud SQL permite escalar recursos (CPU, memoria y almacenamiento) y reducir verticalmente los recursos de la instancia de MySQL con un periodo de inactividad mínimo. Sin embargo, en el caso de las configuraciones autogestionadas, estas complejas actividades requieren un gran esfuerzo, experiencia y planificación.

Seguridad: los servidores de bases de datos Cloud SQL para MySQL se encuentran en centros de datos seguros de Google Cloud, lo que garantiza el máximo nivel de seguridad. Además, Google Cloud ofrece conectividad privada con la nube privada virtual y acceso a la red controlado por el usuario con protección de cortafuegos. De esta forma, los servidores de bases de datos de usuarios quedan fuera del alcance de los agentes malintencionados.

Otro aspecto de la seguridad es el cumplimiento de las normativas de seguridad. Cloud SQL cumple muchas normativas reconocidas, como SSAE 16, ISO 27001, PCI DSS e HIPAA.

Cloud SQL permite gestionar usuarios y su acceso a la base de datos mediante la integración de la gestión de identidades y accesos. Esta integración gestiona la autorización y la autenticación de los usuarios de Google Cloud, y proporciona un acceso pormenorizado a recursos concretos de la plataforma. De este modo, se impide el acceso no autorizado a la base de datos. Además, Cloud SQL facilita el control de identidades y accesos, ya que proporciona los roles predefinidos para controlar el acceso a los recursos de Cloud SQL

Otra de las funciones de seguridad de Cloud SQL es el encriptado de datos en reposo y en tránsito, lo que garantiza que ningún usuario no autorizado pueda acceder a ellos.

Cloud SQL ofrece una función para validar contraseñas para los usuarios de bases de datos. Con ella, los clientes pueden definir políticas sobre la complejidad de las contraseñas, saber su longitud mínima y el intervalo de cambio. de la contraseña a nivel de instancia. Los clientes también pueden definir políticas para los días en los que la contraseña caduca, el número de intentos fallidos y los requisitos de cambio de contraseña a nivel de usuario. Estas funciones de Cloud SQL aportan prácticas recomendadas de cumplimiento relacionadas con la seguridad y reducen el riesgo de acceso no autorizado a los datos esenciales.

Cloud SQL también proporciona una forma de auditar las acciones y las operaciones en la base de datos de MySQL mediante un complemento del registro de auditoría. El registro de auditoría proporciona estadísticas sobre quién hizo, qué acción, en qué objeto y cuándo. La auditoría de bases de datos te permite hacer un seguimiento de acciones específicas de los usuarios en la base de datos, como actualizaciones de tablas, consultas de lectura, permisos de usuario y otros.

Observabilidad: Cloud SQL ofrece varias soluciones de monitorización y tiene una lista cada vez mayor de métricas listas para usarse que proporcionan información valiosa sobre el estado de la base de datos. Los usuarios pueden usar las métricas para crear alertas que mantengan a los administradores informados del estado de la base de datos.

Cloud SQL también proporciona funciones como las estadísticas de consultas y los recomendadores, que permiten a los usuarios solucionar problemas e identificar los cuellos de botella del rendimiento de una consulta o carga de trabajo. Estas funciones son difíciles de replicar en un entorno MySQL autogestionado.

Integración: Cloud SQL ofrece una conectividad de red sencilla y la integración con otros servicios de Google Cloud, como Google Kubernetes Engine, Compute Engine y Cloud Run, que facilitan el desarrollo de soluciones profundamente integradas. Cloud SQL también ofrece una integración nativa con BigQuery y Looker, que pueden usarse para procesar los datos analíticos. presentes en Cloud SQL.

Parching: como servicio gestionado, Cloud SQL actualiza automáticamente las instancias para garantizar que el hardware y el funcionamiento subyacentes son fiables, eficaces, seguros y actualizados. La mayoría de estas actualizaciones se realizan mientras la instancia de Cloud SQL está en funcionamiento. No obstante, es posible que algunas actualizaciones del sistema requieran una breve interrupción del servicio, que los usuarios pueden definir en ventanas de mantenimiento para actualizar su actividad.

Actualizaciones de versiones: Cloud SQL también proporciona un proceso automático para actualizar la versión de la base de datos (MySQL). Los usuarios también pueden actualizar la versión principal migrando los datos a una instancia de una versión superior.  

¿Cómo se crea una instancia de base de datos MySQL en Cloud SQL para MySQL?

Ventajas e inconvenientes de MySQL autogestionado

Ventajas

  1. Posibilidad de usar cualquier bifurcación MySQL del ecosistema MySQL, como MariaDB o Percona, para configurar MySQL.
  2. Flexibilidad en la configuración de MySQL, ya que los usuarios tienen un control total sobre la instancia, los recursos y el sistema operativo. Además, los usuarios pueden utilizar el sistema operativo que prefieran, configurar el sistema operativo como quieran y configurar MySQL según sus necesidades.
  3. Los usuarios no se ven limitados por las limitaciones de Cloud SQL, como un tamaño de almacenamiento máximo de 64 TB. Los usuarios pueden superar el límite de almacenamiento de 64 TB y utilizar una infraestructura de computación mucho mayor para alojar MySQL.
  4. Los usuarios tienen acceso completo a la instancia de MySQL, incluidos los privilegios SUPER, y acceso completo al sistema operativo, incluidos los permisos de sudo.
  5. Los usuarios pueden configurar topologías de alta disponibilidad y replicación según su requisito, aunque no sean compatibles con Cloud SQL.

Inconvenientes

  1. Los usuarios tienen la responsabilidad de gestionar infraestructuras de hardware complejas, redes y operaciones de centros de datos en un entorno on‐premise. Incluso si gestionan la nube de MySQL en la nube, los usuarios tienen que enfrentarse a la complejidad de la configuración, a la configuración de los discos y a las instancias de persistencia, así como al diseño y a la gestión de clústeres de alta disponibilidad. seguridad, recuperación tras fallos y escalabilidad.
  2. Mantener actualizadas las versiones de las bases de datos, las versiones de los sistemas operativos y los sistemas de hardware con los parches más recientes para evitar errores y vulnerabilidades de seguridad puede conllevar costes, recursos, complejidad y periodos de inactividad significativos.
  3. Además de configurar la base de datos, los usuarios tienen que configurar y gestionar la seguridad en todas las capas, no solo en la propia base de datos. Por ejemplo, puedes encriptar las conexiones en tránsito con SSL, mantener los certificados actualizados, encriptar los datos en reposo y gestionar el acceso de usuarios y cuentas de servicio a las bases de datos.
  4. Para asegurar la disponibilidad de la instancia, se tienen que monitorizar varias capas del sistema de base de datos para detectar cualquier fallo. Los usuarios deben invertir recursos adicionales en la configuración de las herramientas de monitorización. Las alertas deben definirse en caso de errores y, si se producen errores, se deben tomar medidas correctivas.
  5. Los usuarios deben dedicar un tiempo, recursos y esfuerzos considerables a la configuración y a la gestión de bases de datos, en lugar de centrarse en el desarrollo de aplicaciones.

Ventajas e inconvenientes de Cloud SQL para MySQL

Ventajas

  1. Cloud SQL para MySQL ofrece una interfaz fácil de usar que permite crear, gestionar, acceder y monitorizar la base de datos MySQL para desarrolladores e ingenieros, incluso para aquellos que no disponen de conocimientos específicos de bases de datos. Además, Cloud SQL te permite migrar fácilmente las bases de datos MySQL de entornos on‐premise u otras nubes a Cloud SQL para MySQL.
  2. Cloud SQL para MySQL ofrece un conjunto completo de funciones necesarias para alojar bases de datos MySQL para diversas aplicaciones, desde bases de datos para micrositios hasta aplicaciones empresariales de gran importancia, aplicaciones de videojuegos y datos para analíticas. Gracias a esas potentes funciones, los usuarios pueden crear aplicaciones muy fiables y escalables.
  3. Cloud SQL comparte con los usuarios la responsabilidad de la seguridad. Cloud SQL garantiza la seguridad en los niveles más bajos de infraestructura y de red para que los usuarios puedan centrarse en configurar y desarrollar aplicaciones de nivel superior.
  4. Cloud SQL ofrece varias funciones de seguridad, como complementos de validación de contraseña y registro de auditoría, que no están disponibles inmediatamente en las versiones de la comunidad y son complejos de implementar en entornos autogestionados. Cloud SQL simplifica y hace que estas funciones estén disponibles para los usuarios.
  5. Cloud SQL ofrece diversas formas de interactuar con la base de datos. Los usuarios pueden usar la GUI, la CLI y la API para personalizar sus operaciones según sus necesidades con el mínimo esfuerzo.
  6. Por su parte, Cloud SQL se integra fácilmente con otras soluciones y productos, como BigQuery, para desarrollar soluciones analíticas con el mínimo esfuerzo.
  7. Cloud SQL asume la responsabilidad de la fiabilidad de la instancia de base de datos, con su infraestructura de alta disponibilidad, sus soluciones de reparación automática y, sobre todo, los equipos de SRE las 24 horas.
  8. Los usuarios pasan menos tiempo y esfuerzo en las tareas operativas de la base de datos, y pueden centrarse en el desarrollo de aplicaciones y, por lo tanto, en aumentar su capacidad para ofrecer soluciones que satisfagan las necesidades de su empresa de forma más eficiente.
  9. Además de ayudar a gestionar la base de datos, Cloud SQL ofrece consejos y recomendaciones para mejorar el rendimiento de las bases de datos mediante funciones como información valiosa sobre las consultas y recomendaciones. Estas funciones facilitan el alojamiento y la gestión de las bases de datos en la nube de forma sencilla, segura y rentable.
  10. Cloud SQL ofrece servicios de atención al cliente para simplificar y optimizar la asistencia que se necesita en caso de que haya problemas o solicitudes relacionados con bases de datos.

Inconvenientes

  1. Las bifurcaciones de MySQL del ecosistema MySQL, como MariaDB y Percona, no son compatibles con Cloud SQL. 
  2. No se admiten algunas funciones de MySQL. Más información acerca de las funciones no admitidas
  3. Cloud SQL admite tipos de máquinas con hasta 624 GB de RAM y 96 CPU. Se admiten almacenamientos de hasta 64 TB. Si la base de datos necesita una capacidad superior, una opción autogestionada sería la única opción disponible hoy en día.

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Consola
Google Cloud