Cómo funcionan los Servidores y Servicios de Hosting
Conocer cómo funciona este mundo interconectado, donde los datos viajan de un parte del planeta a otra por lo que llamamos “Internet” (o por una “red local”; es decir, mediante un cable o Wi-Fi que conecte tus equipos entre ellos y puedan compartir, por ejemplo, películas sin necesidad de conectarse a “Internet”), para un sinfín de utilidades; es muy importante e interesante ya que te brindará todo su potencial junto con las habilidades necesarias para desarrollar grandes tecnologías. No hace falta que tengas unos grandes conocimientos, pues en los siguientes puntos desgranaremos paso por paso el entramado de “Internet” de una manera práctica (por lo que después de terminar de seguir estos pasos podrás desarrollar lo que más te interese), además de entender con bastante profundidad cada parte implicada. Si tienes interés o eres desarrollador comprender correctamente de una manera sencilla para poder sacar el máximo provecho a las interconexiones y al tratamiento de datos, pudiendo hacer lo que nos plazca ¿Y qué no place? Pues por poner algunos ejemplos:
- Poder subir archivos a un servidor controlado por nosotros (por ejemplo, películas, para poder verlas en cualquier lugar del mundo con solo conectarnos al servidor).
- Crear nuestra propia web (como puede ser nuestra propia red social).
- Gestionar nuestras propias partidas online a videojuegos al disponer de un servidor.
- Poder crear nuestra propia VPN (por ejemplo, con un túnel cifrado VPN podremos conectarnos a una Wi-Fi pública sin que se pueda escuchar lo que se manda a través de esta)
- Procesar de una gran cantidad de datos en potentes servidores. Un ejemplo, hemos colocado sensores de humedad en un campo y recogemos datos cada segundo, esto al cabo de los meses no creará unos ficheros de varios Gigabytes de datos (podrán ser ficheros tipo “Excel” con millones de filas; cada fila una fecha junto con la localización geográfica y la humedad de la muestra tomada en ese momento) y queremos procesarlos todos para poder realizar predicciones (por ejemplo, podremos predecir con aprendizaje automático cuándo lloverá). Esto requiere de un gran procesado que no podremos hacer en nuestros ordenadores normales, para ello se utilizan máquinas especiales para el procesado de datos.
- Crear aplicaciones que reciban datos (por ejemplo, una aplicación que se conecte a nuestro servidor para procesar o preguntar por datos, como los de la humedad antes indicados).
- Tener nuestro propio servidor de correo electrónico para no tener que depender de terceros si nuestra información es sensible.
- Crear nuestros propios servicios y servidores Software. Por ejemplo, podríamos crear un analizador de alguna web (Scraping, más información pinchando aquí) de venta de productos para que nos mandara una alerta al móvil cuando cambie de precio cierto producto.
Entre un montón de posibilidades más.
¿Qué es un servidor?
Supongamos que tienes un portátil que no tiene mucha memoria ni capacidad de procesado, y tienes otro ordenador más grande de sobremesa con su torre que es mucho más potente para procesar todo lo que quieras; pero quieres que tu portátil tenga la capacidad de procesado que el ordenador de sobremesa (por ejemplo, para poder llevarte el portátil donde quieras y trabajar con los recursos de tu ordenador de sobremesa). Pues bien, puedes hacer que el ordenador de sobre mesa sea el “Servidor físico” (el host) de tu portátil (el cliente).
El “Servidor físico” (en este ejemplo, el ordenador de sobremesa) podrá guardar cualquier fichero como audios, vídeos, imágenes o textos, y compartirlos al portátil cuando lo necesite. Por otro lado, al “Servidor físico” también se le podrá instalar “Servidores software” como de impresión (que conectado a una impresora podrá gestionar la cola de impresión de varios ordenadores conectados este), de correo (donde llegarán los correos electrónicos sin necesidad de intermediarios), de web (como el servidor físico web que ejecuta esta página web www.Jarroba.com ), de base de datos (para guardar por tablas la información que necesites), de Seguridad (ejecutando antivirus o firewall), de Video (para enviar video por streaming), de videojuegos (para procesar un juego y enviar por streaming el vídeo y recogiendo las pulsaciones de los mandos), etc.
Por lo que con nuestro portátil podremos, por ejemplo, pedir al “Servidor físico” (equipo de sobremesa) el código procesado por el “Servidor (Software) Web” para ver una web que se procesará con los recursos del ordenador sobremesa; o, para que quede más claro, que el ordenador de sobremesa procese mediante un “Servidor de videojuegos” un videojuego (con todo lo que implica: tarjeta gráfica buena, procesador decente, mucha memoria RAM y disco duro), y con nuestro portátil -sin apenas recursos- podremos jugar al videojuego como si tuviéramos toda la potencia del equipo de sobremesa (desde el “Servidor físico” recibiríamos en el portátil el vídeo procesado y enviaríamos desde el portátil las órdenes que hayamos pulsado para controlar el juego en el “Servidor físico”).
Diferencia con un Servidor físico NO gestionado por nosotros
Tener un “Servidor físico” es muy interesante por todo su potencial como te explicaré más adelante; y más si NO lo gestionamos nosotros, sino una compañía de servicios de hosting (o «servicios de hospedaje») como puede ser clouding.io. Tanto un “Servidor físico” montado en casa como el “Servidor físico” de una compañía de servicios de hosting funcionan de una manera muy parecida físicamente, pero no tienen las mismas ventajas.
Antes hemos dicho que el ordenador de sobremesa actuaría de “Servidor físico” al configurarlo como tal. Un ordenador de sobremesa tiene una parte común a los ordenadores que usan las empresas de servicio de hosting: la torre. Un ordenador de sobremesa lo podemos descomponer: en el ratón, el teclado, el monitor y la torre. Esta última, la torre, es la que guarda el cerebro del ordenador con el procesador, la memoria RAM, el disco duro, la fuente de alimentación, la tarjeta gráfica, todo esto unido por una placa base, y para poder controlarlo de una manera sencilla el disco duro necesita tener instalado un sistema operativo (como Linux, Windows, Mac, etc.); y, aunque no lo parezca, el contenido de la torre lo tienen todos los ordenadores como los Smartphones, Tabletas, portátiles, relojes inteligentes, etc.
Los servicios de hosting usan en mayor medida un montón de “torres” (sin pantalla, ni teclado, ni ratón); además, las suelen construir en cajas horizontales y las llaman “Unidades Rack” (o simplemente “U”). Apilan varias “Unidades Rack” dentro de un “Armario Rack” (también llamado “Torre de Servidores (Físicos)”), armario que tendrá una fuente de alimentación y ventilación; y la habitación donde se guardan varios de estos “Armarios Rack” se denomina “Granja de Servidores (Físicos)”.
Las diferencias de utilizar un ordenador en tu casa/empresa como “Servidor físico” contra una “máquina” (“Servidor físico”) con las mismas características en una empresa de servicios de hosting son:
- El ordenador físico se paga una vez a un precio muy alto y el servicio de hosting el precio es mucho más reducido (se paga mes a mes, y el mes que no queramos utilizar el “Servidor físico” de nuestro servicio de hosting lo podremos pausar o darnos de baja; además, que los recursos físicos se suelen compartir con otros clientes, por lo que todavía baja más el precio, eso sí, sin mezclar datos entre clientes).
- Si se rompe una pieza del ordenador físico nos quedamos sin poder utilizar el ordenador y tenemos que arreglarlo nosotros (comprar la pieza y, o bien, arreglarlo nosotros mismos o llevarlo a tienda); y en el servicio de hosting si se rompe algo, supongamos que se les rompe un módulo de memoria RAM, van a derivar su uso a otro módulo de RAM mientras lo cambian por otro nuevo sin más coste para ti y sin interrumpir el servicio que te están dando (es decir, seguirás usando su “Servidor físico” sin enterarte que se ha roto algo y sin preocuparte de repararlo).
Servidor Físico vs Servidor Software
Se llama popularmente “Servidor” al ordenador físico donde vamos a instalar “Servidores” Software (los que hemos comentado antes como: “Servidores Web”, “Servidores de Videojuegos”, “Servidores de Correo”, etc.); pero no es correcto utilizar sola la palabra “Servidor” a nivel técnico, ya que la palabra “Servidor” su definición no es inequívoca (que solo pueda ser interpretado de una única manera), por ejemplo la frase “Servidor de Servidores” es bastante confusa ¿Es un “Servidor Físico” que tiene “Servidores Software”? ¿O es un “Servidor Software” que controla “Servidores Físicos” para balancearlos? ¿O es un hombre que controla Servidores?
Para evitar la confusión no es raro en las empresas escuchar llamar al “Servidor Físico” como “máquina” (al ordenador físico, torre o “unidad Rack”), y a los “Servidores Software” como “Servidor X” (donde X es el tipo: Web, de Videojuegos, de correo, etc.).
Servidor en una compañía de servicio de hosting
Entonces, si queremos no tener que estar gestionando un “Servidor físico” podremos contratar una “torre de ordenador” en una empresa de hosting (como por ejemplo clouding.io). Como hemos dicho antes, esta torre de ordenador nos pertenecerá mientras paguemos por el servicio y podremos hacer con ella prácticamente todo lo que queramos (menos las acciones que puedan ser peligrosas o ilegales, no se van a poder realizar por ley o por estar bloqueadas).
En nuestra casa tendremos un ordenador (máquina) al 100% para nosotros y seremos los encargados de gestionar las partes físicas de esta “máquina”; pero en un servicio de hosting o en una empresa podremos tener otras opciones:
- Servidor (físico) Dedicado (o privado): es el “Servidor físico” entero para ti, es decir, una unidad Rack te pertenecerá entera (en el ejemplo de la torre de ordenador, vendría a decir que la torre entera la podrás utilizar tú). Como es todo nuestro podremos ejecutar lo que queramos. La desventaja es que es caro y que si queremos ampliar algo lo más seguro es que nos toque detener el servidor por completo.
- Servidor Compartido: No es un “Servidor físico” entero para ti, sino una porción de éste. Dicho de otra manera, la “unidad Rack” será utilizada por varios clientes, pero cada cliente tendrá separados sus datos; por ejemplo, si contratamos 50GiB de capacidad de disco duro, no tendremos un disco duro exclusivamente para nosotros, sino que la empresa del servicio de hosting puede que tenga un disco duro de 500GiB dividido entre 10 clientes y cada cliente le corresponda una partición de 50GiB (y entre particiones los clientes no pueden acceder, para que no vean los datos que no les pertenecen); los clientes no suelen tener limitaciones de uso, por lo que si otro cliente hiciera un uso intensivo de su parte del disco duro afectará al rendimiento de nuestro uso (si ese disco duro es de disco, el cabezal del disco duro tiene que leer tanto sus datos como mis datos; por lo que si el cabezal está siendo muy usado por otros clientes, entonces tardará más cuando yo necesite consultar mis datos). Otra contra es que no podremos ejecutar lo que queramos, ya que está limitado por el servicio de hosting para que un cliente no pueda perjudicar a otro. La ventaja es que es mucho más barato que un servidor dedicado.
- Servidor VPS (del inglés “Virtual Private Server”, “Servidor Privado Virtual”): A nuestra vista será como un servidor dedicado (pero no tiene porqué serlo necesariamente a nivel de Hardware), por lo que podremos ejecutar lo que queramos (ya que si algo va mal no saldrá de esta máquina virtual) y personalizar cuanto queramos (pues no afectará a otros clientes); el Hardware es exclusivo para nosotros virtualmente, esto quiere decir que si hemos contratado un núcleo de procesador a 1 GHz de velocidad tendremos siempre eso aunque a nivel de Hardware estemos utilizando un procesador con 8 núcleos a 3 GHz cada núcleo, donde varios Servidores VPS virtuales de diferentes clientes se estén ejecutando a la vez (siempre tendremos nuestra parte íntegra, ni más ni menos). Tiene las ventajas del servidor dedicado (recursos Hardware propios y poder ejecutar lo que queramos) y las ventajas del compartido (más barato que un servidor dedicado).
Un Servidor VPS permite abaratar más los costes y que las piezas de la unidad Rack se estén usando la mayor parte del tiempo (pues algo comprado que no se usa no genera valor, y como si se rompe algún componente las empresas de servicio de hosting las cambian sin que nos enteremos pues abarata bastante y da el mismo resultado).
¿Y en una empresa?
Si trabajas para una empresa, puede que tu empresa tenga su propio “armario Rack”. Este “armario Rack” estará gestionado por el “Departamento de sistemas” de la empresa y funciona muy parecido a como lo hace un servicio de hosting (salvo que aquí no tienes que contratar una “máquina”), sino usar la máquina que te proporcione la empresa que gestionará el departamento de sistemas (quién se encargará de arreglar lo que se rompa, actualizarla y comprar nuevos componentes para ampliar su capacidad). Depende de la necesidad del trabajo que estés desempeñando en tu empresa, puede que tengas la necesidad de solicitar al departamento de sistemas una nueva “máquina”, por ejemplo para procesar grandes cantidades de datos; si tu empresa aprueba la nueva “máquina” el departamento de sistemas de tu empresa será quien tenga que tomar la decisión de darte una parte de los recursos (compartidos o VPS) de los que ya hay en el “armario Rack” o de comprar nuevos; para ti que pediste la nueva “máquina”, tan solo tendrás que usar la nueva “máquina” (al igual que el servicio de hosting, no tendrás que preocuparte por la partes físicas de la “máquina”).
Por otro lado, existen varias arquitecturas, las más comunes son:
- Tradicional: El servidor físico tal cual; es decir, se trabaja directamente sobre una máquina física (una unidad rack, por ejemplo). Una carencia que tiene es que si algún componente Hardware falla habrá que esperar a repararlo (y si es un disco duro será conveniente haber tenido una copia de seguridad en otra parte para poder restaurarla).
- Cloud (Computación en la nube): Consiste en distribuir los datos y el procesado entre varias máquinas físicas (entre varias unidades rack) y si puede ser en diferentes ubicaciones. Se suele utilizar virtualización para que a ojos de quién usa el servidor parezca que está en un único sitio todo, pero realmente está distribuido.
Con esto surge el «Servidor cloud VPS«, que es la unión del Cloud con el VPS, que nos ofrece las ventajas de ambos y varios añadidos. El más goloso de los añadidos es que nos permitirá redimensionar (escalar) nuestro «Servidor cloud VPS» en «caliente» (sin tener que detener el servidor y en el momento que queramos); un ejemplo, si al principio contratamos un «Servidor cloud VPS» con 100 GiB de disco duro, mañana podremos contratar una ampliación de ese disco duro sin tener que detener el «servidor cloud VPS» (por ejemplo, si tuviéramos una web activa en ese «Servidor cloud VPS», en ningún momento dejaríamos de dar servicio con nuestra web por este mantenimiento). La redimensión de un «Servidor cloud VPS» sin tener que detener el propio servidor es muy importante, ya que permite ajustar los gastos del «Servidor cloud VPS» (imagina que en la época cuando la gente se va de vacaciones se reducen las visitas a tu web a la mitad, entonces ¿Vas a pagar los mismos recursos Hardware de tu «Servidor cloud VPS» si te van a sobrar durante un tiempo? No tiene sentido, por lo que se redimensiona el «Servidor cloud VPS» y nos ahorramos costes; por ejemplo, reducimos la memoria RAM pues habrá menos uso, pagaremos menos por el «Servidor cloud VPS» y no empeora el rendimiento de los usuarios que sigan utilizando la web).
Petición de tu ordenador al servidor físico (en la compañía de servicio de hosting)
Apuntando directamente con la “IP pública” (un poco más adelante entenderás porqué se llama “IP pública”) que nos proporcionará el servicio de hosting el viaje es bastante directo, pero quiero ensañarte el viaje más complejo que es mediante un nombre de dominio (ya que posiblemente quieras montar tu propia página web, y aquí te enseñaré como llegar a montar una web más adelante).
Por ejemplo, supón que estás en el ordenador (o smartphone, portátil, Tablet, etc.) de tu casa navegando con tu navegador favorito (Chrome, Firefox, Safari, Edge, etc.) y quieres acceder a la web “https://jarroba.com” [1] (este corchete hace referencia al número del círculo rojo con el mismo número en la siguiente imagen), en este ejemplo el “nombre de dominio” es la palabra “Jarroba.com” y este “nombre de dominio” se traduce a una “IP pública” mediante algún servidor DNS [2].
Existen muchos servidores DNS por el camino de la petición (desde que sale de tu navegador al servidor físico del servicio de hosting), por ejemplo:
- En el sistema operativo de tu ordenador está ejecutando ahora mismo un “servidor DNS (Software)”, si sabe la traducción la petición se encaminaría directamente.
- En el ISP que tienes contratado (en la anterior imagen es el único “servidor DNS” que pinto por abreviar en [2] y por ser el más conocido ya que suele ser quién nos da la mayoría de las traducciones).
Un inciso, ISP (viene del inglés “Internet Service Provider”) es el Proveedor de servicios de Internet que se tiene contratado, como puede ser: Movistar, Orange, AT&T, etc.
Continuo con los servidores DNS, que guardan la información de la “IP pública” que corresponde con el nombre de dominio, cuando se le pregunta a un servidor DNS por la “IP pública” que corresponde con un “nombre de dominio” puede pasar dos cosas:
- Sabe la traducción: porque tiene guardada previamente la traducción (“traducción” llamamos a la correspondencia de “nombre de dominio” con la “IP pública”).
- NO sabe la traducción: no sabe cómo traducir el “nombre de domino”, entonces el servidor DNS puede preguntar por la traducción a otros servidores DNS (posiblemente de otras ISPs); o bien, esperar a que se propague la traducción (la “propagación DNS” surge al registrar un nuevo dominio, tarda varias horas porque implica el envío de la traducción a los diferentes servidores DNS del mundo para que la conozcan). De cualquier manera, una vez se obtenga la traducción será guardada en la base de datos del servidor DNS que preguntó para posteriores usos (ofrecerla a quién pregunte por ella).
Si tu ISP conociera por dónde enviar la petición al otro ISP que está usando la “empresa del servicio de hosting” (o si casualmente tu ISP y el de la “empresa del servicio de hosting” fuera el mismo), entonces sería una petición directa; pero supongamos que no, para tener un ejemplo más completo.
Los servidores (físicos y software) de tu ISP tendrá que preguntar al IXP [3].IXP (del inglés “Internet Exchange Point”) es un servidor neutro donde las diferentes ISPs han acordado compartir información [4]; un IXP es un Conmutador (Router) grande que mira la petición y la enruta a la red del ISP correspondiente por el camino más corto. Por tanto, dividirá la dirección IP en el formato v4 en dos mitades: red y host; por ejemplo, si nuestra IPv4 es “85.208.20.119”, entonces “85.208” indica la red y “20.119” el host; conociendo la red por donde enviar la petición el servidor IXP que sabe por dónde está el ISP al que pertenece esa “IP pública” y mandará la petición en esa dirección.
El ISP de “la empresa del servicio de hosting” sabe a donde tiene que enviar la petición [5]. Entonces, el Conmutador (Router) de la empresa de hosting que también conoce a donde mandar la petición [6] convertirá la dirección “IP pública” en una “IP privada” (aplicando una “máscara de subred”). Para viajar por el interior de su red y llegar hasta el “servidor físico” donde está la página web a la que queríamos acceder [7].
En el “servidor físico” se procesará la petición con algún “servidor Software” que esté escuchando. Para una petición web se podrá procesar con un “Servidor web” (como el de Apache, que aprenderemos a utilizar más adelante), que será el encargado de escuchar en el puerto 443 (para peticiones seguras HTTPS), de recoger la petición y generar los datos que el navegador se va a descargar para componer la página web que estás viendo (los ficheros CSS, HTML y JavaScript).
Nota sobre “el Internet” antes descrito: he querido describir la “red de Internet” de principio a fin para que se entienda desde que sale la petición del cliente hasta que llega al servidor (sin entrar en el modelo de capas); es complejo, pues existen muchas topologías de red (e interconectadas) y el dinamismo a nivel mundial es abrumador, son cambiantes y puede que no se cumpla a nivel práctico (todo lo anterior es teoría engarzada de principio a fin), pero he intentado resumir para ponerlo todo en una línea y que se entienda la idea completa del funcionamiento. Por esto, la parte de IXP simplemente la he puesto para unir los diferentes servidores sin tener que recurrir a la idea abstracta de la nube de “Internet”, y que se vean los posibles “servidores físicos” con sus “servidores Software” trabajando por el camino de una petición; además de aprender la diferencia de “IP pública” e “IP privada” con un contexto completo.
Si tienes más curiosidad y quieres aprender en profundidad sobre la arquitectura «Cliente Servidor» te recomendamos este artículo donde hablamos sobre el tema.
Monta tu Servidor físico (o Servidor Cloud VPS)
Podremos crear nuestro servidor en un ordenador que tengamos viejo y dejarlo conectado 24 horas todos los días del año; o más eficiente, cómodo y barato (en luz, piezas y mantenimiento) utilizar alguna empresa de hosting. Aquí explicaré esta última, sobre todo para ver claramente la diferencia entre nuestro ordenador (cliente) y otro ordenador (“Servidor físico” que actúa como host) que está en la otra punta del mundo que podremos gestionar desde nuestro ordenador.
Registrarse en un servicio de Hosting
Podremos utilizar el servicio de hosting que queramos, pues son todos bastante parecidos, quizá unos más sencillos que otros y algunos traen automontajes de muchas herramientas (por ejemplo, nos pueden montar todo lo necesario para empezar a trabajar con WordPress; pero de inicio recomiendo aprender a montártelo por tu cuenta para que te sea sencillo solventar cualquier problema y crear nuevas funcionalidades). Aquí vamos a probar todo esto con el servicio de hosting de clouding.io que nos permitirá gestionar completamente a mano nuestro servidor y además gratis para aprender . El servicio gratuito de clouding.io ofrece 5€ para gastar y aprender a gestionar nuestro propio servidor. Todos los pasos que se van a describir con detalladamente a continuación tardarás en hacerlos minutos; además, con estos 5€ te dará de sobra para aprender durante más de un mes si lo gestionas bien (y si te gusta podrás contratar más).
Accedemos a clouding.io y rellenamos el formulario de registro en el que nos piden lo mínimo que es el usuario y la contraseña; cuando gastemos el saldo gratuito posteriormente nos ofrecerán el servicio completo y para ello necesitan que marquemos la casilla “Acepto comunicaciones comerciales”. Para continuar pulsaremos el botón “Prueba tu servidor cloud”.
En la siguiente página nos van a pedir confirmaciones de seguridad tanto para nosotros (para que tengamos maneras de recuperación; además, como seguridad para nuestros datos privados y de nuestros futuros usuarios/clientes es necesario asegurar que va a ser nuestro y solo nuestro) como para ellos (como empresa de hosting se tiene que proteger de que otros usen sus servicios para actos ilegales, y para ello se tienen que asegurar mucho de la identificación precisa de sus usuarios).
Por eso nos van a pedir:
1. Confirmar nuestro correo electrónico. Nos enviarán un correo electrónico para validar nuestro e-mail como el siguiente:
2. Validar nuestro teléfono. Escribiremos nuestro número de teléfono para recibir un SMS o para que nos llamen, con ello nos facilitarán un código de validación que introduciremos en el campo del formulario y pulsaremos en “Enviar código”:
3. Validar nuestra cuenta bancaria. No nos cobrarán nada (salvo 1€ que nos devolverán, para validar que nuestra cuenta bancaria funciona y no sea falsa). Tendremos que introducir los datos de la tarjeta: Número de la tarjeta, CVC (es el número de 3 cifras que está detrás de la tarjeta, más información en https://jarroba.com/digito-de-control-deteccion-de-errores/), el mes de caducidad de la tarjeta, el año de caducidad y el titular (el nombre que aparece en la tarjeta). Podremos desmarcar la casilla “Guardar para futuros usos” (por seguridad sobre nuestros datos bancarios, la recomendación es que ninguna web guarde nuestra tarjeta, mejor introducirlos cada vez que se necesite; aunque por comodidad podremos dejar marcada esta casilla, como queramos).
Cuando tengamos estos tres datos validados podremos pulsar el botón “Listos para despegar” para poder empezar a gestionar nuestro servidor.
Crear nuestro servidor Cloud VPS
Cuando entramos veremos el “panel de control” de nuestro servicio de hosting (este panel que vemos NO es el “servidor físico”, se suele confundir porque se puede controlar el “servidor físico” desde aquí, pero recuerda que NO es el “servidor físico”).
Crear una “máquina” (“servidor físico”) en clouding.io es muy rápido (realmente tendremos un “servidor cloud VPS”, que gestionaremos como si fuera un “servidor físico”). Tan solo iremos a la pestaña “Servidores” y dentro de esta a la pestaña “Mis Servidores”. Y ahora pulsaremos el botón “Haz click aquí para crear tu primer servidor” para empezar a crear nuestro servidor cloud VPS.
Crear un “servidor físico” es igual que comprar un nuevo ordenador, Tablet o Smartphone. Podríamos decir que estamos en una “tienda” eligiendo las piezas que va a tener (procesador, memoria, sistema operativo, etc.), al fin y al cabo estamos contratando un ordenador con estas características, y podremos utilizarlo como si lo tuviéramos físicamente (accediendo a este desde otro ordenador); solo tendremos que preocuparnos en utilizarlo (exactamente igual que cuando contratamos un servicio de películas como Netflix o HBO, que no tienes en tu mano físicamente las películas en discos físicos; sino que podemos acceder desde cualquier lugar a sus servidores directamente a través de Internet, para poder disfrutar de las películas como si fueran físicamente nuestras, que están almacenadas en discos duros de un ordenador que quizá se encuentra en la otra parte del mundo).
Para ello vamos a utilizar nuestro dinero (los 5€ que clouding.io nos regala, si queremos añadir más también podremos) y “comprar” nuestra máquina.
Para ello en “Selecciona un nombre” pondremos un nombre a la máquina que vamos a comprar (recuerda que compraremos gratis con los 5€ que nos regala clouding.io). En “Seleccionar origen de disco” elegiremos un sistema operativo que tendrá nuestra máquina instalado, para que nos salga gratis y para las siguientes explicaciones de este artículo, elegiremos “Ubuntu” en su última versión disponible (en este caso la versión “18.04”). Más abajo, en “Seleccionar la configuración del servidor” elegiremos la configuración física para nuestra máquina que deseemos; si estás empezando recomiendo la configuración mínima, que nos será más que de sobra para disponer del máximo tiempo para aprender (más adelante podremos ampliar estos recursos si lo necesitamos; además, como puedes ver en el detalle de la derecha se cobra por tiempo de uso y si elegimos el mínimo podremos probarlo cerca de un mes y medio con los 5€ que nos regalan, que está bastante bien), yo he elegido:
- RAM: 2GB de RAM por vCore
- vCores: 0,5 vCores
- Disco SSD: 5GB
Cuando terminemos de configurar nuestro servidor físico pulsamos el botón “Enviar” para “Comprar” nuestra “máquina” (nuestro “Servidor cloud VPS”).
Esperamos unos minutos para que se configure automáticamente nuestro “Servidor cloud VPS” (Se configura mientras dure el estado “Optimizando Software”), cuando veamos en estado la palabra “Activo” significará que se ha configurado correctamente y podremos utilizar nuestro “Servidor cloud VPS”.
Panel de control de nuestro servidor cloud VPS
Recuerda, desde este “panel de control” gestionamos nuestro “Servidor cloud VPS” (o “Servidores” si creamos más con el botón “+”; aunque para lo que voy a explicar más adelante con uno nos es suficiente).
Para gestionar nuestro servidor vamos a entrar pinchando sobre el nombre que le hemos puesto al “Servidor cloud VPS” (en mi caso le llame “Mi Servidor”):
Habremos llegado al “panel de control” de nuestro servidor cloud VPS.
Pestañas del panel de control
Resumo rápidamente las pestañas del “Panel de control” de clouding.io (solo para conocerlas, no hace falta que pulses ahora en ninguna, para seguir este artículo nos bastará con la pestaña de “Ajustes”):
- Ajustes: Donde tenemos la IP pública, la configuración física del servidor y las diferentes claves de acceso.
- Configuración de red (Red): Podremos configurar la red privada o el Firewall.
- Copia de seguridad (Backups): Para crear una copia de los datos (normalmente solo texto, bases de datos, imágenes, vídeos, scripts, etc.) en otro disco duro diferente (en caso de que un disco duro falle, que tengamos una copia de seguridad de los datos importantes en otro).
- Copia instantánea de volumen (Snapshots): Para crear una “captura” (copia de metadatos) inmediata y exacta del estado del servidor (si guardamos una “captura” ahora y luego ocurriera con en nuestro servidor, como instalar algo que vuelva inestable al sistema operativo del servidor, podremos deshacer los cambios hasta la “captura” guardada).
En la pestaña de “Ajustes” nos aseguramos de que el “Estado” aparece “Activo” (Si apareciera “Apagado” podremos pulsar el botón “Encender” que aparecería en “Acciones del servidor”).
Nota sobre el Estado: Desde este panel podremos apagar el servidor pulsando en el botón “Apagar” en “Acciones del servidor” (aunque como los recursos físicos los tenemos reservados para nosotros, se nos seguirá cobrando por el servicio; podremos “Archivar” el servidor para que no nos cobren más que por el espacio ocupado; o “Borrar” el Servidor para que no nos gaste dinero). Si queremos dejar una página web 24 horas activa, no podremos apagar el servidor, de lo contrario dejaremos de dar acceso a quién quiera ver nuestra web.
Claves de acceso a nuestro servidor cloud VPS
En la pestaña de “Ajustes” veremos muchas cosas interesantes, pero lo que nos interesa es obtener las claves para poder trabajar con nuestro servidor en el aparatado “Cómo acceder al servidor” (esta parte es importante, pues más adelante utilizaremos todas estas claves y cada una en su sitio).
Hay varias claves que vamos a tener, por lo que tenemos que entender las diferencias y no confundirlas:
- Usuario y contraseña de acceso al “panel de control” del servicio de hosting (en este ejemplo es la propia web de portal.clouding.io).
- Fichero con la clave Pública para conectarnos por SSH (y SFTP) aquí llamado “Llave SSH”.
- Usuario y contraseña del Sistema Operativo instalado en nuestro Servidor cloud VPS. Por defecto, nos ha generado una contraseña aleatoria; el usuario llamado “root” con todos los permisos para modificar el Sistema Operativo es igual para todos por defecto, por lo que será una buena práctica cambiar este nombre por seguridad (ya que alguien no deseado probando contraseñas podría acertar y luego realizar cambios en nuestro sistema operativo; si cambiamos el nombre del que viene por defecto que es “root” tendremos más seguridad).
Conectarnos por SSH a nuestro servidor
El protocolo SSH (del inglés “Secure SHell”) no se suele traducir, aunque lo podríamos traducir como “Revestimiento seguro” ya que nos proporcionará un lugar para introducir datos de manera segura que se enviarán también de manera segura y así poder dar órdenes a nuestro servidor cloud VPS.
Lo primero que necesitamos para conectarnos por SSH con seguridad (criptográfica) es la clave Pública que el servidor nos habrá creado (junto con la clave Privada correspondiente que se quedará el servidor) automáticamente para nosotros (también podremos crearla nosotros). Esta clave Pública será un fichero con la extensión “.pem” que podemos descargar desde el panel de control (lo explico más adelante).
La siguiente imagen representa la creación [1] de la pareja de claves pública y privada (aquí nosotros no tendremos que hacer nada ya que lo hace el servicio de hosting automáticamente; tan solo te lo indico como curiosidad, para que sepas de dónde salen); y el envío por seguro por HTTPS [2], que simplemente para nosotros es pulsar sobre el botón de descarga:
Ahora sí, vamos a descargar la “Llave SSH” que nos ha creado por defecto el “panel de control” (en un futuro podremos crear otras, pero ahora nos vale con la que está por defecto). Se nos descargará un fichero con la extensión “.pem” (si tienes curiosidad, puedes abrir el fichero con un bloc de notas para descubrir que realmente es una contraseña de cientos de caracteres, que es mucho más larga que cualquier contraseña que estuviésemos dispuestos a escribir a mano; por lo que es mucho más seguro y es importante que no te copien este fichero “.pem” pues es tu contraseña para iniciar la comunicación al servidor).
Nota sobre los sistemas operativos: Da igual que sistema operativo tenga el ordenador desde donde estás realizando estos pasos (pues voy a explicar pasos para Windows, Linux o Mac), lo que hay que tener claro es que te vas a conectar a tu servidor cloud VPS que tiene instalado de sistema operativo, para este ejemplo, la distribución de Linux llamada Ubuntu.
Estas claves criptográficas (públicas o privadas) que sirvan para la conexión SSH, como estándar es bueno moverlas a la carpeta “.ssh” de tu sistema operativo, ya que habrá varios programas que las busquen ahí directamente.
Conectar Windows por SSH
En Windows 10 hay varias maneras de realizar la conexión SSH:
- Subsistema de Windows para Linux (WSL) (personalmente es el que recomiendo, pero solo funciona sobre Windows 10 actualizado; información para instalar WSL en https://docs.microsoft.com/es-es/windows/wsl/install-win10). Si utilizas el subsistema de Windows para Linux, entonces sigue la parte de las instrucciones siguientes donde pone “Linux o Mac”, ya que serán las mismas (estarás usando un sistema Linux sobre Windows).
- Máquina virtual con Linux instalado. Máquinas virtuales que puedes descargar: VirtualBox (https://www.virtualbox.org/wiki/Downloads) o VmWare Player (https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/15_0). Luego tendrás que descargar alguna distribución de Linux como Ubuntu (https://ubuntu.com/#download) para instalarlo sobre la máquina virtual.
- Putty es un programa para realizar conexiones SSH desde Windows, lo puedes descargar desde https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html (Recomiendo descargar el comprimido con todos los programas por si los tuviéramos que utilizar, donde pone “putty.zip (a .ZIP archive of all the above)”, por ejemplo para Windows de 64 bits: https://the.earth.li/~sgtatham/putty/latest/w64/putty.zip). Si vas a utilizar Putty, entones sigue las instrucciones siguientes donde pone “Windows”.
La carpeta “.ssh” se encuentra en (la suelen crear los programas que necesiten una conexión SSH directa o indirectamente, si esta carpeta está creada es porque has usado alguno):
- Linux (si tienes un ordenador Mac tienes que seguir estos pasos ya que su núcleo es un Linux): ~/.ssh (es lo mismo que /home/<usuario>/.ssh)
- Windows: C:\Users\<usuario>\.ssh
Sino existe la carpeta “.ssh” habrá que crearla con:
- Linux (comando): abre un terminal y crea la carpeta «.ssh» con (y restringe sus permisos con chmod como está indicado a continuación)
mkdir ~/.ssh
chmod 700 ~/.ssh
- Windows (interfaz): vamos a la ruta “C:\Users\<usuario>\” y pulsamos el botón derecho del ratón sobre el fondo de la carpeta para que se nos abra el menú contextual para elegir “Nuevo” y luego “Carpeta”, renombraremos la carpeta por “.ssh”. El punto delante del nombre en las carpetas de Windows solo se puede poner desde Windows 10 actualizado, en versiones previas hay que crear la carpeta “.ssh” desde el “Símbolo del sistema” con el comando:
mkdir "C:\Users\<usuario>\.ssh"
Para mover el fichero “.pem” a la carpeta “.ssh” (lo podremos renombrar para distinguirlo de otros, yo lo dejaré como “default.pem” por no confundir):
- Linux (comando): Mueve y restringe los permisos del fichero con:
mv ~/Downloads/default.pem ~/.ssh/
chmod 600 ~/.ssh/default.pem
- WSL (comando) el comando sería (mover el fichero “default.pem” de la carpeta de descargas de Windows al directorio “.ssh” del entorno de Linux):
mv /mnt/c/Users/<usuario>/Downloads/default.pem ~/.ssh/
- Windows (interfaz): copiamos el fichero “default.pem” desde la carpeta de descargas (desde “C:\Users\<usuario>\Downloads”) a la carpeta “.ssh” (a “C:\Users\<usuario>\.ssh”).
Nota sobre la restricción de permisos: es una buena práctica restringir los permisos a las claves por seguridad (y en las nuevas versiones de Ubuntu es obligatorio restringir los permisos a los ficheros de claves).
Ya tenemos todo listo para conectarnos mediante un “Túnel SSH” a nuestro servidor cloud VPS. En resumen, el “Túnel SSH” cifra los datos (que pueden ser comandos, o ficheros tales como imágenes o vídeos) que vayamos a enviar con nuestra clave Pública [3] (el fichero con la extensión “.pem” que hemos guardado en la carpeta “.ssh”), envía los datos cifrados al servidor [4], y en el servidor descifra los datos cifrados con la clave privada para que el servidor pueda trabajar con los datos sin cifrar.
Datos que necesitamos del “panel de control” de nuestro servidor cloud VPS
En los siguientes pasos vamos a necesitar de la parte “Cómo acceder al servidor” (apúntalos en algún sitio o acuérdate que están aquí para copiarlos):- La IP pública, que en mi caso es “85.208.20.119”
- La llave SSH, que ya hemos configurado
- El usuario Linux que por defecto es “root” y la contraseña que podemos ver pulsando en el icono del ojo.
Nota: Podremos utilizar en vez de la “IP pública” el “Nombre del Host”, que es el nombre de dominio que nos han asignado por defecto (el “Nombre del Host” apunta a la “IP pública”); en estos ejemplos utilizaré la “IP pública” por ser más corta.
Para conectarnos desde Linux o Mac (o Windows con WSL)
Con el comando:
ssh -i ~/.ssh/default.pem usuario@ip -p puerto
Por defecto el usuario es “root”, el puerto es “22” y la IP es la que aparece en “Cómo acceder al servidor”, para este ejemplo sería:
ssh -i ~/.ssh/default.pem root@85.208.20.119 -p 22
Al poner el comando la primera vez no tendremos guardado el host como conocido y nos preguntará si queremos guardarlo, escribimos “yes”:
Y si hemos puesto los datos de acceso bien (y está la máquina arrancada) estaremos dentro de nuestro servidor cloud VPS mediante un túnel SSH:
Para conectarnos con Windows mediante Putty
Ejecuta “PUTTY.exe”. En Putty ve a la categoría “Session” (que seguramente será la que haya cargado por defecto) y escribe la IP del Servidor clou VPS en “Host Name (or IP address)”.
Luego ve a la categoría “Connection/SSH/Auth” y donde pone “Private key file for authentication” pulsa sobre “Browse…”. Se abrirá el selector de fichero de Windows, ve a la carpeta “.ssh” en “C:\Users\<usuario>\.ssh”; no verás ningún fichero, es porque está puesto el filtro para PPK, cambia el filtro a “All Files (*.*)” y selecciona el fichero “.pem” con tu clave privada (para este ejemplo es “default.pem”) y pulsa en el botón “Abrir”.
Pulsa el botón de Putty “Open” de abajo a la derecha. Cambiará la pantalla a negro y nos avisará la primera vez que, si queremos añadir el servidor a la lista de conocidos, pulsaremos que “Sí”.
Ahora nos pedirá el usuario y la contraseña que aparece en el “panel de control” de nuestro Servidor en “Cómo acceder al servidor”. El usuario para Linux por defecto es “root” y la contraseña aparece oculta, pero si pulsamos el ojo la veremos la nuestra y será esta la que tenemos que introducir:
Ya habremos establecido un túnel SSH para comunicarnos con nuestro servidor cloud VPS.
¿Y ahora qué?
Con lo que has aprendido con este artículo ya puedes utilizar tu Servidor Cloud VPN para lo que quieras.
Si quieres aprender mucho más a nivel profesional, lo mejor ahora es aprender a configurar servidores Software sobre este Servidor Cloud VPN, gestionar el Firewall, editar código tanto en remoto como en local, hasta llegar a crear una página web y todo esto pinchando aquí paso a paso (pues este otro artículo está preparado como segunda parte, para completar y ampliar los conocimientos ofrecidos por este artículo que acabas de leer).
Mucho más para mi Servidor cloud VPS
Si quieres que tu Servidor cloud VPS sea más potente y seguro podrás mejorarlo desde el “Panel de control” en portal.clouding.io.
Ve a la pestaña “Servidores”, dentro de esta en la pestaña “Mis Servidores”, selecciona tu Servidor cloud VPS que quieras modificar. Dependiendo de lo que necesites podrás contratar cada uno de los siguientes Servicios con un coste adicional:
- Redimensionar el Hardware de mi Servidor cloud VPS [1]: Como dijimos anteriormente, es muy importante redimensionar nuestro servidor cloud VPS para no quedarnos ni cortos ni pasarnos con el Hardware. En la pestaña “Ajustes” pulsando “Redimensionar” te permitirá elegir una configuración nueva (por ejemplo, más disco duro, más memoria RAM o más núcleos de procesador).
- Mantener una copia de seguridad de los datos de tu Servidor por lo que pueda pasar [2]: En la pestaña “Backups” podrás activar el servicio de copias de seguridad de una manera muy sencilla y configurar cada cuánto tiempo se realizarán las copias de seguridad.
- Clonar nuestro Servidor cloud VPS entero o simplemente crear una captura inmediata del Servidor por si en un futuro tuviéramos algún Software inestable, podríamos poder volver rápidamente a una versión previa [3]: En la pestaña “Snapshots” podrás tanto clonar el Servidor en otro (nos preguntará con qué Hardware lo queremos) o directamente crear una captura del Servidor.
Bibliografía
- https://es.wikipedia.org/wiki/Proveedor_de_servicios_de_Internet
- https://es.wikipedia.org/wiki/Alojamiento_web
- https://en.wikipedia.org/wiki/Internet_exchange_point
- https://en.wikipedia.org/wiki/Secure_Shell
- https://en.wikipedia.org/wiki/Domain_Name_System
- https://es.wikipedia.org/wiki/Protocolo_de_internet
- https://es.wikipedia.org/wiki/Servidor
- https://es.wikipedia.org/wiki/Servidor_virtual_privado
- https://en.wikipedia.org/wiki/Server_farm
- https://es.wikipedia.org/wiki/Sistema_de_nombres_de_dominio
- https://en.wikipedia.org/wiki/Cloud_computing
- https://en.wikipedia.org/wiki/Virtual_private_cloud
- https://clouding.io/kb/
- https://www.adslzone.net/dns.html
- https://www.ticportal.es/glosario-tic/on-premise
- https://www.ripe.net/
- https://www.arin.net/
- https://www.lacnic.net/
Buen artículo! Quizá siguiendo el tema de servidores y servicios, podrían hablar sobre los contenedores de aplicaciones, por ejemplo Docker.
Me alegra que te guste y gracias Agustín por la sugerencia, la tendré en consideración para futuros artículos.