Hola a todos.
Esta semana ha sido un pequeño via crucis para ibergour, debido a la
caída del datacenter de ThePlanet donde está albergado nuestro
servidor:
http://tech.slashdot.org/article.pl?sid=08/06/01/1715247
En este momento nuestro servidor "vive" gracias a una serie de
generadores eléctricos de gasoil que los de ThePlanet han puesto como
medida provisional hasta que reparen los destrozos de la explosión
(sí, sí, explosión) que destrozó la instalación eléctrica del lugar.
En fin... a pesar de que no entraba para nada en nuestros planes,
hemos decidido buscar una alternativa de hosting que nos permita
minimizar el impacto de una incidencia de este tipo. Esta semana hemos
estado 3 días sin servicio (y no me extrañaría que todavía tuviésemos
más problemas), y no quiero ni pensar qué habría pasado si esto llega
a ocurrir en plena campaña de navidades.
Me gustaría comentaros nuestras necesidades, las soluciones que estoy
barajando, y leer vuestros comentarios y recomendaciones al respecto.
Nuestras necesidades:
* Tenemos muy poquito tráfico; entre los diferentes sites sumamos unas
50.000 páginas vistas/mes, para un tráfico entrante de 1GB/mes y
saliente de 6GB/mes aprox.
* Desde febrero de 2006, todos los servicios (BD, web, mail...) se
gestionan con un único servidor: un Celeron 1.3 ghz, 512 MB RAM, 60 GB
7200RPM IDE. Una carraca, pero para nuestras necesidades ya chuta la
mar de bien. Nos cuesta $99/mes.
Solución que barajo:
Creo que no tiene sentido que nos pongamos ahora a diseñar una
arquitecura de alta disponibilidad con servidores redundantes ni
historias de esas. Tenemos cosas más urgentes que hacer desde el punto
de vista de negocio. En ese sentido, simplemente me gustaria poder
replicar lo que ya tenemos en una plataforma en la que si un día
nuestro servidor es fulminado, poder montar una réplica del mismo de
forma fácil, y estar operativos lo antes posible.
He estado mirando la infraestructura EC2 de Amazon, y me parece que
puede ser una solución interesante. A priori me parecía algo overkill
para ibergour (esto del EC2 yo lo tenía en mente como algo más bien
pensado para aplicaciones con unas necesidades de escalabilidad
importantes), pero el tema de poder tener una "imagen" de toda tu
máquina almacenada en S3 que en un momento dado puedes poner en
marcha, cargar con tus datos y resucitar, me parece algo realmente muy
potente. Además cualquier día de estos parece que se pondrá en marcha
el servicio de persistencia de datos (si no lo está ya), con lo que ya
mejor que mejor...
Haciendo unos cálculos rápidos con la calculadora de tarifas de AWS
(
http://calculator.s3.amazonaws.com/calc5.html ) parece que incluso
podemos ahorrarnos unas pelillas (me sale un coste aprox. de $75/mes
usando una máquina "Small Instance", que ya es bastante más potente
que lo que tenemos ahora).
Después de investigar un poco, he visto algunas cosas de EC2 que son
un tanto problemáticas:
* Gestión de DNSs : el tema de que cada nueva instancia recibe una
nueva IP pública complica la gestión de DNSs en el caso de que por lo
que sea la instancia caiga y haya que reinstanciarla (por cierto, para
los que tengan experiencia en EC2... ¿esto ocurre mucho?)
* Envío de mails : la misma problemática de las IPs hace que te puede
tocar una IP que haya sido utilizada anteriormente para espamear.
Esto, o simplemente el hecho de que la IP pertenezca a un rango de IPs
dinámico hace que el mail enviado por tu máquina tenga muchos números
de ser marcado como SPAM por los servidores de sus destinatarios.
* El tema de la volatilidad de los datos. Esto en realidad no me
parece un problema muy grave... ya tenemos una política de backups
montada, y no tendríamos que hacer nada especial al respecto,
simplemente algun script o algo que nos ayudase a cargar datos de un
backup en una nueva instancia.
Para el tema de los DNSs, parece que hay 2 soluciones típicas: o bien
usar una IP elástica, o bien usar un servicio de DNS dinámico como
dynds.org o
easydns.com , tal y como indican estos artículos:
http://spattendesign.com/2007/10/10/updating-dynamic-dns-on-amazon-ec2
http://blog.codesta.com/codesta_weblog/2008/02/amazon-ec2---wh.html
En cualquier caso, desde el punto de vista de garantizar la tolerancia
a catástrofes de un servicio tan fundamental como los DNSs, ¿donde
creéis que sería mejor albergar el servicio de DNS de nuestros
dominios? ¿Alguna experiencia al respecto?
Para resolver el tema del mail, las soluciones que barajo son:
* Para el correo saliente automático (los mails que envía nuestra
aplicación hacia el exterior), usar un servicio de relay hacia un
gateway como
authsmtp.com
http://pauldowman.com/2008/02/17/smtp-mail-from-ec2-web-server-setup/
, o si al final usamos dyndns o easydns para el tema de los DNSs, ya
puestos podríamos usar también sus respectivos servicios de gateway
SMTP:
http://www.dyndns.com/services/mailhop/outbound.html
http://support.easydns.com/outbound_smtp.php
* Para el correo entrante, quizás usar los servicios de mail de Google
Apps, y va que chuta.
Bueno, disculpad por el rollo, pero antes de dar el paso quería tirar
un poco de vuestro expertise. Si creéis que se me va la olla con la
solución, si se me están pasando cosas que pueden darme problemas, o
tenéis sugerencias o advertencias de cualquier otro tipo, toda
aportación será bienvenida.
Gracias por todo. May the ham be with you.
Jose