En este post vamos a ver como configur un servidor de Cloud SQL que conectaremos a una aplicación wordpress a él mediante un proxy a través de una conexión externa. Para ello también configuraremos una conexión a través de un enlace IP privado que ofrece beneficios de rendimiento y seguridad.
Al final , tendremos 2 instancias de trabajo del frontend de WordPress conectadas a través de 2 tipos de conexión diferentes a su backend de instancia de SQL :
1: creación de una base de datos de Cloud SQL
En esta parte configuraresmo un servidor SQL de acuerdo con las mejores prácticas de Google Cloud y crearemos una conexión IP privada.
- En el menú de navegación ( ), haga clic en SQL .
- Haz clic en Crear instancia .
- Haga clic en Elegir MySQL .
- Especifique lo siguiente y deje los ajustes restantes como predeterminados:
Anote la contraseña de root; se utilizará en un paso posterior y se denominará [ROOT_PASSWORD].
- Expanda Mostrar opciones de configuración .
- Expanda la sección Conectividad .
- Seleccione IP privada .
- En el cuadro de diálogo, haga clic en Habilitar API , haga clic en Asignar y conectar y luego haga clic en Cerrar . Esto habilita el acceso a servicios privados y adjunta una dirección IP privada a su servidor Cloud SQL.La IP privada es una conexión interna, a diferencia de la IP externa, que sale a Internet.
- Expanda la sección Tipo de máquina y almacenamiento .
- Aprovisione la cantidad adecuada de vCPU y memoria. Para elegir un tipo de máquina , haga clic en Cambiar y luego explore sus opciones.
Algunos puntos a considerar: Las máquinas de núcleo compartido son buenas para la creación de prototipos y no están cubiertas por Cloud SLA .Cada vCPU está sujeta a un límite de rendimiento de red de 250 MB / s para un rendimiento máximo. Cada núcleo adicional aumenta el límite de la red, hasta un máximo teórico de 2000 MB / s.Para cargas de trabajo sensibles al rendimiento, como el procesamiento de transacciones en línea (OLTP), una pauta general es asegurarse de que su instancia tenga suficiente memoria para contener todo el conjunto de trabajo y acomodar la cantidad de conexiones activas.
- Puede seleccionar db-n1-standard-1 y luego haga clic en Seleccionar .
- A continuación, elija el tipo de almacenamiento y la capacidad de almacenamiento .
Algunos puntos a considerar :SSD (unidad de estado sólido) es la mejor opción para la mayoría de los casos de uso. HDD (unidad de disco duro) ofrece un rendimiento más bajo, pero los costos de almacenamiento se reducen significativamente, por lo que HDD puede ser preferible para almacenar datos a los que se accede con poca frecuencia y que no requieren una latencia muy baja. Existe por tanto una relación directa entre la capacidad de almacenamiento y su rendimiento.
- Agregue algunos ceros a la capacidad de almacenamiento para ver cómo afecta el rendimiento. Restablezca el control deslizante a 10 GB.
Establecer su capacidad de almacenamiento demasiado baja sin habilitar un aumento de almacenamiento automático puede hacer que su instancia pierda su SLA.
- Haga clic en Cerrar .
- Haga clic en Crear en la parte inferior de la página para crear la instancia de la base de datos.
Es posible que deba esperar a que se propaguen los cambios de IP privada antes de que se pueda hacer clic en el botón Crear .
2: Configurar un proxy en una máquina virtual
Cuando su aplicación no reside en la misma región y red conectada a la VPC que su instancia de Cloud SQL, use un proxy para proteger su conexión externa.
Para configurar el proxy, necesita el nombre de conexión de la instancia de Cloud SQL. Para continuar necesitaríamos 2 máquinas virtuales preconfiguradas con WordPress y sus dependencias (s también se necesitará un script de inicio y un acceso a la cuenta de servicio ). Tenga en cuenta que se debe usar el principio de privilegio mínimo y solo permitimos el acceso SQL para esa máquina virtual. También hay una etiqueta de red y un firewall preconfigurado para permitir el puerto 80 desde cualquier host.
- En el menú de navegación ( ), haga clic en Compute Engine .
- Haga clic en SSH junto a wordpress-europe-proxy .
- Descarga el proxy de Cloud SQL y hazlo ejecutable:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy & chmod +x cloud_sql_proxy
content_copy
Para iniciar el proxy, necesita el nombre de conexión de la instancia de Cloud SQL. Mantenga su ventana SSH abierta y regrese a Cloud Console.
- En el menú de navegación ( ), haga clic en SQL .
- Haga clic en la instancia de wordpress-db y espere a que aparezca una marca de verificación verde junto a su nombre, que indica que está operativa (esto podría demorar un par de minutos).
- Anote el nombre de la conexión de la instancia ; se utilizará más adelante y se denominará [SQL_CONNECTION_NAME].
- Además, para que la aplicación funcione, debe crear una tabla. Haga clic en Bases de datos .
- Haga clic en Crear base de datos , escriba wordpress , que es el nombre que espera la aplicación, y luego haga clic en Crear .
- Regrese a la ventana SSH y guarde el nombre de la conexión en una variable de entorno, reemplazando [SQL_CONNECTION_NAME] con el nombre único que copió en un paso anterior.
export SQL_CONNECTION=[SQL_CONNECTION_NAME]
content_copy
- Para verificar que la variable de entorno esté configurada, ejecute:
echo $SQL_CONNECTION
content_copy
Se debe imprimir el nombre de la conexión.
- Para activar la conexión de proxy a su base de datos de Cloud SQL y enviar el proceso a un segundo plano, ejecute el siguiente comando:
./cloud_sql_proxy -instances=$SQL_CONNECTION=tcp:3306 &
content_copy
La salida esperada es
Listening on 127.0.0.1:3306 for [SQL_CONNECTION_NAME] Ready for new connections
content_copy
El proxy escuchará en 127.0.0.1:3306 (localhost) y el proxy que se conecta de forma segura a su Cloud SQL a través de un túnel seguro utilizando la dirección IP externa de la máquina.
3: Conectar una aplicación a la instancia de Cloud SQL
Ahora conectaremos wordpress a la instancia de Cloud SQL.
- Configure la aplicación WordPress. Para encontrar la dirección IP externa de su máquina virtual, consulte sus metadatos:
curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip & echo
content_copy
- Vaya a la dirección IP externa wordpress-europe-proxy en su navegador y configure la aplicación WordPress.
- Haga clic en Let's Go .
- Especifique lo siguiente, reemplazando [ROOT_PASSWORD] con la contraseña que configuró al crear la máquina, y deje las configuraciones restantes como sus valores predeterminados:
Está utilizando 127.0.0.1, localhost como la IP de la base de datos porque el proxy que inició escucha en esta dirección y redirige ese tráfico a su servidor SQL de forma segura.
- Haga clic en Enviar .
- Cuando se haya establecido una conexión, haga clic en Ejecutar la instalación para crear una instancia de WordPress y su base de datos en su Cloud SQL. Esto puede tardar unos minutos en completarse.
- Complete la información de su sitio de demostración con información aleatoria y haga clic en Instalar WordPress . No tendrá que recordar ni utilizar estos detalles.
La instalación de WordPress puede tardar hasta 3 minutos, porque propaga todos sus datos a su servidor SQL.
- Cuando vea '¡Éxito!' apareciendo en la ventana, elimine el texto después de la dirección IP en la barra de direcciones de su navegador web y presione ENTER. ¡Se le presentará un blog de WordPress en funcionamiento!
4: Conéctese a Cloud SQL a través de una IP interna
Si puede alojar su aplicación en la misma región y red conectada a VPC que su Cloud SQL, puede aprovechar una configuración más segura y con mejor rendimiento mediante IP privada.
Al usar la IP privada, aumentará el rendimiento al reducir la latencia y minimizar la superficie de ataque de su instancia de Cloud SQL porque puede comunicarse con ella exclusivamente a través de IP internas.
- En Cloud Console, en el menú de navegación ( ), haga clic en SQL .
- Haga clic en wordpress-db .
- Anote la dirección IP privada del servidor de Cloud SQL; se denominará [SQL_PRIVATE_IP].
- En el menú de navegación , haga clic en Compute Engine .
Tenga en cuenta que wordpress-us-private-ip se encuentra en us-central1, donde se encuentra su Cloud SQL, lo que le permite aprovechar una conexión más segura.
- Copie la dirección IP externa de wordpress-us-private-ip , péguela en una ventana del navegador y presione ENTER.
- Haga clic en Let's Go .
- Especifique lo siguiente y deje los ajustes restantes como predeterminados:
Tenga en cuenta que esta vez está creando una conexión directa a una IP privada, en lugar de configurar un proxy. Esa conexión es privada, lo que significa que no sale a Internet y, por lo tanto, se beneficia de un mejor rendimiento y seguridad.
- Haga clic en Ejecutar la instalación . Un '¡Ya instalado!' Se muestra la ventana, lo que significa que su aplicación está conectada al servidor de Cloud SQL a través de una IP privada.
- En la barra de direcciones de su navegador web, elimine el texto después de la dirección IP y presione ENTER. ¡Se le presentará un blog de WordPress en funcionamiento!
5: Revisión
Hemos visto como , crear una base de datos de Cloud SQL y como configurarla para usar tanto una conexión externa a través de un proxy seguro como una dirección IP privada, que es más segura y de mayor rendimiento. Recuerde que solo puede conectarse a través de IP privada si la aplicación y el servidor de Cloud SQL están ubicados en la misma región y forman parte de la misma red de VPC. Si su aplicación está alojada en otra región, VPC o incluso proyecto, use un proxy para asegurar su conexión a través de la conexión externa.