Platzi
Platzi

Suscríbete a Expert y aprende de tecnología al mejor precio anual.

Antes:$249
$209
Currency
Antes:$249
Ahorras:$40
COMIENZA AHORA
2

Cómo usar Compute Engine de Google Cloud Platform con Nginx

Cuando estas fastidiado de los servidores tradicionales que solo te dan soporte para aplicaciones estáticas o solo PHP para dinámicas, comienzas a realizar una búsqueda para poder correr tu aplicación en servidores económicos, robustos y que además puedas configurarlos a tu manera sin necesidad de estar llamando a soporte cada 5 minutos.

Pues bueno, en la búsqueda encuentras soluciones como, Heroku, Azure, AWS, entre otros, pero déjame decirte que, por mucho, GCP (Google Cloud Platform) es la solución definitiva a todos tus problemas, ya que tiene un amplio catálogo de servicios para cualquier necesidad que se te presente y su curva de aprendizaje es muy corta ya que existen una inmensa comunidad detrás de sus servicios y artículos geniales, así como este 😄

Entre su amplio catálogo, existe un servicio llamado Compute Engine, el cual nos permite crear una máquina virtual con las características que estemos buscando, incluso nos permite generar una con nuestra propia versión de Sistema Operativo, la cual debe de cumplir una serie de requisitos para poder operar. Al ser una máquina virtual en GCP, ponen a nuestra disposición todo el poder de cómputo de Google, mucho ojo, depende de las características de la máquina virtual será tu facturación mensual.

Ya hablamos un poco del tema, es hora de saber como hacerlo, en el primer paso crearemos una máquina virtual básica y en el segundo instalaremos y configuraremos Nginx 😄:

1. Creación de máquina virtual en Compute Engine

Para acceder a estas herramientas, es necesario tener una cuenta en GCP, si no tienes una, crea tu cuenta en el siguiente enlace:

https://console.cloud.google.com/

Nota 1: Te regalará 300 USD para que te pongas creativx con sus servicios, expiran en 12 meses.
Nota 2: Para acceder a estos créditos es necesario usar una tarjeta bancaria, te hará un cargo de 1 USD aproximadamente para comprobar que es válida tu tarjeta.

Una vez dentro de GCP, veremos un panel como el de la Fig. 1 con un proyecto creado por default

fig1.png
Fig. 1 Consola de inicio de GCP

Del lado izquierdo se encuentra en forma de menú todos los servicios que nos ofrece GCP, en la sección de Procesamiento (Compute), se encuentra Compute Engine, al posicionar el puntero sobre esa opción, se desplegará el submenú (Fig. 2) con todas las características de este servicio y daremos clic en VM intances, lo cual abrirá una nueva sección como se muestra en la Fig. 3, tomara unos minutos en iniciar ya que esta preparando el entorno para nuestras máquinas virtuales.

fig-2.png
Fig. 2 Opción de Instancias de VM

fig3.png
Fig. 3 Sección de instancias de VM

Una vez que GCP termina de preparar el entorno en Compute Engine, procedemos a darle clic en el botón Create y nos aparecerán las características con las que podemos crear nuestra máquina virtual Fig 4.

fig4.png
Fig. 4 Características para crear una máquina virtual

Para este ejemplo usaremos las características básicas en nuestra máquina virtual, donde la configuración queda de la siguiente manera:

Name: platziblog
Region: us-central1 (Iowa)
Zone: us-central1-a

Para seleccionar la región adecuada, te dejo el siguiente enlace para saber cuál es la región mas cercana a tu ubicación, tal vez te pueda ayudar.

http://www.gcping.com/

Para elegir la Zone adecuada, te recomiendo que leas la siguiente documentación, ya que no todas las regiones tienes las mismas funciones habilitadas.

Documentación sobre las zonas

En la sección de Machine Configuration, depende de la región que selecciones aparecerán las opciones de las diferentes máquinas virtuales que puedes crear, la configuración seleccionada se muestra en la Fig. 5

fig5.png
Fig. 5 Características de CPU y memoria de la máquina virtual

En la parte superior derecha podremos ver el costo estimado por mes que tendrá este servicio.

En Boot disk, dejaremos la opción por defecto (Debian GNU/Linux 9), aquí puedes seleccionar cualquier otro Sistema Operativo que mas te guste, incluso subir tu propia imagen.
Y, para terminar, en Firewall seleccionamos la opción Allow HTTP traffic
Las opciones anteriores las puedes ver en la Fig. 6

fig6.png
Fig. 6 Configuración final de la máquina virtual

Para crear la máquina virtual, daremos clic en Create e iniciara el proceso de creación 😄

Cuando nuestra máquina virtual este lista para usarse tendrá un icono verde el cual indica que está corriendo (Fig. 7).

fig7.png
Fig. 7 Máquina virtual corriendo

2. Instalar y configurar Nginx

Muy bien, al tener lista nuestra máquina virtual, procedemos a instalar nuestras herramientas, para hacerlo, en la columna Connect, damos clic en SSH y se abrirá una consola conectada a nuestra máquina virtual (Fig. 8). 😮😮

fig8-1.png
Fig. 8 Terminal SSH conectada a GCP

Una vez establecida la conexión, como buena práctica, actualizaremos e instalaremos la lista de paquetes nuestro Sistema Operativo, en este caso Debian.

sudo apt-get update
sudo apt-get upgrade

Procederemos a instalar Git y Nginx con el siguiente comando:

sudo apt-get install git nginx -y

Al finalizar, podremos dirigirnos a la External IP que nos proporciona nuestra instancia y podremos ver nuestro servidor nginx corriendo (Fig.9) 🙉

fig9.png
Fig. 9 Servidor Nginx funcionando correctamente

2. Bonus

<h4>2.1. Subir página web</h4>

Si queremos subir nuestra página web, lo hacemos en la siguiente ruta, eliminando el index.html que se encuentra en esa ruta:

/var/www/html

<h4>2.2. Cambiar puerto</h4>

Si deseamos cambiar el puerto, lo hacemos en el archivo default que se encuentra en la siguiente ruta:

/etc/nginx/sites-enabled/

Por ejemplo, en la Fig. 10 estamos dando acceso por el puerto 8080, para editar este archivo debemos de hacerlo como root

fig10.png
Fig. 10 Cambiando puerto al 8080 del archivo default

Para que se vean reflejados los cambios, es necesario reiniciar nginx, lo hacemos con el siguiente comando:

sudo systemctl restart nginx

También debemos indicarle al firewall que habilite este puerto, para hacer esto, damos clic en los tres puntitos de la instancia y seleccionamos View network details (Fig. 11), lo cual abrirá una nueva sección.

fig11.png
Fig. 11 Opción View network details

Ahora daremos clic en default-allow-http (Fig. 12) y en la nueva sección, daremos EDIT, bajaremos a la sección de Protocols and ports y agregaremos el puerto 8080 separado por coma, quedando como lo muestra la Fig. 13

fig12.png
Fig. 12 Regla de Firewall a editar

fig13.png
Fig. 13 Sección Protocols and ports

Guardamos los cambios y esperamos aproximadamente 80 segundos para ver reflejados los cambios y nos dirigimos a la External IP:8080 para verificar el cambio y como podemos ver en la Fig. 14, todo esta funcionando a la perfección. 😍

fig15.png
Fig. 14 External IP con el puerto 8080

En la sección de Network interface detail, podremos ver el puerto agregado (Fig. 15).

fig14.png
Fig. 15 Reglas del Firewall de la máquina virtual seleccionada

Con esto concluimos este increíble artículo, si quieres saber más sobre GCP, te recomiendo que tomes el Curso de Fundamentos de Google Cloud Platform

Un agradecimiento especial a Toño Guzmán y Pablo Villanueva

Escribe tu comentario
+ 2