Cuando desarrollamos una aplicación web que tiene proyección de convertirse en un proyecto grande a largo plazo siempre nos surgen una serie de preguntas que deberíamos de tener resueltas antes de poner nada en funcionamiento:

  • ¿Cuántos recursos necesito para ejecutar la aplicación?
  • ¿Qué servidor dedicado contrato?
  • ¿Se quedará corto y se caerá el servicio enseguida o por lo contrario me sobrará servidor por todas partes y estaré pagando un dinero extra de forma inútil?
  • Cuando el servidor tienda a quedarse pequeño ¿Cuánto tiempo voy a tardar en montar otro servidor y balancear la carga?
Este tipo de preguntas no son nada fáciles de responder a priori. Si nuestro servidor se satura la experiencia del usuario será muy mala y conllevará una mala imagen y un menor uso por parte de los usuarios, pudiendo hacer hasta que la aplicación fracase rotundamente.

Amazon AWS

Una solución a este tipo de problemas sería usar Amazon EC2 (Elastic Cloud Computing). Se trata de un servicio de Amazon en el cual tú contratas instancias de servidores dedicados, que no son más que máquinas virtuales, en función de tus necesidades. Hay varios tipos de instancias en función del uso que se le vaya a dar, instancias pequeñas para empezar y luego instancias que tienen mucha CPU (orientadas a ser servidores web) y/o instancias con mucha RAM (orientadas a alojar servidores de bases de datos).

El hecho de usar máquinas virtuales nos proporciona muchas ventajas. Podemos partir de una imagen base de una instalación de Linux y a partir de ahí configurarla a medida como queramos y guardarla como un modelo de instancia a usar en adelante. Cuando necesitemos un servidor nuevo lo único que tendremos que hacer es solicitar una nueva instancia y ejecutar ahí nuestra imagen personalizada (es un proceso que dura pocos minutos). Esta versatilidad nos permite ir añadiendo servidores o quitando en función de nuestras necesidades, de esta manera el gasto va acorde también al uso que requiera en cada momento nuestra aplicación. Es posible también automatizar este proceso mediante un script que controle el uso de recursos medio en nuestro conjunto de servidores, y que añada o quite servidores en función de la carga media total.

El precio de Amazon EC2 va en función del tiempo que tenemos en funcionamiento una instancia, del tipo de instancia, del uso de espacio en discos EBS (es un tipo de espacio en disco que nos proporciona Amazon ya que el disco de las instancias es volátil) y de la cantidad de datos transferidos.

Un ejemplo real en el que se usa Amazon EC2 es el caso del agregador de noticias Menéame, Ricardo Galli en su blog relata cómo tienen montada toda la arquitectura de red en EC2.

En resumen podemos decir que EC2 es una buena alternativa para montar nuestras aplicaciones web "en la nube", ya que nos permite escalar recursos de acuerdo a nuestras necesitades.



blog comments powered by Disqus

Published

2010-10-27

Categories


Tags