Para estrenar la categoría de Lanzamiento voy a hablar como usamos Amazon EC2 en 3sellers. EC2 es un servicio de Amazon que ofrece un acceso barato y rápido a una gama amplia de servidores. A través de una simple interfaz se puede arrancar nuevas instancias (una instancia es simplemente otro nombre para servidor), parar instancias o informarse sobre el estado de una instancia. Una ventaja importante es que Amazon cobra por hora usada, es decir que solo pagamos lo que realmente estamos usando. Este modelo de pago nos viene muy bien a la hora de probar nuevas versiones. Podemos instalar una nueva versión de 3sellers en un entorno igual al entorno de producción pagando solo el tiempo que estamos usando esta instancia de prueba.

Tipos de instancias

EC2 ofrece diferentes tipos de instancias, con diferentes velocidades de CPU y diferentes cantidades de memoria RAM y disco duro. Para una aplicación Rails sencilla y sin demasiado tráfico la versión mas barata (Small Instance, $0.10/hora) es mas que suficiente. Cuando la aplicación crece, siempre es posible cambiar a una versión mas rápida. En este caso se recomienda cambiar a una versión con un procesador mas potente, por ejemplo la High-CPU Medium Instance por $0.20/hora.

Diferencias al hosting tradicional

Aunque con un servidor alquilado de la manera tradicional también es esencial hacer copias de seguridad frecuentemente, usando EC2 esto es aún mas importante. Amazon deja bien claro que, como no usan servidores normales sino ordenadores hechos de piezas corriente, es posible que una instancia se cuelga sin aviso, ya que estas piezas tienen una vida media mas baja. Sin un plan de backup podríamos perder todos los datos guardados en la instancia. La ventaja es que esto nos obliga del primer momento a pensar en una buena estrategia de backup. Amazon ofrece varios servicios como EBS y S3 para facilitar un backup rápido y sencillo y voy a hablar en uno de los próximos artículos sobre posibles estrategias.

Una ventaja clara con respeto al hosting tradicional es que, si nuestra aplicación lo soporta, podemos aumentar el numero de servidores durante tiempos de mucha carga, y solo pagar mas durante este tiempo. Hay ya varias aplicaciones web que usan un modelo parecido.

¿Como empezar?

Usar EC2 se parece un poco a construir tu propio PC de piezas individuales en vez de comprarlo listo para usar en el supermercado de la esquina. Hay muchas posibilidades de sacar mejor rendimiento y pagar menos, pero igual es muy fácil gastar mucho tiempo hasta que todo funcione bien o hacer un error que luego puede costar caro.

Para facilitar empezar a usar EC2 existen varias librerías hechos adrede para el uso con Rails. Una de las librerías mas fáciles es EC2 on Rails de Paul Dowman. Literalmente es cuestión de minutos hasta que tu aplicación Rails esté funcionando en EC2. Como está pensado para los primeros pasos con EC2 incluye también programas para el backup de la BBDD, algo que la mayoría de las otras librerías no tienen. En otro artículo voy a explicar como usar y modificar EC2 on Rails para adaptarlo mejor a cualquier aplicación.

Nuestra experiencia

En Axtro estamos usando EC2 desde casi un año. En general estamos bastante contentos. Comparado con nuestro hosting antiguo es mas rápido y al mismo tiempo mas barato. Hasta ahora tampoco hemos tenido problemas con nuestra instancia. Funciona igual de bien como el primer día. Sin embargo, en el caso de un fallo del servidor podríamos montar otro en minutos. Para estar informado sobre futuros periodos de mantenimiento por parte de Amazon o posibles problemas generales del servicio recomiendo suscribirse al AWS Service Health Dashboard donde Amazon publica avisos sobre la "salud" de EC2.