Creación VPS - Mohamed11302/MineriaDeDatosYSistemasMultiagentes GitHub Wiki

Elección del servidor

Como queremos que tanto la aplicación como la API sean accesibles por cualquiera con una conexión a Internet, se ha decido contratar un servidor virtual privado (VPS por sus siglas en inglés) para que aloje todos los componentes del sistema. A diferencia de un servidor dedicado, un VPS es una máquina virtual en la que se ha instalado una copia de un sistema operativo. Los recursos hardware son compartidos con otras copias de otros sistemas operativos ejecutándose sobre la misma máquina física y estos están aislados unos de los otros. En lo referido a su manejo por parte de un administrador, es prácticamente igual a la de un servidor dedicado. Además, la gran mayoría de proveedores de VPSs dan acceso root, lo cual permite instalar todo el software que consideres. La principal ventaja de los VPS frente a los servidores dedicados se encuentra en el precio. Los VPS son mucho más baratos que un servidor dedicado.

Sin embargo, debido a que se han de compartir los recursos, el rendimiento de los programas puede verse afectado. Entre otras cosas, lo anterior se debe que el programa que se encarga de manejar todas las máquinas virtuales, denominado hipervisor, debe emplear una política que garantice un uso justo de los recursos de la máquina física por parte de las máquinas virtuales.

Otro de los inconvenientes que tanto VPS como servidores dedicados tienen es que no son ajustables a tus necesidades concretas en un momento concreto. Con esto nos referimos a que, por lo general, el servidor se va a encontrar en dos situaciones: o bien va a estar ``ocioso", sin hacer uso de todos los recursos de los que dispone o bien no va a ser capaz de procesar todas las peticiones que recibe, teniendo que rechazar muchas ellas. Si se contratara un servidor potente, se estaría perdiendo dinero porque no se está aprovechando todo su potencial pero si hiciéramos lo mismo con un servidor más modesto, saldríamos perdiendo en la segunda situación porque no estaríamos siendo capaces de ofrecer nuestro servicio, con el consiguiente perjuicio económico.

La solución a lo anterior sería la computación elástica. En esta modalidad, la empresa con la que contratas este tipo de servicios aporta los recursos bajo demanda de modo que solo pagas por lo que se usa. AWS o Azure son ejemplo de proveedores de servicios de computación elásticas, junto a muchos otros servicios. El principal inconveniente es que no se pude saber exactamente el dinero que te van a cobrar a final de mes pues dependerá del volumen de tráfico que sus servidores hayan tenido que manejar. Además, estos servicios, con el fin de facilitar la administración de la infraestructura, suelen abstraer algunos detalles lo cual no puede ser conveniente para las personas que busquen control total. La anterior afirmación se hace en base a las primeras investigaciones que hemos hecho sobre AWS y Azure. Quizá haya servicios en los que haya más libertad pero la primera impresión que nos dio es que, a cambio de garantizar la disponibilidad y la seguridad, mucho detalles de ``bajo nivel"" de administración quedan ocultos.

Como uno de nuestros principales objetivos es aprender, no nos importaba configurar desde cero un servidor y como queríamos que el gasto mensual fuese predecible y razonable para un estudiante, nos decantamos por la opción de un VPS.

Elección del proveedor de VPS

Existen muchos proveedores de VPS y cada uno de ellos ofrece varios a diferentes precios y con distintas prestaciones. El proveedor que elegimos fue IONOS porque el padre de quien contrató el servidor es profesor de instituto y tiene montado un Moodle en un VPS de esta empresa. Como nunca había tenido problemas destacables con IONOS, optamos por ese proveedor. IONOS oferta varios VPS con distintas características técnicas. El que elegimos fue uno con 4GB de RAM, 160GB de disco duro SSD y 2 núcleos. En cuanto al precio, si te comprometes a una permanencia de doce meses, los primeros seis salen por 6,05 euros al mes, con IVA incluida. Después, empiezan a cobrarte 10,89 euros mensuales, también con IVA. Si quieres utilizarlo durante menos de doce meses, la oferta de bienvenida de los 6,05 euros no se aplica. Como quién lo contrató tiene pensado utilizarlo durante más tiempo de lo que dura el curso de sistemas multiagentes, la mejor elección era adherirnos al compromiso de permanencia para disfrutar de la oferta de bienvenida.

Durante el proceso de contratación del VPS, se debe a elegir la ubicación del centro de datos donde se encontrará. Por razones evidentes, elegimos el de España. La IP del VPS contratado es \texttt{217.160.114.16}.

También se daba a elegir entre distintas distribuciones de Linux para instalar en el VPS. Nosotros optamos por Ubuntu 22.04 por ser aquella con la que estamos más familiarizados.

Primeros pasos

Lo primero que se hizo tras tener acceso al VPS fue crear una nueva cuenta de usuario con privilegios de administrador, ya que ejecutar todos los programas usando el usuario root nunca es buena idea. Una cuenta con privilegios de administrador te permite ejecutar únicamente aquellos que requieran ese tipo de permisos. A continuación, se instaló Docker puesto que intuíamos que iba a ser un software que íbamos a emplear tarde o temprano.

Nombre de dominio

IONOS no solo ofrece VPSs sino que también es un registrador de dominios que ofrece hosting DNS. Que sea un registrador de dominios implica que podemos alquilar dominios a través de esta empresa. Sin embargo, ser dueño de un dominio tiene poco sentido si el dominio no se resuelve a ninguna IP. Para ello, es necesario disponer de un servidor de nombres que maneje la zona representada por el dominio registrado. Como IONOS también ofrece hosting DNS, estos servidores de nombres ya los ofrece por lo que no tenemos que preocuparnos por ese tema.

Como quien contrató el VPS estaba interesado en alojar varias páginas web en el mismo VPS sin tener que modificar el puerto estándar de HTTP y, además, quería que las conexiones estuviesen cifradas, decidimos obtener un dominio. Tras meditarlo mucho tiempo, nos decantamos por el de \texttt{programadormanchego.es}. Previamente, se nos ocurrieron otros nombres pero para alquilarlo debíamos primero desembolsar primero un cantidad de significativa de dinero, ya que IONOS los consideraba premium por ser fáciles de recordar y, por tanto, suponer una ventaja para un negocio que quiere crecer en Internet.

Como dueño de programadormanchego.es, se tiene total libertad para modificar los registros DNS asociados al mismo.