
Recetas
/Instalar WordPress en Google Cloud, usando las imágenes seguras de Bitnami con un servidor NGINX
15 min de lectura
Crear cuenta en Google Cloud
Para comenzar con esté artículo debo recordarles que pueden crear su cuenta en Google Cloud Platform desde su página oficial, es importante brindarle un par de minutos a este paso para poder continuar, otra ventaja es que de inicio Google les brindará crédito de prueba, la cantidad exacta dependerá de la región donde se encuentren.
Dicho esto, es momento de comenzar.
Una vez que accedamos por primera vez a nuestra consola de administración que encontraremos desde la ruta https://console.cloud.google.com/ nos encontraremos con una página de bienvenida similar a la de la siguiente captura:

Imágenes de rápida instalación en Google Marketplace
Google Marketplace es un hub de imágenes de disco o bien aplicaciones en contenedores, que ya incluyen un sistema operativo, una aplicación o varias aplicaciones con todas sus dependencias instaladas, una base de datos configurada y preparada para funcionar y finalmente un servidor web como es el caso de las imágenes creadas por Bitnami para desplegar sitios con WordPress.
Tener un hub de aplicaciones es un servicio muy popular que generalmente las empresas de Cloud Computing como Amazon Web Services, Microsoft Azure o Digital Ocean, entre otras; Ya ofrecen y es un servicio muy popular por la simplicidad de despliegue de aplicaciones web así como para mantener la seguridad, integridad y estándares de desarrollo en todos sus usuarios, por lo que cualquier empresa pequeña, mediana o grande puede beneficiarse al utilizar estás aplicaciones.
Ahora que ya tenemos un poco de contexto podemos buscar la imagen que estaremos utilizando para el despliegue de este servicio, así que usaremos el buscador que nos brinda la consola de administración de Google Cloud que se encuentra en la parte superior de la pantalla y teclearemos “WordPress Bitnami” para obtener todas las imágenes que Bitnami ha construido para el despliegue rápido en Google Cloud.
Bien, ahora que tenemos el listado de aplicaciones elegimos la que estamos buscando “WordPress with NGINX and SSL Certified by Bitnami and Automattic”, una vez que damos clic en el enlace nos llevará a la página donde encontramos toda la información de dicha imagen y ahí encontraremos un botón azul que dice “Iniciar”, lo clicamos y comenzará la configuración.

Configuración de la máquina virtual
Este es el primer paso para montar un servidor, es el momento en el que elegiremos las capacidades que tendrá y por ende deben estar acorde al nivel de nuestro proyecto, en mis cortos pero bien aprendidos 3 años de experiencia montando y desmontando este tipo de imágenes, debo avisarles que si quieren tener este sitio en un entorno de producción será necesario al menos 1.7gb de memoria RAM, pero si es con fines de desarrollo con la maquina virtual mas pequeña de 0,60mb de memoria RAM les vendrá bien.
Pueden obtener más información sobre los costos y limitaciones de cada uno de los tipos de instancias que maneja Google Cloud desde el siguiente enlace: https://cloud.google.com/compute/vm-instance-pricing?hl=es#sharedcore

Deployment name:
Colocaremos el nombre de la instancia, esto no solo es para referencia nuestra podemos poner el nombre que queramos solo que para espacios tenemos que usar guion medio, pero debemos intentar que sea fácil de escribir y de leer ya que podemos requerirlo para futuras configuraciones.
Zone:
Para elegir la zona que necesitamos usar vamos a utilizar una herramienta que podemos encontrar en internet para saber qué zona de servidores de Google Cloud nos conviene para nuestro sitio web dependiendo de la ubicación de los visitantes y el costo de la maquina virtual.

Desde la página GCPING obtendremos el nombre del data center más cercano a nuestra ubicación, solo tenemos que esperar un poco para que obtengamos el nombre de la zona con mejor ping de acuerdo a nuestra ubicación, esto evidentemente si nuestros visitantes serán cercanos a la ubicación donde nos encontramos.
En mi caso la mejor opción de región es “us-central1”, elijo esta región por la media de latencia que tiene desde mi ubicación y por que la región “us-south1” no tiene disponibilidad de las máquinas virtuales g1-small, es importante verificar que la región sea compatible con el tipo de maquina virtual que vamos a ejecutar.

¿Qué son las zonas y regiones en Google Cloud?
Una región es una ubicación geográfica específica donde puedes alojar recursos. Las regiones tienen tres o más zonas. Por ejemplo, la región us-west1 corresponde a una región en la costa oeste de Estados Unidos que tiene tres zonas: us-west1-a, us-west1-b y us-west1-c.
Encuentra más información al respecto en la documentación oficial.
Machine type (Tipo de máquina virtual):
Los tipos de máquinas virtuales que nos proporciona la plataforma de GCP tienen características particulares para cada caso de uso, la mayoría de ellas son de costo por uso sin embargo también podemos encontrar algunas que son de costo fijo y con descuentos por uso continuo, estas últimas son las que nos interesan para este artículo.
Si tu proyecto es pequeño te recomiendo revisar las máquinas denominadas “f1-micro o bien g1-small”. Puedes encontrar más información sobre todos los tipos de maquinas virtuales que tiene Google Cloud en la sección Precios de instancias de máquina virtual.
Para un proyecto en producción recomiendo usar las máquinas virtuales N1, en sus diferentes rangos de uso, debido a que están adecuadas para un uso general y por lo tanto generan un costo accesible.
Maquinas virtuales de núcleo compartido (La que usaremos en este artículo)
Las máquinas virtuales de núcleo compartido nos permiten usar hasta 1CPU en ráfagas de procesos, es decir que podemos utilizar un porcentaje del CPU compartiendo con más usuarios, y si es que nuestro servidor comienza a ocupar recursos adicionales Google nos permitirá usar hasta 1 core de CPU completo, por un pequeño lapso de tiempo.
Debemos tomar en cuenta este uso de CPU por tiempo limitado ya que procesos comunes en WordPress que pueden matar nuestro servidor por uso de CPU son por ejemplo, la conversión de imágenes a WebP, procesos del CRON de WordPress o el procesamiento de algún plugin que instalemos.
Seleccionaremos el tipo de máquina virtual “g1-small” para este artículo, no recomendaría ejecutar una f1-micro en un sitio web para producción debido a que es muy limitada en cuanto a uso de recursos.

Boot Disk
En esta parte elegiremos la cantidad de almacenamiento que necesitamos para nuestra máquina virtual, este disco de arranque podemos configurarlo tanto con discos de tipo SSD como HDD y el costo de cada uno será diferente, siempre es más costoso usar un disco de arranque de tipo SSD, sin embargo considero que es la mejor opción y justifica completamente su costo adicional.

La cantidad de almacenamiento también generará un costo extra, por lo que recomendaría dejar la cantidad predeterminada debido a que realmente no ocuparemos mucho espacio de disco para nuestro sitio web.
El almacenamiento lo podrás aumentar en el futuro deteniendo la máquina virtual por un pequeño lapso de tiempo para entrar a la configuración y aumentar el tamaño de tu disco tan fácil como lo estás haciendo en este momento.
La parte complicada es reducir el tamaño del disco una vez que iniciamos la máquina virtual así que debemos tomar una decisión bien informada antes de iniciar la máquina virtual. Probablemente escriba un artículo sobre cómo hacerlo más adelante.
Cloud Storage para grandes cantidades de archivos multimedia
En caso de que necesites almacenar imágenes o videos en grandes cantidades te recomendaría usar Cloud Storage, es un servicio de almacenamiento con menor costo y mayor rendimiento esto se debe a que está especialmente diseñado para almacenar archivos.
Una buena ventaja es que se puede conectar a WordPress con el plugin Media Cloud y así cada archivo multimedia que agreguemos a nuestra biblioteca de medios se subiría directamente a Cloud Storage y servir así nuestros archivos multimedia, aumentando la velocidad de carga de imágenes y vídeos para nuestros visitantes en la parte frontal del sitio web.
Networking
En esta parte no configuraremos nada, sin embargo es bueno entrar un poco en contexto de que nos está pidiendo en esta sección.
Las instancias son nuestra máquina virtual con CPU, memoria RAM y un disco duro, estas se pueden conectar a internet a travez de una Red VPC que es una red global de Google para conectar de manera segura estás máquinas al internet público, las solicitudes de entrada o de salida de nuestra máquina virtual pasarán por la Red VPC que cuenta con configuraciones de Firewall predeterminadas para mantener nuestra máquina virtual segura, realmente muy segura.

Interfaces de red
La interfaz de red es la configuración de conexión interna de nuestra máquina virtual, es un rango de IP por el cual nuestra máquina virtual se conectará a la Red VPC, las interfaces de red sirven también para ejecutar multiples máquinas virtuales que se comunican entre sí y entre la Red VPC por el mismo rango de IP asociada.
No agregaremos ninguna otra y mantendremos la configuración predeterminada para este artículo, mas adelante convertiremos nuestra IP efímera (cambiara al reiniciar nuestra máquina virtual) que se nos proporciona en este momento de forma predeterminada por una IP estática (nunca cambia la dirección IP) para conectarnos a internet.
Firewall
En está sección mantendremos las dos opciones activadas de forma predeterminada, el firewall así permitirá conectarnos a nuestra maquina virtual por ambos protocolos, el HTTP y el HTTPS, así que los mantendremos así.
Iniciar nuestra maquina virtual y configurar una IP estática
Ahora que tenemos contexto de nuestras configuraciones y elegimos las que necesitamos para nuestro proyecto, podemos dar clic en el botón azul para iniciar nuestra máquina virtual, Google Cloud es el proveedor de servicios en la nube con mayor velocidad de despliegue y lo siguen mejorando, así que no tomará mucho tiempo para que esté corriendo nuestra aplicación.

Configurar IP estática
Antes de pasar a la parte divertida de nuestro despliegue debemos configurar nuestra IP estática, recuerda siempre hacerlo justo después de iniciar la máquina virtual para no olvidarlo en el futuro, ya que si apagamos la maquina y la volvemos a iniciar se cambiará la IP y no queremos eso, queremos que esa IP la podamos vincular a nuestro DNS preferido.
Nos dirigiremos al menú principal y buscaremos la opción “Direcciones IP” que se encuentra en Red de VPC > Direcciones IP
Una vez dentro de la sección, encontraremos listadas las IP que utiliza nuestra máquina virtual actualmente y encontraremos dos, una interna y una externa, está ultima es la que nos interesa reservar, así que daremos clic en el botón “RESERVAR”.
Se nos abrirá un popup donde nos pedirá un nombre y una descripción, en esa parte podremos colocar lo que queramos, es únicamente para que la podamos identificar dentro de nuestra consola de administración.

Accesos del administrador de WordPress
Ahora podemos entrar al sitio web desde la dirección IP externa de la máquina virtual, si ya alguna vez desplegaste una instalación de WordPress de alguna otra forma, te preguntarás por que no nos dirige a la configuración de inicio de WordPress donde podemos crear el usuario administrador y asignarle una contraseña por nuestra cuenta.
Esto sucede por que Bitnami sigue una buena práctica DevOps, que es desplegar contenedores como usuario no root, por lo que las configuraciones de base de datos y de WordPress en sí, ya están desarrolladas desde que desplegamos la aplicación, para encontrar nuestras credenciales debemos dirigirnos al Deployment Manager de Google Cloud.
Menú principal > Deployment Manager > Implementaciones
En está sección encontraremos nuestra máquina virtual con el nombre que le asignamos a la implementación, daremos clic y nos enviará a la pantalla que vimos al terminar el despligue, ahí encontraremos las credenciales para entrar al administrador de WordPress, incluso enlaces para dirigirnos al sitio web.

Configuración de dominio y certificado SSL
Si llegaste hasta aquí, podrás visualizar tu sitio web desde la dirección IP externa de nuestra máquina virtual, sin embargo aun es necesario configurar un nombre de dominio para poder acceder y publicar finalmente nuestro sitio web.
Recomendaciones para registrar tu dominio
Antes de continuar debes tener ya un dominio registrado, siempre recomiendo comprar dominios en Google Domains, ya que el tiempo que tarda en aplicar cambios es realmente rápido.
Por favor no compres dominios en sitios como GoDaddy o algún proveedor desconocido, debido a que muchos ataques de DDoS son exitosos por el terrible soporte que estos proveedores de dominio brindan a sus dominios, esto se debe a que antes que pasar la solicitud a nuestro servidor, pasa por los servidores donde registramos nuestro dominio.
Apuntar un dominio a nuestra IP externa con el DNS de Cloudflare y obtener un certificado SSL
Usaremos Cloudflare para obtener un certificado auto-firmado de manera rápida, pero en la documentación de Bitnami encontrarás cómo usar algún otro proveedor de certificados SSL.
En internet encontrarás muchos tutoriales sobre como usar Cloudflare para administrar tu dominio, es algo que recomiendo encarecidamente, además de ser gratis para lo que lo necesitamos es realmente rápido configurar un dominio, realmente es cosa de unos cuantos clics, una vez que tengas agregados tus “Nameservers” y puedas administrar tus registros DNS podrás continuar con los siguientes pasos.
Añadimos un registro al DNS de tipo “A” con nuestra dirección IP externa, dejaremos marcada la opción “Redirigido por proxy”.

Configuración de certificado SSL
Ahora debemos dirigirnos a la sección SSL/TLS > Información General para asegurarnos de que el tipo de encriptación se encuentre configurada como “Completo”, esto para que el certificado SSL se encuentre en la capa de Cloudflare ya que no lo configuraremos directamente en el servidor.
¿Por que funciona esto?
La re-dirección proxy que nos permite modificar Cloudflare en la sección de DNS, hace referencia a un Proxy Inverso y Cloudflare funciona como tal, así que nuestro sitio contaría con un certificado SSL completamente seguro aunque se comunique con nuestro servidor vía HTTP, encuentra más información sobre los Proxy Inversos dando clic aquí.

Configurar el nombre de dominio en nuestra máquina virtual para acceder por nuestro dominio personalizado
Para poder asignar un nombre de dominio a nuestro sitio web es necesario entrar en la consola SSH, puede verse complicado pero están todos los pasos bien documentados en el sitio oficial de Bitnami, podrás echarle un vistazo tu mismo a está configuración desde el siguiente enlace:
https://docs.bitnami.com/google/apps/wordpress-pro/administration/configure-domain/
Adicionalmente es bueno mencionar que en la documentación se habla de dos enfoques de instalación todo el tiempo, el enfoque “A” usando paquetes de sistema y el enfoque “B” usando instalaciones independientes, el enfoque que usamos es el enfoque “A“.

Acceder por SSH a nuestra máquina virtual y editar el archivo wp-config.php
Para entrar en nuestra consola SSH podemos hacerlo desde la página de información del despliegue, justo debajo de donde nos proporcionan las contraseñas para acceder al administrador encontrará un botón que dice “SSH”.
Una vez adentro, tienes que ingresar el comando sudo para ejecutar como administrador y nano para abrir el editor de texto, además copiamos la ruta del archivo donde nos indica Bitnami que se encuentra wp-config.php, a continuación el comando completo sería así:
sudo nano /opt/bitnami/wordpress/wp-config.php
Aquí dejaré un screenshot de mi consola SSH antes de teclear “Enter” para ejecutar el comando:

Una vez que ejecutamos el comando, nos abrirá el archivo “wp-config.php” predeterminado en nuestra instalación de WordPress. Seguiremos los pasos de la documentación y usando flechitas del teclado podremos navegar hacia abajo en nuestro documento, buscaremos las siguientes lineas de código:
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/');
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/');
Una vez que las localicemos las vamos a reemplazar por las siguientes, ya añadiendo nuestro nombre de dominio personalizado.
define('WP_SITEURL', 'http://TU-DOMINIO.AQUI/');
define('WP_HOME', 'http://TU-DOMINIO.AQUI/');
Solo debemos modificar la parte “TU-DOMINIO-AQUI” ingresando nuestro dominio personalizado, a continuación dejaré un screenshot de como se ve mi documento ya actualizado con el dominio de pruebas que utilizo “uwur.wtf”.

Ahora para guardar nuestros cambios en el archivo usamos las teclas “CTRL + X”, ya sea en Mac o Windows, especialmente en Mac me refiero a la tecla “Ctlr”, no intentes usar la tecla “cmd”.
Nos preguntará si queremos guardar los cambios y tecleamos “y” para indicar que sí.
Finalmente “Enter” y listo nos regresará al inicio de la consola, lo siguiente es reiniciar NGINX, y lo haremos como indica la documentación, puedes leer más haciendo clic aquí para revisar la sección “Start Or Stop Services”.
Puedes copiar el comando que yo ingresé para estar más seguro:
# Comando para reiniciar NGINX
sudo /opt/bitnami/ctlscript.sh restart nginx
# Salida esperada
Restarted nginx
A continuación dejaré el screenshot de como se ve mi consola una vez que ejecuté el comando.

Revisar sitio web entrando por tu dominio personalizado
Listo, ahora podrás visitar el sitio web entrando por tu propio dominio personalizado y ya contando con un certificado SSL completamente gratis.

Te recomiendo siempre leer la documentación oficial aun hay más cosas que puedes hacer con esta imagen de Bitnami.
¡Saludos!