Desplegando servidores en la nube para servicios y sitios de alta disponibilidad
By: Date: junio 25, 2015 Categories: Consultoria y Manuales,Personal

El 24 de Junio del 2015 en la cueva del dragón recibí un ataque DDoS, un sencillo ataque de múltiples conexiones pero lo suficientemente fuerte como para requerir más de un servidor para sobrevivirlo y de esto tratar este artículo. Pude haberlo solucionado de otra forma sin embargo me dio la oportunidad de hacer el laboratorio de despliegues de máquinas pero esta vez en la nube

Servidores de alta disponibilidad gracias a las nuevas bondades que da la “ nube “ antes yo ya había hecho esto incluso debo tener artículos similares, sin embargo este lo escribo como una actualización de los nuevos tiempos ya que esta misma solución en años anteriores era costosa porque involucraba comprar hardware, tener enlaces de internet, estas 2 ultimas cosas hacen carísimo tener un sitio que sobreviva a ataques DDoS

Para sobrevivir a un ataque DDoS tienes que tener más infraestructura que tu atacante, esto significa que debes tener muchos servidores para repartir la carga, pero estos servidores deben estar sincronizados, es decir. Las aplicaciones WEB que despachan deben ser las mismas, si en alguno se hace alguna modificación, la modificación debe ocurrir en tiempo real en todos, incluyendo las bases de datos.

¿ Que tiene de nuevo la nube para tener alta disponibilidad ?

Las nubes actuales venden tiempo de procesador y lo venden por hora, es decir puedes tener 50 máquinas virtuales en datacenters como el de Azure y solo se paga por el tiempo que las maquinas estas dando servicio, si se le apaga o se borran se deja de cobrar, en caso de un ataque lo único que hay que hacer es ir poniendo maquinas en diferentes regiones del mundo donde hay datacenter para ir sobre llevando el ataque, cuando el ataque termina, las maquinas excedentes se apagan y los costos operativos bajan de inmediato

¿ Que configuraciones pueden servir ?

En el caso de la cueva del dragón, la información realmente la tengo en mi casa conectada internet con un infinitum en una maquina sencilla, esta máquina sencilla tiene conexiones de VPN con cifrado alto y se conecta a las maquinas que tengo en los datacenters. Esta máquina donde está realmente la información es anónima, su ip nunca está expuesta las únicas ips que los clientes y por lo tanto los atacantes conocen son las de las maquinas en los datacenter. La VPN me sirve para transferir servicios de NETBIOS con Samba, NFS, GFS o cualquier otro según el servidor que hay en el datacenter. Así es como exporto el sistema de archivos desde mi casa hasta los datacenter , así es como todos ellos tienen la misma información que tengo en mi disco duro en mi servidor personal, de la misma forma en este servidor tengo las bases de datos que puedo exportar por base de datos distribuidas.

Tanto los archivos como las bases de datos al estar distribuidas contienen la misma información en cada servidor que tenga en algún datacenter, si alguien escribe un comentario en algún artículo, este hace un insert en su base de datos local que a su vez por medio la VPN es replicada a mi base de datos en mi casa y de ahí replicada a los demás sitios, en menos de un segundo todos los servidores actualizan su registro

Este tipo de configuración puede ser muy útil cuando se despliegan páginas como las del PREP que serán consultadas por miles de personas simultáneamente, si de pronto la carga es demasiada para sostenerla, simplemente se activan más servidores en los datacenter. En un par de minutos se puede levantar el siguiente servidor, porque no hay que copiar nada en él, todos los archivos incluidos los de la configuración le llegan por los sistemas de archivos distribuidos.

BizSpark
Ver mas grande

¿ La nube de quien usar ?

En este momento he probado las de Linode y las de Azure

Lo bueno de linode

Las maquinas se ejecutan muy rápido, no se requiere abrir puertos en los ENDPOINTS para poner un servicio a Internet y hasta el momento el costo por hora es más económico que Azure

Lo malo de linode

Aunque la maquina este apagada sigue cobrando horas de uso, la única forma de detener el cobro de horas de uso es borrando totalmente la máquina virtual, esto es un problema porque la próxima vez que se despliegue una nueva se tendrá que instalar todo el software de nuevo, esto se puede solucionar con script que automaticen el despliegue de máquinas, sin embargo es obvio que toma más tiempo desplegar una maquina en estas condiciones

Lo bueno de Azure

Las maquinas pueden ser apagadas desde el portal de Azure dejando de cobrar las horas de uso y esta guarda toda la configuración y aplicaciones instaladas quedando listas para ser desplegadas con solo arrancar la maquina virtual.

Lo malo de Azure

Cada que se levanta un servicio a internet se deben abrir específicamente los puertos necesarios en los ENDPOINTS o EXTREMOS del panel de Azure, cada apertura toma aproximadamente 1 minuto por lo que si tienes que abrir 10 te quedaras sentado 10 minutos a la espera de que se procese tu solicitud de apertura de puerto, esto no sería un problema si no fuera porque el panel se bloquea y no te deja abrir más que uno a la vez así que estarás obligado a abrir de uno en uno a la vez, otro punto malo para Azure es que las maquinas GNU/Linux se ejecutan un poco más lentas de lo que se ejecutan en linode, cualquiera pensaría que siendo Azure de Microsoft tendrían más recursos al desplegar maquinas con GNU/Linux. Tal vez si y es Microsoft quien decide que se ejecuten a esa velocidad inferior especialmente en los tiempos de escritura en el disco duro virtual.

3 thoughts on “Desplegando servidores en la nube para servicios y sitios de alta disponibilidad

  1. Safari 600.6.3 Mac OS X 10.10.3

    Esos problemas que mencionas no se presentan en AWS, personalmente veo y he tenido la experiencia que AWS es mucho mejor que Linode y Azure.

  2. Google Chrome 43.0.2357.93 Android 4.4.2

    Has probado las máquinas de runabove? Yo las utilizó para balancear la carga de servidores pero con dnsonly en cpanel, y a mi parecer son muy buenas y no es muy caro el servicio, además que en casos como este se puede utilizar su api para montar automáticamente las máquinas

Deja un comentario

Tu dirección de correo electrónico no será publicada.