Emezeta.com

DigitalOcean: Guía para alojar tu web en un servidor VPS


Desde hace algunos años, que probé por primera vez el servicio de Digital Ocean, me encantó su enfoque y filosofía, además de estar claramente orientado a un sector específico: los desarrolladores. Aunque no me iba mal con MediaTemple, hace poco decidí hacer una migración a DigitalOcean, y aprovechar para modernizar, “tunear” la infraestructura, reducir costes y pasarme a este flexible y estupendo proveedor.

Como viene siendo costumbre, también he decidido aprovechar la ocasión y contar un poco su funcionamiento, para que todo aquel que quiera alojar su sitio en él, pueda conocer sus posibilidades y las cosas que ofrece.

Servidor VPS con DigitalOcean

Antes de nada, decir que DigitalOcean es un estupendo servicio que me encanta personalmente, ya que está muy ligado al mundo de GNU/Linux y de la administración de sistemas. Además, es una de las compañías de «Cloud Hosting» que ha experimentado un gran crecimiento en los últimos años.

Existen otros servicios como por ejemplo AWS, de Amazon o Azure, de Microsoft, que están destinados a implementaciones más complejas, pero personalmente he preferido DigitalOcean por varias razones:

  • Precio: Para proyectos pequeños, Digital Ocean tiene un precio muy asequible. El servicio mínimo (servidor VPS) cuesta aproximadamente unos 5$ al mes.
  • Experiencia de usuario: El interfaz y los paneles de DigitalOcean son extremadamente agradables y sencillos. Hacer cualquier cosa es una delicia. Tienen un UX muy cuidado, y aunque no conozcas sus opciones tardas pocos segundos en acostumbrarte. AWS por ejemplo, es horrible en este aspecto.
  • Base de conocimiento: DigitalOcean tiene una amplia base de datos donde ofrecen guías e información para personalizar, instalar o hacer prácticamente cualquier cosa en tu servidor.
  • Paypal: DigitalOcean, al contrario que muchos otros servicios, ofrece la posibilidad de realizar pagos mediante Paypal.

Pero no son las únicas características interesantes, así que vamos a comenzar esta guía donde explicaré lo más detalladamente posible, los pasos a seguir para crearte tu propio servidor.

1. Crear cuenta de DigitalOcean (con 10$ iniciales)

El primer paso, obviamente, es crearnos una cuenta de DigitalOcean. Si utilizas el enlace anterior, accederás desde mi código y comenzarás con 10$ en tu cuenta, justo lo necesario para utilizar el plan básico durante 2 meses de forma gratuita y saber si te gusta para continuar utilizándolo.

Si eres estudiante y puedes demostrarlo de alguna forma (e-mail institucional, tarjeta de estudiante o similar), puedes acogerte al pack de GitHub para estudiantes que incluye 50$ en DigitalOcean, entre muchas otras cosas y otros servicios.

2. Facturación

Una vez registrado, tenemos una cuenta vacía que aún no tiene ningún servidor. Pero antes de crearlo, veamos como funciona todo lo relativo a las facturas y pagos en nuestra cuenta. En la esquina superior derecha, accedemos al menú Settings / Billing, donde podemos ver todos los aspectos de facturación.

Planes mensuales/horarios de DigitalOcean

En DigitalOcean no se nos cobra por uso de nuestra cuenta, ni una cantidad fija al mes, sino que se nos cobra por hora de uso de nuestros servidores. Esto nos da una serie de ventajas:

  • El servidor más básico cuesta 0,007$/h. Esto es igual a 0,007$x24h = 0,168$/día, lo que implica 0,168$x30días = 5,04$/mes.

  • Si estamos haciendo pruebas de desarrollo o necesitamos el servidor sólo en momentos especiales (no suele ser lo más común, pero puede suceder), podemos apagar nuestro servidor y hacer un snapshot. En ese caso, la tarifa se reduce a 0.05$ por GB al mes, lo que puede reducir bastante la cuota mensual a pagar.

  • Si por alguna razón nuestro servidor no estuviera disponible o hubiera algún problema, no nos cobrarían por ese servicio no brindado. En status.digitalocean.com van informando de los problemas en sus sistemas.

  • Podemos crear múltiples servidores dentro de nuestra cuenta (se cobraría por cada uno de ellos), pero el proceso de alta no se cobra. Si creamos un servidor básico y lo usamos sólo durante una hora, se nos cobraría sólo 0,007$.

DigitalOcean acepta tarjeta VISA, MasterCard, American Express, Discover y Paypal. En el resto del panel Billing puedes encontrar opciones como ver el consumo mensual actual, facturas o incluso crear alertas para que te envíen un correo si excedes de una cierta cantidad al mes.

Como curiosidad, DigitalOcean es de los pocos servicios extranjeros que he probado que ya tienen contemplado que en Canarias no se aplican los «VAT taxes». Punto a favor.

3. Características del droplet (nuevo servidor)

DigitalOcean llama a los servidores Droplets (gotitas) y su sistema de creación es realmente sencillo. Si nos fijamos en el menú principal superior, tenemos varias opciones: Droplets, Images, Networking, etc… Nos centraremos en el primero de ellos, Droplets, que es la sección donde nos aparecerán todos los servidores que tenemos en nuestra cuenta. Como ahora está vacía, vamos a la derecha, al botón Create Droplet y comenzamos.

El primer paso será elegir una distribución para nuestro servidor. Con el tiempo, Digital Ocean va añadiendo nuevos sistemas, pero de momento, podemos elegir entre Ubuntu, FreeBSD, Fedora, Debian, CoreOS y CentOS.

Distribuciones de Linux (y otras) en Digital Ocean

One-click Apps (Modo fácil)

Si no nos queremos detener en la distribución específica a montar, nos parece muy complejo o simplemente queremos probar un software concreto (Wordpress, Drupal, Joomla, Ghost, Drone, Magento, MediaWiki, etc…), podemos pulsar en el apartado One-click apps, el cuál nos permitirá crear un servidor nuevo que ya tiene el sistema preinstalado:

One-click apps

Hay aplicaciones web bastante interesantes, desde los clásicos WordPress, Drupal o Joomla, a los nuevos e interesantes Ghost o Drone (blogs/webs), wikis MediaWiki, foros Discourse, e-commerce Magento, stacks LAMP, LEMP o MEAN, entre muchos otros.

4. Elegir Plan (Recursos del servidor)

Una vez elegido lo que queremos instalar, debemos elegir los recursos de nuestro servidor. Esta siempre es una elección compleja, que depende de lo que usamos, el tráfico que tengamos, etc. Sin embargo, Digital Ocean es escalable verticalmente, por lo que en cualquier momento, podemos cambiar de plan sin tener que volver a crear otro diferente, lo que lo hace muy flexible.

Observa que cada plan tiene unos recursos específicos fijados. El plan básico tiene 512MB de RAM, 20GB de disco (tipo SSD) y una transferencia de 1TB:

Planes de Digital Ocean

Notar también que para casos especiales, existe una sección de servidores con altas capacidades de memoria, donde aumentan las características (y lógicamente, el precio).

5. Región y volúmenes de almacenamiento

En esta sección se nos da a elegir la región (datacenter) donde estará ubicado nuestro servidor. Esta opción se suele escoger por temas de latencia (si nuestro público mayoritario es español, un datacenter geográficamente cerca de España suele ser la mejor opción), ya que será más rápido. También se suele escoger por temas legales (LOPD o protección de datos, etc…), debido a los datos que se van a guardar en él.

Regiones: Digital Ocean

Si tenemos dudas, desde su página principal podemos hacer tests de velocidad en los diferentes datacenters y comprobar cuál nos interesaría más si nuestro público mayoritario es de la misma localización que nosotros. Además, también debemos fijarnos en el apartado Volúmenes de almacenamiento, con el cuál podemos añadir bloques extra de espacio en disco por si tenemos requisitos especiales y necesitamos más (pero no queremos subir a un plan superior). Dichos volúmenes tienen un precio de 1$/mes por cada 10GB extra.

Regiones y volúmenes de almacenamiento

Ojo: Es muy importante tener en cuenta que si necesitamos volúmenes de almacenamiento, dicha opción sólo está disponible en los datacenters NYC1 (New York 1), FRA1 (Frankfurt 1) y SFO2 (San Francisco 2), por lo que si vamos a utilizarlos hay que elegir una de estas regiones.

6. Crear droplet

Existen otras opciones como dotar de redes privadas entre droplets, soporte de IPv6, usar Cloud-Init, u otros detalles como monitorización, claves SSH o backups, de los que hablaremos más tarde.

Una vez realizados los pasos anteriores, sólo tenemos que pulsar el botón Create para iniciar la creación de nuestro Droplet (¡en menos de 50 segundos lo tendremos listo para utilizar!). Previamente, le daremos un nombre (e incluso etiquetas) para encontrarlo rápidamente en nuestro panel.

Creando un droplet en DigitalOcean

DigitalOcean también da la posibilidad de crear múltiples droplets simultáneamente con la misma configuración elegida en los pasos anteriores.

Una vez terminado el proceso, en el menú Droplets nos aparecerá el que acabamos de crear, junto a la IP asignada (que si elegimos una one-click app ya mismo sería accesible). En la parte derecha (more), tenemos varias opciones donde podemos asignarle un dominio junto a otras operaciones de mantenimiento o configuración.

7. Escalabilidad vertical

Digital Ocean ofrece un escalado vertical que puede realizarse sobre la CPU+RAM del droplet, o sobre la CPU+RAM+Disco del droplet. El escalado que incluye el disco es irreversible hacia detrás, por lo que se recomienda sólo realizar este tipo de escalado si estamos seguros de no querer volver a un plan anterior.

Servidores escalables con Digital Ocean

Si eres un usuario avanzado, incluso puedes crear tu propio servidor escalable con DOProxy, que se adapte automáticamente a las necesidades de tu aplicación o proyecto web.

8. Seguridad

Otro de los puntos fuertes interesantes de Digital Ocean son las facilidades respecto a seguridad que ofrece desde tu menú Settings / Security. No sólo podemos securizar el acceso a nuestros servidores mediante claves SSH, sino que también lo podemos hacer sobre nuestra propia cuenta de Digital Ocean mediante doble factor de autenticación.

La autenticación en dos pasos (o doble factor de autenticación) es un proceso en el que, para acceder a un sistema, en vez de depender sólo de la contraseña (que se puede perder) añades otro factor de autenticación, como puede ser un mensaje SMS al móvil o un programa como Google Authenticator, que genera códigos con caducidad de 30 segundos, aumentando considerablemente la seguridad del sistema.

Si te interesa, también puedes aplicar un doble factor de autenticación a la conexión SSH utilizando Google PAM, volviendo la conexión más segura y blindándola contra ataques.

9. Monitorización del servidor

Digital Ocean dispone de do-agent un agente que recopila los datos de uso del servidor y te los muestra desde el panel de control en forma de gráficas. De esta forma, es muy sencillo saber si tu droplet está consumiendo demasiada memoria RAM, proceso de CPU, disco duro o ancho de banda. También te muestra una pequeña lista de los procesos que más CPU/RAM consumen.

Digital Ocean: Monitoring

Además, en el momento de escribir estas líneas, tienen en beta privada un sistema de alertas de monitorización que te permite ser avisado en cuanto tu droplet supere o baje de unos ciertos valores (alto uso de RAM, alto uso de CPU, alto uso de ancho de banda, poco espacio en disco libre, etc…) durante un cierto tiempo (minutos, horas, días…). El sistema permite avisarte por email o incluso notificarse por Slack, para asociarlo con equipos de trabajo.

Sistema de monitorización de Digital Ocean

Recuerda siempre que estos sistemas son lo que puedes elegir tener de serie en tu cuenta (marcando la casilla Monitoring en la creación de tu droplet), pero siempre puedes optar a instalar sistemas más avanzados como por ejemplo, NetData.

10. Copias de seguridad

Digital Ocean ofrece dos sistemas diferentes para realizar copias de seguridad:

  • Por un lado tenemos los snapshots (instantáneas). Estas copias de seguridad se pueden realizar de forma manual y se cobran mensualmente respecto al tamaño que ocupan. Su precio es de 0.05$/GB al mes. Una vez hecho, se almacenan en un lugar diferente del droplet en cuestión y se puede crear otro droplet a partir de él o restaurar el propio droplet desde él.

  • Por otro lado tenemos los backups. Estas copias de seguridad se pueden activar y se realizan de forma automatizada, cada semana. Su precio es del 20% de tu droplet, de modo que si tienes un droplet básico de 5$/mes, el precio de tener los backups activos sería de 1$/mes. Los backups automatizados se realizarían una vez en semana y una vez hechos permanecen en tu cuenta durante 4 semanas. También puedes crear otro droplet o restaurar desde el snapshot o si quieres conservarlo durante más tiempo en tu cuenta, convertirlo a un snapshot.

Ojo: Recuerda que los añadidos que escojas (backups, snapshots, volúmenes de almacenamiento…) se van añadiendo al precio del droplet. Por ejemplo, un droplet con el plan básico (5$), con backups activados tendría un precio total de 6$/mes.

Y básicamente, esta es la parte más importante que hay que conocer de Digital Ocean.

Obviamente, recuerda que al crear un droplet, lo que tienes es un servidor basado en GNU/Linux, al que puedes acceder mediante SSH con PuTTY (o el cliente de tu elección) y personalizar el sistema completamente a tu gusto, desde una terminal de GNU/Linux, como preferimos los más geeks ;-)