« Yo apoyo a Dinamarca | Main | Xing adquiere eConozco »

Betatesting Amazon EC2: Elastic compute cloud

Ec2

(See english post here)

Ayer nos llegó una beta para EC2, el nuevo servicio de Amazon para servidores virtuales integrado en su servicio de S3.

Cuando oí por primera vez de que iba, rápidamente pensé en esos lentos y poco productivos servidores virtuales, que no haces otra cosa que batallar por los recursos entre los demás usuarios de la maquina virtual. Pero, ya que habíamos sido de los pocos elegidos, decidí hecharle un vistazo, a fin de cuentas el servicio de S3 es impecable, y si Amazon decide sacar un servicio así es por que está orgulloso de él.

¿Cómo funciona?

Básicamente han unido algo parecido a UML con un repositorio de imágenes guardadas en S3. Mediante un conjunto de herramientas puede ordenar el inicio de una máquina virtual con una de las imágenes que tengas en tu repositorio, y en poco menos de un minuto tu máquina se ha “instanciado”, tiene una IP pública y puedes acceder a ella mediante SSH. Por cada hora (o fracción) que tengas una instancia encendida, has de pagar 0.10$, lo cual hace que cada servidor nos cuesta entre 70 y 75 dólares dependiendo del mes.

¿Que tipo de imágenes se pueden cargar?

Pues en principio cualquier imagen que sea compatible con el núcleo de Linux 2.6, aunque ellos sólo soportan Redhat Fedora 3 y 4. Como ya me acostumbré a Debian y cualquier otra cosa me cansa rápidamente, me puse manos a la obra para hacer una imagen de Debian usando debootstrap … Lo cierto es que fue un rotundo fracaso además de una pérdida de tiempo enorme: generar la imagen, instalar todo lo que quería instalar, comprimirlo, y enviarlo. Y acabé haciendo una copia de las imágenes públicas existentes de prueba.

¿Es permanente la información que guardemos en el servidor?

Pues la respuesta es tristemente: No. Si la instancia se termina, todo lo que haya en el servidor se perderá y solo se recuperará la imagen inicial con la que arrancó el servidor. Toda nuestra base de datos, logs y configuraciones se perderán. Es por eso que tenemos a nuestra disposición herramientas de backup muy muy útiles, que, sacando partida a la velocidad y agilidad de S3, se convierte en una tarea muy simple.

Es por este motivo que es casi OBLIGADO hacer un sistema de archivos distribuido entre varias instancias. De lo contrario, te arriesgas a la peor de tus pesadillas, lo cual, sube los costes considerablemente.

¿Es más rápido que un servidor virtual?

Aunque la respuesta es claramente sí, todavía se nota mucho más ágil un servidor normal (especialmente en tareas pesadas como compilar o mover grandes cantidades de datos).

Aquí teneis algunos benchmarks muy simples que he hecho:

Compile_time

Aunque la diferencia es una nada despreciable 1/3 parte más lento que nuestros servidores dedicados, es más que suficiente para un servidor especializado (web, base de datos, servidor de aplicaciones,…).

Sorprendentemente, vemos a nuestro buen AMD/FreeBSD rompiendo los esquemas nuevamente. Aunque, al ser otra plataforma, no es lícito comparar los resultados.

¿Es robusto para poner nuestras aplicaciones más críticas?

Aquí es donde claramente brilla sobre los servidores habituales. Se adapta al 100% a nuestras necesidades. Implementa firewalls i herramientas de administración en grupos que parecen sacadas de un libro de magia. (Por ejemplo, uno de los parámetros cuando creamos una instancia es, ¡el número de éstas! Por lo que podemos arrancar directamente un cluster de 20 servidores web y otros 10 de bases de datos en pocos minutos, que se escala a tus necesidades).

Algunas curiosidades…

Parece ser que las CPUs son Amd Opterons, como no podía ser de otra forma (AMD Opteron(tm) Processor 250). La plataforma consta de 1.75GB de memoria ram y 160GB de disco duro *volátil*.

Las herramientas internas para la creación de las imágenes y la publicación de estas en el servidor de S3 están hechas en Ruby.

No es posible asignar una IP estática a un servidor. Siempre se obtiene por DHCP. En función de algunas instancias, es posible que un servidor use la IP de otra instancia que hayas terminado recientemente.

El ping con Google es de 2ms =)´´´

La prueba

Para ver qué tal se comporta el servidor virtual, hemos hecho una réplica de Pricenoia dentro de los servidores virtuales de Amazon en esta dirección:

http://domU-12-31-33-00-02-6A.usma1.compute.amazonaws.com/

Claramente parece responder un poco peor que nuestro ya viejo Freebsd, aunque demuestra un rendimiento excepcional en las operaciones de cálculo y procesado de textos.

Lamentablemente parece que todavía están realizando pruebas, y tiene micro-cortes que son bastante molestos. Se puede notar en el web, pero se nota especialmente al acceder vía SSH (he llegado a ver como se quedaba congelada la sesión SSH durante más de 30 segundos) aunque por lo general tiene una respuesta estupenda.

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/t/trackback/11056/5791363

Listed below are links to weblogs that reference Betatesting Amazon EC2: Elastic compute cloud:

Comments

ya puedes montar tu s3 en una instancia de ec2 :) ahora tu sabes como puedo levantar más instancias de ec2??

saludos.

hola que tal, bueno ya puede levantar más instancias, :o pero ahora no se si tu ya lo habras hecho, levantar instancias en paralelo de ec2, o sea que al estar casi a su limite una, se prenda otra, y asi sucecivamente.

Saludos.

Lo único que he aprendido es que EC2 está muy bien, pero necesitas un "master" externo a EC2 para redirigir todo el tráfico. Una especie de proxy inverso a tu cluster de EC2 es la mejor manera de gestionarlo todo bien.

Mediante unos simples scripts de ruby es posible levantar instancias, y ya dependiendo de cada aplicación, y con estadísticas en las manos, es posible automatizar que se creen y se den de baja las instancias según las necesidades.

Alguien sabe si hay alguna forma fácil de hacerse una cuenta de test, me gustaría probar el servicio antes de recomendarlo a la empresa y luego salir mal parado.

Alguien sabe si hay alguna forma fácil de hacerse una cuenta de test, me gustaría probar el servicio antes de recomendarlo a la empresa y luego salir mal parado.

Post a comment

If you have a TypeKey or TypePad account, please Sign In