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.
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.
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.
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.
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.
Ventajas
Inconvenientes
Ventajas
Inconvenientes
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.