La gestión de sitios WordPress con mucho tráfico plantea muchos retos, y uno de ellos es la base de datos.
La base de datos es conocida por utilizar altos recursos como CPU, Memoria, IO por lo que sería una buena idea alojar la base de datos por separado.
Un sitio típico de WordPress sería algo como lo siguiente.
Donde todo el software como Nginx/Apache, PHP, WordPress, MySQL/MariaDB se ejecuta en el mismo servidor.
Tenerlo todo en el mismo servidor está bien para un tráfico pequeño o medio, pero si está gestionando un sitio web con mucho tráfico y optimizando cada capa para un rendimiento óptimo, entonces es posible que desee desacoplar el servidor de base de datos.
Hay dos formas posibles de hacerlo.
- Alojar la base de datos en un servidor diferente
- Utilice Google Cloud Managed SQL
La primera opción es buena, si está preparado para dedicar tiempo y esfuerzo a la gestión de la base de datos, entonces estaría bien. Sin embargo, si no está preparado para ello, entonces puede recurrir a Google Cloud Managed SQL.
¿Qué es Google Cloud SQL?
Cloud SQL es un servicio de base de datos gestionada de alto rendimiento (MySQL, PostgreSQL, SQL server) de Google. No tendrá que preocuparse por la instalación, la gestión ni la optimización del rendimiento.
Usted paga lo que utiliza y deja que Google se encargue de la infraestructura de la base de datos.
Google Cloud SQL puede integrarse con App Engine, Compute Engine o cualquier otro alojamiento/servicio, incluido su puesto de trabajo local. La configuración de la replicación de bases de datos, la alta disponibilidad y la conmutación por error automática no requieren conocimientos de bases de datos y se configuran mediante la consola de GCP.
¿Listo para ver cómo funciona Cloud SQL con WordPress?
Escenario – Tengo un sitio WordPress alojado en Google Cloud (Compute Engine) donde todo se ejecuta en un único servidor. Haré lo siguiente para separar la base de datos.
- Crear una instancia de Cloud SQL
- Exportar los datos de la base de datos MySQL existente
- Importe los datos a Cloud SQL
- Permitir que Cloud SQL se conecte desde el servidor de WordPress existente
- Cambie la configuración de WordPress para conectarse a Cloud SQL
Crear una instancia de Google Cloud SQL
- Vaya a Cloud SQL y haga clic en Crear instancia
- Elija MySQL y Siguiente
- Introduzca la información de la instancia
- Introduzca el ID de la instancia
- Seleccione la versión de la base de datos (siempre la última es la mejor)
- Elija la región y la zona (estoy procediendo con una zona única y puedo tener HA en cualquier momento, más adelante)
- Haga clic en MOSTRAR OPCIONES DE CONFIGURACIÓN para personalizar el tipo de instancia VM, copia de seguridad, mantenimiento, etc
Consejo: prefiera siempre tener las instancias SQL en la misma región que su servidor WordPress existente. Sin embargo, si su WordPress no está en Google Cloud entonces elija la ubicación más cercana de su servidor.
- Que sea el tipo de almacenamiento elegido por defecto como SSD
- Copia de seguridad automática, el registro binario se selecciona por defecto – cambiar si lo requiere
- Mejor definir la ventana de mantenimiento y el tiempo para parchear.
Consejo: elija siempre el día & la hora menos ocupados para su empresa
- Una vez todo configurado, pulse CREAR INSTANCIA
Tardará unos segundos en crearse y al terminar, verá la instancia en la lista.
Obtener la exportación de datos de una base de datos existente
- Conéctese a un servidor actual donde se esté ejecutando MySQL
- Utilice el comando
mysqldump
para exportar la base de datos
mysqldump -u root -p [NOMBRE_BASE_DE_DATOS] >/tmp/export.sql
Hay algunos procedimientos más para exportar como se explica en Google docs.
Una vez realizada la exportación, deberá subir el archivo SQL a algún lugar del área de almacenamiento en la nube de Google (S3).
Importar datos a Cloud SQL
Vamos a crear una base de datos y mantener el nombre como existente
- Vaya a la instancia SQL
- Haga clic en Bases de datos del panel de navegación izquierdo >> crear base de datos
- Introduzca el nombre de la base de datos y haga clic en crear
Ahora, es el momento de importar los datos.
- Vaya a la vista general de la instancia y haga clic en el botón Importar
- Seleccione el archivo SQL del cubo de almacenamiento que cargó en el paso anterior durante la exportación
- Seleccione la base de datos en el destino
- Haga clic en IMPORTAR
Tardará unos segundos, y obtendrá una confirmación al finalizar
Configuración de Cloud SQL Access
El control de acceso es fundamental, ya que aquí es donde se define quién debe conectarse a su instancia. Hay dos partes.
Red de autorización – añada la dirección IP que debe permitir la conexión a la instancia de Cloud SQL
- Vaya a Conexiones >> Añadir red (bajo IP pública si WordPress está alojado fuera de GCP e IP privada si está alojado en Google Cloud VM) e introduzca las direcciones IP.
Cuenta de usuario – es bueno tener una cuenta de usuario separada creada para la base de datos de WordPress.
- Vaya a Usuarios >> AÑADIR CUENTA DE USUARIO
- Introduzca el usuario, la contraseña y el nombre de host para permitir el acceso desde
Sugerencia: puede mantener el usuario y la contraseña como existentes para que tenga el mínimo cambio de configuración en WordPress
Configuración de WordPress para Cloud SQL
Y la última parte, necesita cambiar wp-config.php
para que apunte a Cloud SQL
Como de costumbre, haga una copia de seguridad del archivo wp-config. php
Edite el archivo utilizando vi
y actualice el valor DB_HOST
a la dirección IP de Cloud SQL
Desde
/** Nombre de host MySQL */ define('DB_HOST', 'localhost');
A
/** Nombre de host MySQL */ define('DB_HOST', '104.155.153.82');
104.155.153.82 es la IP de mi instancia de Cloud SQL que encontrará en la página Visión general.
Guarde el archivo y reinicie PHP, Nginx en el servidor WordPress
Nota: también puede conectarse a la instancia Cloud SQL utilizando el cliente MySQL de Compute Engine que se explica aquí.
¡Bien hecho! Ha separado con éxito la base de datos de WordPress.
Intente acceder para asegurarse de que funciona. Una vez que todo está bien, es posible que desee detener el MySQL en el servidor de WordPress.
Detener MySQL
Una vez que esté satisfecho con Google CloudSQL, puede pensar en detener la ejecución de MySQL en su servidor.
Si utiliza Ubuntu 16.x
service mysql stop
Este se detendrá pero se iniciará de nuevo cuando se reinicie el servidor, así que lo siguiente que debe hacer es deshabilitarlo del autoarranque.
update-rc.d mysql disable
para CentOS 6.x
service mysqld stop
y para deshabilitar desde el autoarranque
chkconfig --del mysqld
También puede desinstalar MySQL, pero yo recomendaría dejarlo instalado para el futuro en caso de que quiera utilizarlo localmente.
La gestión de MySQL en Google Cloud es bastante sencilla y no me encontré con ningún problema.
Si necesita dividir la base de datos de un servidor WordPress, entonces Google Cloud SQL sería una buena opción. Pruébelo para ver cómo funciona.
¿No se siente cómodo con la modificación de la configuración y las cosas relacionadas con la administración del servidor? Aproveche la plataforma gestionada Google Cloud para WordPress.