AWS vs DigitalOcean: ¡Cuidado al elegir tu VPS!


Aprovecho este post para avisar sin formalidad aún que ya estamos de nuevo en línea. Digo que "sin formalidad" porque tooodo el proceso de migración bajo el que estuvieron nuestras webs/infraestructura en este lapso de 2 semanas (aproximadamente) es tema aparte para otro post con video y todo. Sin embargo me voy a adelantar un poco y les comentaré que parte de los cambios que se hicieron para montar la nueva "Xenode Cloud" tuvieron que ver con una migración (forzada pero bastante beneficiosa) de proveedor de VPS. Verán, los servidores que corren nuestras cosas son y siempre serán nuestros (máquinas nuestras optimizadas para sus diversas tareas que se mantendrán en territorio Mexicano bajo nuestra observación y cuidado); Pero tenemos rentado un VPS pequeño que hace a las veces de "enrutador" para las requests que ustedes hacen. La cosa está que como nuestras 2 conexiones a internet están detrás de un NAT, lo que está pasando es que para que ustedes puedan accesar a las páginas que ven (como este blog post) la request la recibe un VPS con IP fija/pública y entonces la "enruta/envía" hacia nuestro servidor en cuestión, que es el que sirve el contenido realmente para sus clientes (una forma técnica de decir "sus máquinas" pues). Imagínenlo como un servicio "de operadora" pero en computadoras jajajaja.

Introducción

Anteriormente hechamos mano de Amazon Web Services para lograr esta funcionalidad con una micro instancia de la Free Tier. Como se podrán imaginar, la función que cumplen los VPS en nuestra Xenode Cloud no requiere otra cosa sino la más básica de las computadoras disponible (pues realmente sólo consume banda ancha). El problema es que yo soy el que está pagando estos servicios ahorita (con las cuentas bancarias que yo manejo pues) y hace poco perdí el acceso a mi banca electrónica perdiendo con éste toda posibilidad de pagar a AWS con mi tarjeta de crédito virtual (cuya free tier expiró hace un mes o dos). Dado que la situación con el banco ahorita es compleja (pues tengo que ir a una sucursal de otro estado a que me reactiven un token, entre otras cosas), y no tengo otra manera de pagarle a Amazon, lo más seguro era que de no haber migrado de VPS la página hubiese permanecido offline otra semana mínimo, cosa que pegaría muy fuerte en el SEO del blog. Fue entonces que decidí usar la cuenta de Paypal para pagarle a DigitalOcean por un droplet (así es, permiten pagar con Paypal), me tardé unas horas en reconfigurar todo como era debido en el nuevo VPS y voilá, estamos de nuevo en línea.

Precios


Si hay algo que NO me gusta de AWS, es su sistema de precios. Aunque puede parecer "barato" por las cuestiones del pago por hora y demás, (y hasta cierto punto lo es) Yo creo que antes de considerar algo "barato" o "caro" debemos saber qué nos ofrece y si debemos estar pagándolo. En mi caso luego de expirada la Capa de uso gratuito, Amazon me empezó a cobrar totales que iban desde los $17 hasta los $31 dólares (USD) al mes, cuando la microinstanacia supuestamente cuesta alrededor de $15 USD/mo. Esto se debía a que no sólo te cobran lo que te ofrecen dentro de la misma, sino cualquier otra cosa que estés usando "un poquito demás" (como banda ancha extra si tu instancia termina teniendo más tráfico del que ellos esperan) o alguna característica con la que te hayas topado accidentalmente al marcar una opción en el setup. La realidad es que, aunque Amazon es "barato", tiene muchos cargos ocultos, y aunque en este caso que planteo aún así puede sentirse "barato" tenemos que pensar a gran escala: Para empezar un VPS con 10x más potencia en DigitalOcean me cuesta $5 USD/mo (el más pequeño que tienen) sin cargos ocultos. De entrada entonces estamos hablando de que Digital Ocean ofrece máquinas con 10x más potencia que Amazon (comparando las ofertas más pequeñas en sus precios "de lista") a 1/3 del precio. Si además, a esta reducción basada en los precios de lista le quitamos los cargos extra ocultos de AWS, estamos hablando de un ahorro realmente considerable (En mi caso específico el setup con DigitalOcean y sus mejores máquinas me cuesta hasta 6 veces menos que con AWS y sus máquinas de más bajo performance), ya sea en un pequeño setup como el que nosotros ocupamos para la Xenode Cloud en este caso o en uno más grande, donde los ahorros serían aún más cruciales e importantes.

Prestaciones


Aquí depende mucho de lo que necesites y de quien seas si X o Y servicio te parece mejor al otro. Amazon es algo así como un "Wallmart" de los servicios web, donde se aplica un enfoque de "hay que tener de todo lo que necesite quien sea disponible". Esto es bueno y malo a la vez porque mientras que Amazon ofrece instancias especializadas por función (como las de GPU por sólo citar un ejemplo) o un montón de cosas disponibles a un click de distancia en el setup (DynamoDB, volúmenes de EBS, el balanceamiento de carga "automágico" etc) toda esta "disponibilidad" termina resultando cara a largo plazo... Además cabe destacar que la gran mayoría de estas cosas que se te ofrecen en un click con AWS se pueden configurar de manera relativamente fácil "a mano" en cualquier VPS.

Yo soy un sysadmin, entonces a mi me da igual lo que me ofrezcan ya hecho o no mientras tenga acceso root a mi sistema linux rentado, pero cada quien es distinto. Por otro lado Amazon ofrece las IP's elásticas (varias IP's configurables para tus instancias por un coste extra obviamente) mientras que cada VPS de DigitalOcean tiene sólo 1 propia (cosa que igual, a mi no me importa porque no ocupo más que 1 IP fija públicamente disponible en mi caso).

Muy aparte de esto, veamos las prestaciones a nivel "fierro" (hardware) que DigitalOcean Ofrece en su instancia más pequeña ($5 USD/mo):


  • 512MB RAM
  • 1 Core processor (de 2.4Ghz a 2.6Ghz aprox) 32 y/o 64 bit
  • 20 GB SSD
  • 1 TB transfer

Tener algo similar en rendimiento con AWS sería sólamente con instancias medium o large que pueden costar hasta $374 USD/mo según este artículo. Ahora bien, ustedes me dirán ¿y a ti que te importa si te dan un SSD o no si a final de cuentas lo único que necesitas es ancho de banda para lo que usas el VPS? Bueno, verán: Resulta que la instancia micro de amazon (que es la básica de AWS) tiene algo así como:


  • 613MB RAM
  • 1 Core processor (Mhz variables) 32 y/o 64 bit
  • 30GB HDD (EBS de Amazon)
  • 1GB transfer + 15 GB outgoing bandwidth

Como verán, son máquinas más lentas con muy poco ancho de banda y vienen saliendo mucho más caro (como ya expliqué arriba). Quizá tengan una pizca más de RAM pero eso no es beneficioso si tu procesador a veces va a estar corriendo a 700Mhz o a 1.8Ghz o ve tu a saber a qué velocidad (baja obviamente). Añádanles los cargos extra ocultos que AWS tiende a hacer y tenemos ante nosotros un buen deal breaker. Por otro lado, créanlo o no un SSD en un VPS ayuda y bastante; Mientras que un HDD tiene un impacto bastante negativo en cuanto a rendimiento y velocidad generales cuando se tiene una máquina con pocas prestaciones. Creo que sacrificar esos 113MB extras de RAM (o bien, los 10GB extras de HDD) que ofrece Amazon AWS en su microinstancia por las 1,000 veces más de ancho de banda, un mucho mejor procesador y una swap que corre directo de un SSD de 20GB (al mismo tiempo que nos ahorramos una cantidad enorme de dinero) no es para nada una mala idea, de veras, para nada.

En cuanto a la oferta de S.O. disponibles, Amazon "gana por goleada" al tener no sólo un buen puñado de distros linux para elegir, sino también sistemas comerciales como Windows Server, RHEL y SUSE Linux. Sin embargo, aquí es cosa de cada quien y personalmente mientras pueda montar un VPS con las distros que DigitalOcean ofrece me doy por bien servido... RHEL que sería realmente la única opción "faltante" dentro de DigitalOcean se puede reemplazar de una manera completamente seamless por un setup de CentOS, y con eso resuelto el resto es historia ¿Qué opinan ustedes?:



Facilidad de Uso/Setup


DigitalOcean se jacta de permitirte hacer un deployment en 55 segundos o menos. Y es verdad. Su interfaz es sencilla, limpia y muy intuitiva, cualquiera puede entenderla y utilizarla además de que tiene cosas especiales como la Consola VNC directa dentro del navegador, gráficas de uso, etc etc etc. Todo lo que esperarías de un centro de control para administrar servidores remotos sin llegar a amedrentarte. Un par de clicks, dos que tres tecleos y en menos de un minuto, tienes acceso root vía SSH a tu VPS. Ya de ahí tu tienes que configurar las cosas como mejor te plazca (aunque también tienes la opción de elegir imágenes pre-configuradas como "MEAN Stack bajo Ubuntu 12.04.x" y similares al momento de crear tu droplet para ahorrarte trabajo (y recursos inmediatos del VPS).

NOTA: Fuera de "lo básico" DigitalOcean tiene también añadidos y/o soporte para cosas del tipo de DNS personalizados (en un panel especial), un API y un Programa de Referidos además de características como VirtIO (mejoras "automágicas" para la carga de la banda ancha) Private Networking y un sistema de backups/snapshots.

La consola de control de Amazon por otro lado, es demasiado complicada, tiene demasiadas features y claramente está más enfocada a gente que sabe lo que hace que a un usuario despistado con la curiosidad de manejar un VPS. Sin embargo una vez que le agarras el modo, el dashboard de Amazon es bastante potente, aunque a veces redundante; Un ejemplo de esto es el desbloqueo de puertos: En AWS no solo tienes que desbloquear los puertos que quieras acceder en el firewall de tu VPS en turno, sino que también debes hacerlo en un apartado especial para "grupos de seguridad" dentro del dashboard de Amazon. En lo personal encuentro "repetitivo" este proceso.

Por otro lado, el dashboard de AWS está hecho para que actives características que te cuesten más dinero al final del mes, sin que te des cuenta (LOL! xD)... Simplemente están ahí, útiles y atrayentes, a un click de distancia. Eso habla bien de cuán fundamentado está el negocio de Amazon Web Services como plataforma a través de su web, pero al usuario promedio le puede sacar una sorpresa no tan agradable a la hora de tener que pagar lo que usó a veces incluso sin querer.

Un punto a favor de AWS en cuanto a este apartado (facilidad de uso) es que aleja la dificultad de "entender el dashboard" mediante las imágenes lanzables que puedes encontrar en vínculos especiales como en esta página del Proyecto Fedora, mismas que con un click te permiten lanzar una instancia AWS en un pestañeo sin fijarte qué fue lo que pasó jajajaja. Eso está muy bueno, sin embargo cuestiones como el acceso SSH y demás agregan tedio durante el proceso al tener que crear claves de acceso, tokens para el API de AWS y luego tener que activarlas en tu PC y en Amazon para poder, ahora sí, usar el VPS directamente.

Soporte

Ambos servicios tienen buen soporte técnico y contestan rápido las cosas de manera atenta y eficaz. Con AWS tuve una excelente experiencia cuando (hace 1 o 2 meses atrás) mi free tier expiró sin que yo supiera ésto, expuse mi desconcierto ante el personal de Amazon y de manera muy cortés, le hicieron un "borrón y cuenta nueva" a la invoice además de regalarme un cupón de $50 USD que entró automáticamente en vigor dentro de mi cuenta y se encargó de mis gastos durante los ~2 meses a partir de dicha expiración (se acabó en ese periodo, pues AWS es caro jajajajaa); De no ser por la situación que tengo con el banco ahorita, debido a esta experiencia con el soporte de AWS definitivamente seguiría usando su servicio sin haberme puesto a ver alternativas, lo cual me parece que hubiera sido un error (¡Gracias dios por mostrarme DigitalOcean! jajajajaa), de verdad que "por algo pasan las cosas".

DigitalOcean por otro lado, luce por su soporte comunitario. Personalmente, el mayor contacto que he tenido con el soporte de DigitalOcean ha sido de ANTES de ingresar al servicio, por medio de blog posts que ponen los usuarios para la comunidad en internet dando instrucciones sobre setups, configuraciones específicas y demás cosas por el estilo... Realmente tienen un buen compendio de tutoriales y personalmente hallo a estos más valiosos que el soporte directo estilo HelpDesk de AWS.

Conclusiones

Todo lo que podría decir yo que concluyo de mi research sobre el tema en turno está bastante bien explicado en esta corta presentación que me encontré por ahí navegando en Slideshare, vale la pena darle una leída rápida:


Y pues bueno, ningún review de proveedores VPS está completo sin benchmarks, ¿verdad? Personalmente no hice ninguno porque A) Ya cancelé mi cuenta de AWS y B) El uso que yo les doy a los VPS no vale para eso... Sin embargo acá tienen otro genial artículo sobre el tema con coloridas gráficas de benchmarks y demás.

Finalmente... ¿Qué esperas?



¡Móntate un VPS con DigitalOcean ahora mismo!

P.D. Personalmente la moraleja que aprendí de toda esta situación es que no por ser el más popular, X servicio es el mejor... En México lo vivimos directamente con monopolios como los que arman las empresas como Telmex/Telcel ofreciendo servicios malos a precios altos y "saliéndose con la suya" por la popularidad que se hicieron a base de "llegar primero". ¡Hay que informarse BIEN siempre antes de hacer una decisión de compra! y pues... ya saben, Mucho Ojo jajaja, Saludos cordiales.