¡Vamos a probar servicios VPS! En concreto voy a analizar tres empresas con las que he tenido experiencia: Amazon Web Services, DigitalOcean y Clouding.io. Veremos algunas de sus características y cuál de ellos elegir en nuestro caso para que nuestro proyecto tenga éxito. Además de una comparativa práctica analizando los planes más básicos de cada uno de ellos (que nos pueden salir gratis durante un tiempo).
Tabla de contenidos
- 1 Presentamos el duelo
- 2 ¿Qué necesito?
- 3 Probando los servidores
- 4 Es tu oportunidad de elegir
- 5 También podría interesarte....
Presentamos el duelo
Actualmente la oferta de servidores VPS es grande y muchas compañías se han sumado ofreciendo su versión personal. Intentando ofrecer productos novedosos y a precios asequibles tanto a particulares que quieran alojar sus páginas, servicios, curriculum o vida digital en Internet así como a empresas, para alojar su web, correo u ofrecer sus servicios a través de la red.
En este post vamos a analizar tres empresas: Clouding.io, Digital Ocean y Amazon Web Services.
Clouding.io
Es una empresa española con sede en Barcelona dedicada, desde 2014, a proporcionar a particulares y empresas soluciones VPS económicas, sencillas y adaptables al usuario. Con datacenters en España, y soporte en español. Desde el principio destaca su capacidad de crear un VPS con memoria, núcleos, disco (SSD) y Sistema Operativo que queramos. Tienen disponibles varias versiones CentOS, Debian, Ubuntu y Windows Server disponibles, así como aplicaciones como Magento, Prestashop o Plesk con las que no tendrás que complicarte demasiado la vida y tendrás un entorno listo y configurado. Las aplicaciones o sistemas con licencia encarecen el precio mensual.
Clouding.io también proporciona un servicio de copias de seguridad automáticas para que no tengas que preocuparte en caso de desastre, firewall con el que puedes configurar los puertos de tu servidor que se pueden ver desde el exterior, servidor DNS para configurar dónde apuntan tus dominios y red privada entre servidores.
Desde la semana pasada está disponible la funcionalidad de los Snapshots, con los que puedes tener instantáneas de tu Servidor en cuestión de segundos. Que nos pueden resultar muy útiles a la hora de hacer cambios o actualizaciones en nuestro VPS. Los podemos utilizar para revertir cambios en un servidor cuando estemos realizando tareas delicadas o para lanzar nuevos servidores con la misma configuración.
Sus planes van desde 1 núcleo de CPU, 1GB de RAM y 25GB de disco SSD desde 11.92€/mes (o 0.0163€/hora IVA incluido), aunque puedes aumentar y disminuir tu máquina cuando quieras dependiendo de cuánto la utilices y así ajustar tus costes, teniendo en cuenta que lógicamente no puedes reducir tu almacenamiento para evitar pérdida de datos. La máquina debe reiniciarse para adoptar la nueva configuración, pero no tarda mucho.
Además, el disco SSD de Clouding.io es redundante, consta de triple réplica. Todos tus datos se guardarán en un cluster de almacenamiento compartido en diferentes hosts, lo que hace muy improbable la pérdida de datos debido a fallos de hardware,
Digital Ocean
Comenzaron sus andanzas en 2011, pero no fue hasta 2013 cuando se convirtieron en una de las primeras empresas en ofrecer servidores VPS con discos SSD. Dividen su oferta en packs fijos, es decir, no podemos personalizar los núcleos, CPU y RAM a nuestro gusto, sino que elegimos el paquete que más nos conviene, aunque podemos aumentarlo en cualquier momento. Sólo ofrecen sistemas operativos libres como Ubuntu, Debian, CentOS, Fedora, CoreOS o FreeBSD en varias versiones, aplicaciones listas para ser usadas como WordPress y entornos LAMP, LEMP, RoR o MEAN entre otros.
Como servicios extra proporcionan copias de seguridad automáticas, monitorización, red privada, DNS, firewall, IPs flotantes, almacenamiento extra y almacenamiento de objetos, entre otros.
Sus planes van desde 1 núcleo de CPU con 512MB de RAM y 20GB de SSD desde $6.05/mes, a día 28 de Octubre de 2017, 5.21€/mes (o 0.0072€/hora IVA incluido). Y dejan elegir el centro de datos donde estará nuestro VPS entre diversos países de Europa, América o Asia.
Amazon Web Services o AWS
Empezaron en 2006 y son uno de los proveedores más grandes del mundo y personalizables que existen. Tienen una oferta de servidores grandísima y puedes hacer cualquier cosa imaginable con ellos. Hablando de VPS, tenemos que hablar de su servicio EC2 con el que podemos contratar máquinas con una determinada CPU y RAM, a las que tendremos que enchufar discos duros, que pueden ser magnéticos o SSD (LBS) y dichos ordenadores tendrán que tener tarjetas de red para estar conectados a una red VPC. Todo esto, podemos configurarlo de forma sencilla, porque por defecto viene muy bien. Pero no nos evita tener que leer mucha documentación para saber cómo funcionan las cosas, cosas que podremos complicar hasta decir basta.
Otros servicios incluidos en AWS son DNS, almacenamiento de objetos, arquitecturas Serverless, servicios administrados, notificaciones, envío de correo masivo, monitorización y mucho más.
La flexibilidad de sus servicios es su gran punto a favor y su gran desventaja. A veces se te pueden escapar costes ocultos en transferencia de datos o algún servicio que has contratado sin leer mucho. También tienen muchos planes de pago anticipado (puedes pagar un servidor de forma anticipada durante 3 años) con los que te puedes ahorrar dinero. Aunque incluyen una calculadora de costes y algunos planes gratuitos, a veces es complicado utilizarlos. Además, he de destacar que el soporte gratuito es muy lento, pudiendo tardar varios días y recibiendo una respuesta muy escueta. Disponen de un servicio de soporte, pero hay que pagarlo aparte.
Aunque no tienen planes como Clouding.io o DigitalOcean, podemos contratar un VPS con 1 núcleo y 512MB de RAM (t2.nano, no indicado para usar la CPU muy intensamente porque baja su rendimiento) al que le podemos conectar un disco SSD de 20GB por ($7.71/mes o 6.64€/mes, por un lado pagaremos $0.0058/hora y por otro $0.11 por GB al mes). Para aumentar el servicio deberíamos crear una máquina más grande y enchufar el disco duro de la máquina anterior. También podemos crear un disco duro más grande (o más pequeño) que el que tenemos, copiar lo que necesitamos del disco principal y convertir en principal el nuevo disco duro.
En este caso podría haber introducido en la comparativa Amazon Lightsail, que es el servicio básico y de bajo coste de Amazon, pero he decidido incluir AWS porque es con éste con el que tengo experiencia.
¿Qué necesito?
Si queremos alojar una web o un blog, por supuesto que necesitamos un servidor que esté conectado las 24h a Internet. Lo grande que deba ser ese servidor irá en función de lo pesada que sea nuestra web. Por ejemplo, si tenemos muchas imágenes, fotografías o vídeo debemos contratar espacio en consecuencia, o si tenemos muchas visitas y la generación de las páginas es compleja (por ejemplo tenemos un WordPress cargado de plugins), necesitaremos más memoria y CPU. Puede que a priori podamos decantarnos por un servicio de hospedaje compartido, éste será mucho más sencillo de administrar, pero seguramente no tengamos libertad para configurar el servidor o instalar programas. Al mismo tiempo, si eres desarrollador te interesará tener una configuración muy específica para que funcionen tus servicios y para garantizar una disponibilidad y seguridad apropiadas.
También es muy importante la ubicación de los centros de datos. Si vamos a proporcionar nuestros servicios dentro de España, podríamos elegir Clouding.io puesto que tienen datacenters en España y, como la IP es española puede que tengamos algo mejor SEO. Además, si manejamos datos personales europeos, nos interesará que estos datos se almacenen en países de Europa.
Debemos plantearnos también la contratación de servicios extra. Es decir, aunque en mi VPS puedo montar lo que yo quiera, existe software de monitorización, copias de seguridad, servidores de correo, balanceadores de carga, bases de datos, firewalls, routers, contenedores, etc, hemos de analizar el coste de su montaje y mantenimiento y compararlo con la contratación del servicio en nuestro proveedor. Es decir, si instalar y mantener el servicio de copias de seguridad me va a costar 1€ de almacenamiento y 8h de un empleado al mes, puede que me interese contratar un servicio de 4€ al mes. Aunque también puede que seas de los artesanos que les gusta montarse todo ellos mismos.
Quiero analizar ahora algunos de los aspectos que considero importantes en mi experiencia con estas tres empresas.
Firewall
Nos permitirán activar y desactivar los puertos que se verán desde el exterior en nuestros servidores. Normalmente, para que nuestros programas funcionen habrá servicios públicos y privados y estos últimos no deben poder ser accedidos desde fuera. Los tres proveedores nos permiten cambiarlos de forma fácil, añadiendo y eliminando puertos o rangos de puertos para determinadas direcciones IP. Ya que, puede que queramos que nuestra IP de casa pueda acceder a puertos de administración de nuestro servidor y así ocultar el servicio al exterior. De todas formas, aunque podemos hacer esto desde el panel de control de cualquier proveedor, dado que en nuestro VPS podemos instalar el sistema que queramos y configurarlo a nuestro gusto, siempre nos podemos complicar la vida un poco más.
Aumentar y disminuir el servicio
Nuestras necesidades no son las mismas todo el tiempo. Tal vez nuestra empresa haya lanzado una campaña de publicidad masiva y debamos esperar muchas visitas durante unas semanas, aunque con el tiempo se normalizará. Así que hemos visto que en estos proveedores aumentar las máquinas es relativamente fácil, pero no disminuirlas cuando baje la marea. Por ejemplo, Digital Ocean deberá aumentar el disco, CPU y RAM a la vez al estar planteado en planes, y en el futuro será difícil volver a como estábamos antes; en Amazon, tendremos que cambiar la máquina principal, y si nos hemos leído la documentación no tiene por qué ir nada mal; pero en Clouding sólo tendríamos que aumentar CPU y RAM para volver a bajar dichos valores más adelante. Tenemos que medir el coste de este tipo de cambios tanto con el precio del servicio como en el tiempo invertido en su realización y mantenimiento.
Por otro lado, podríamos montar un VPS como balanceador de carga al que, en un momento añadamos más servidores esclavos. Algunos como AWS o Digital Ocean nos van a proporcionar el balanceador de carga, aunque en cualquiera de ellos podremos instalar uno y configurarlo a mano.
API
Proveedores como Digital Ocean y AWS nos proporcionan una API con la que podemos interactuar para añadir, eliminar, analizar o modificar servicios a nuestro gusto. Requiere algo de programación y leer manuales pero nos permite automatizar muchas tareas, ahorrar tiempo y dinero.
Clouding.io lanzará su propia API en 2018.
Certificación de datacenter
Tanto si es un proyecto personal como profesional necesitamos el hospedaje de mayor calidad. Y así asegurar la mayor disponibilidad y tolerancia a errores. Clouding.io tiene el certificado TIER IV del Uptime institute lo que garantiza una disponibilidad del 99.995%. AWS o Digital Ocean no tienen certificación Tier, aunque los primeros aseguran tener algo equivalente a Tier III+ (99.99% asegurado). Por parte de Digital Ocean, muchos de los centros de datos con los que trabajan tienen certificación Tier III o IV, aunque habría que buscar dicha información en el centro de datos con el que trabajamos si nos la piden para un tema empresarial. De todas formas, Digital Ocean asegura en su SLA el 99.99% de disponibilidad.
Red pública y privada
Es común que nuestros proyectos deban ser procesados en varios servidores. Separando, por ejemplo, servidor web, de base de datos, almacenamiento o caché; creando una infraestructura compleja. El problema viene cuando queremos que algunos servidores no sean accedidos por el público. Es decir, no queremos que nuestro servidor de base de datos, con toda nuestra información, sea accesible desde Internet. Pero nuestro servidor web sí que se podrá conectar y pedir información. Imaginemos que nuestro servidor web tiene dos tarjetas de red, una de ellas conectada a Internet y la otra conectada al servidor de base de datos.
Con AWS sí podemos crear este tipo de configuraciones. Podemos hacer que un VPS no sea accesible desde Internet al no tener IP pública y debamos trabajar con él a través de un servidor puente (el web, en este caso). Pero tanto en Clouding.io como Digital Ocean, todas nuestras máquinas tendrán una IP pública, aunque siempre podremos configurar los firewalls para no aceptar ninguna conexión desde el exterior y sólo aceptar conexiones internas.
Por su parte, Clouding.io tiene una VLAN privada por cliente. Y esto simplificará las reglas de nuestro firewall interno.
Resolución inversa
Nuestras máquinas tendrán un nombre, que podrá coincidir con nuestro dominio. Pero también hay una forma de preguntarle a nuestra IP a qué host pertenece:
Esto es muy importante, por ejemplo si nos montamos nuestro servidor de correo, para evitar que nuestros mensajes caigan en la bandeja de correo no deseado, ya que los servidores de destino verifican si la IP desde la que viene un mensaje pertenece al dominio al que dice pertenecer. Del mismo modo, otros sistemas de verificación pueden verificar así que dicha IP pertenece a un servicio tuyo.
Para ello es importante que nuestro proveedor nos permita establecer dicha resolución inversa. Sólo Clouding.io nos permite hacerlo desde el panel de control, aunque AWS y Digital Ocean permiten hacerlo si contactamos con ellos, justificando por qué queremos hacerlo y puede tardar hasta 3 días.
Cambio de IP
Nuestros servicios no siempre serán los mismos. A veces empezamos contratando un servidor pequeño que, poco a poco vamos ampliando. Otras veces el proceso de ampliación requiere varios días y podemos querer trabajar en un VPS nuevo desde cero y, cuando todo esté listo, hacemos que la IP de nuestros servicios no apunte al viejo servidor, sino al nuevo.
En AWS podemos hacerlo, desenchufamos la IP de un servidor y la enchufamos en otro. En Digital Ocean desde hace algo más de un año, podemos utilizar su servicio de IPs flotantes (floating IPs) que nos permite especificar a qué servidor apunta una determinada IP. En Clouding, por el momento no podemos hacerlo, por lo que tendríamos que avisar de nuestras intenciones al soporte técnico o cambiar la IP en el DNS de nuestro dominio (si son pocos dominios no hay problema, lo malo es cuando tienes más de 20). Clouding.io tampoco garantiza que te vuelvan a dar la misma IP de un servidor que has destruido.
De cualquier modo, cuando nuestra infraestructura está creciendo es conveniente hacer un VPS que actúe como firewall, filtro de seguridad y que redirija el tráfico a servidores internos. De este modo será mucho más fácil sustituir servidores.
Coste de servidores apagados
Cuando tengo mi VPS apagado, ¿cuesta dinero? Es decir, mi servicio no está consumiendo CPU, ni RAM en este momento. Tanto Clouding.io como DigitalOcean te pueden estar cobrando por ese servidor. Y es algo totalmente normal. Por un lado, tienes tu instancia reservada, como es un VPS, tu servidor es sólo un trozo de una máquina mucho más grande, pero el proveedor te tiene que garantizar que no vendrán otros clientes, ocuparán todo el servidor y cuando vayas a arrancarlo no haya CPU disponible para ti. Por otro lado está la dirección IP, que la tienes reservada. Y, por último, el disco duro, tus datos están almacenados en algún lado y tienes varios GB que son tuyos. Por este motivo, si no vas a utilizar más una máquina, asegúrate de destruirla, o si vas a utilizarla más adelante pero no quieres pagar, haz una copia de seguridad, y cárgatela.
Otros, como AWS te cobrarán menos por las máquinas paradas. Es más, si tienes direcciones IPs reservadas sin asignar te cobrarán por ellas. También te cobrarán por el almacenamiento, pero no lo harán por las máquinas apagadas.
Dentro de muy poco, en 2018, Clouding.io lanzará la característica del archivado de VMs. Cuando la Máquina Virtual esté archivada, algo equivalente a apagada, sólo cobrarán el disco SSD, no la RAM ni la CPU.
Probando los servidores
Por último, antes de decantarnos por un servicio u otro, he decidido utilizar los créditos gratuitos que ofrece cada proveedor para hacer algunas pruebas. En los tres casos he cogido el plan más barato que ofrecen. Y el centro de datos, en el caso de Clouding.io está en Barcelona; AWS en Dublín (Irlanda) y DigitalOcean en Frankfurt (Alemania).
Ping
Vamos a ver el tiempo de respuesta del servidor para ello hacemos ping a la IP de nuestro servidor, he esperado 3 resultados y he hecho la media. En mi caso, estos son los resultados:
Clouding.io: 25ms
DigitaslOcean: 44ms
AWS: 46ms
Depende de la zona geográfica desde la que intentemos acceder. Y, como es lógico, para un servicio en España, el centro de datos más cercano es el que menos tarda en responder.
Procesador
Todos los proveedores hablan de núcleos de procesador. Pero las arquitecturas van cambiando con el tiempo. Así que vamos a analizar el procesador que acompaña cada servicio. Para ello he mirado el archivo /proc/cpuinfo, aunque sólo sea la información que nos da el hipervisor, podemos hacernos una idea. Eso sí, estos tests están hechos a finales de octubre de 2017, puede que cuando contrates un nuevo VPS en algún proveedor, éste haya mejorado su hardware ligeramente.
DigitalOcean: Intel(R) Xeon(R) CPU E5-2650L v4 a 2199.9MHz y 30MB de caché. 4399.99 bogomips.
Clouding.io: Intel Xeon E3-12xx v2 (Ivy Bridge) a 2199.9MHz y 16MB de caché. 4399.99 bogomips.
AWS: Intel(R) Xeon(R) CPU E5-2676 v3 a 2400MHz y 30MB de caché. 4800 bogomips. (pero va por créditos y no podemos usar la CPU al 100% durante mucho tiempo seguido).
Tampoco nos podemos fiar mucho de la lectura del procesador que veamos aquí, puesto que será la información que el hipervisor quiere que veamos. Pero es un punto de referencia.
Veamos ahora cómo se comportan estos sistemas. Para ello, instalamos sysbench en cada uno de ellos y vemos los resultados.
Este test estresará un poco la CPU y mediremos cuánto tarda cada uno de los VPS en calcular 10000 números primos (el que menos tiempo tarda gana).
Clouding.io: 10.5054s (min=0.78ms; max=1.85ms; avg=1.05ms)
AWS: 11.5947s (min=1.05ms; max=1.36; avg=1.16ms)
DigitalOcean: 11.6888s (min=1.11ms; max=2.45ms; avg=1.17ms)
Memoria
Ahora, vamos a pasar un test de lectura y escritura en RAM, ya que es tan importante (o más) el comportamiento de la memoria que el del procesador.
Lectura
El test por defecto hace una lectura de 100GB de memoria y mide cuánto tarda en hacerlo (el que menos tarda gana).
Clouding.io: 50.6292s (2022.55MB/s)
DigitalOcean: 55.7104s (1838MB/s)
AWS: 68.7397s (1489.68MB/s)
Escritura
Ahora la clave será escribir en la RAM.
Clouding.io: 47.4001s (2160.33MB/s)
DigitalOcean: 55.4930s (1845.28MB/s)
AWS: 68.3684s (1497.77MB/s)
Sistema de archivos
Los tres servicios que estamos comparando utilizan discos SSD. Pero, claro, hay muchos tipos de SSD, los hay más rápidos y más lentos. Aquí también entrarán en juego los posibles cachés que tenga la máquina y no sólo el comportamiento del disco. Eso está bien, al final evaluamos cómo se comportará nuestro VPS con una aplicación real. He hecho varios tests, seqrd (lectura secuencial), seqwr (escritura secuencial) y rndrw (lectura y escritura aleatoria).
Tenemos que tener en cuenta el tipo de almacenamiento que utilizan los diferentes proveedores:
- Clouding.io usa un cluster de almacenamiento en red y, como vimos antes, con triple replicación.
- AWS utiliza EBS (Elastic Block Storage) que también es un almacenamiento en equipos remotos.
- DigitalOcean no especifica si utiliza almacenamiento remoto o no. Sólo especifican en algunos foros que utilizan una combinación de varios tipos de RAID. Aunque recientemente han sacado un servicio de almacenamiento de objetos que sí utiliza un tipo de almacenamiento remoto.
¡Veamos qué tal se comportan!
Lectura secuencial | Escritura secuencial | L/E aleatoria | |
DigitalOcean: | 3.2280s (1.24GB/s) | 6.2885s (651.35MB/s) | 2.4857s (125.72MB/s) |
Clouding.io: | 26.7962s (152.86MB/s) | 20.1470s (203.31MB/s) | 18.6981s (16.71MB/s) |
AWS: | 62.7478s (65.28MB/s) | 66.2642s (61.81MB/s) | 6.5534s (47.68MB/s) |
Es tu oportunidad de elegir
¿No te decides con estas pruebas? Anímate y prueba los servicios de forma gratuita. Puedes aprovechar para hacer pruebas de rendimiento o alojar una aplicación real para ver qué tal se comporta. No olvidéis dejarme un comentario con vuestras impresiones.