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.

WordPress-standalone-site

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

gcp-cloud-sql-instance

  • Elija MySQL y Siguiente

choose-gcp-sql

  • Introduzca la información de la instancia

gcp-create-sql

  • 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.

gcp-list-sql

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

gcp-create-sql-db

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

gcp-import-database

  • 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.

gcp-sql-allow-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.