EC2: Manteniendo nuestra aplicación disponible con PM2.

Tal como os comenté en el último post, en este hablaremos de mantener nuestra aplicación disponible en todo momento, y para ello usaremos pm2.

Qué es PM2.

PM2 es un administrador de procesos que nos ayudará a administrar y mantener nuestra aplicación en línea las 24 horas, los 7 días de la semana, tal como indican en su web.

Por qué necesitamos PM2.

error de conexión con el servidor

En el post anterior dejamos nuestra aplicación corriendo con el comando node app.js, el problema de esto, es que si hacemos CTRL+C en la consola o sencillamente reiniciamos el servidor, la aplicación se finalizará y no volverá a estar disponible hasta que no la volvamos a arrancar manualmente.

Instalando y configurando PM2.

Para instalarlo usaremos el comando:

npm install pm2 -g

La opción -g hace que la instalación se realice a nivel global, esto quiere decir que sea accesible de manera global.

Para arrancar la aplicación con pm2 podemos hacerlo o bien accediendo al directorio de la misma y ejecutando:

pm2 start app.js

O bien:

pm2 start ~/application/app.js

La consola nos devolverá la siguiente salida:

pm2 running log

En este punto nuestra aplicación volvería a estar disponible pero si reiniciásemos el servidor, volveríamos a tener que arrancarla debido a que pm2 no se arranca por defecto.

Es por ello que le pediremos a pm2 que nos devuelva el comando para su arranque automático y lo haremos con el siguiente comando:

pm2 startup

Esto nos devolverá un comando de este tipo:

 sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

Ejecutamos el comando anterior en la terminal, tal cual CTRL+C, CTRL+V y enter.

Por último deberemos guardar los cambios con:

pm2 save

Y listo, ahora podemos hacer la prueba de reiniciar nuestro servidor, y el único tiempo de indisponibilidad de nuestra aplicación será el de reinicio del mismo.

Espero que os haya servido de ayuda. En otro post veremos cómo usar Route 53 para apuntar un dominio a nuestra aplicación y que no tengamos que estar usando la IP para acceder.

Leave a reply:

Your email address will not be published.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.