Así utilizamos Amazon Web Services

En Voota creemos que cada uno debe dedicarse a lo que mejor sabe hacer. Por eso, desde el primer momento, no quisimos encargarnos de comprar, instalar y configurar servidores. Amazon Web Services (AWS) ofrece un sistema de virtualización que nos abstrae de gran parte de este trabajo de sistemas. De momento empezaremos utilizando 2 de sus servicios:

Así utilizamos EC2

Este es, sin duda, el núcleo de los servicios de virtualización. Permite crear servidores web, servidores de bases de datos y … servidores en general. El concepto es simple: Permite crear todos los servidores que necesite el proyecto desde una interfaz web. Por supuesto son servidores virtuales, pero a todos los efectos es igual que tener un servidor en el despacho de abajo, con la ventaja de que puedes incrementar el número de servidores con un clic de ratón.

Instancias EC2

Lista de instancias en Amazon EC2

Las instancias en EC2 son servidores en ejecución. Se paga por el uso de instancias, lo cual permite tener más o menos servidores sirviendo páginas en función del tráfico del sitio en cada momento.

Otro concepto muy interesante es del AMI (Amazon Machine Image) que no es otra cosa que un servidor “congelado” o, más técnicamente, una imagen de servidor. Cuando se necesita arrancar una nueva instancia, se abre la “nevera” y se le dice a Amazon: “Arráncame uno de estos” y se crea una instancia nueva.

Elegir un AMI

Cualquiera en la comunidad puede crear sus propias imágenes al igual que cualquier distribuidor de software. En el caso de Voota, utilizamos Ubuntu server. Canonical nos lo pone fácil y pone a disposición de cualquier usuario de EC2 su “servidor congelado”. Ya está disponible en Karmic Koala (la nueva versión de ubuntu).

Pero esto es sólo para la primera vez. En Voota, una vez que tuvimos el servidor instalado con el software necesario y listo para servir páginas, le hicimos una foto. Es decir, lo congelamos a un AMI. De esta forma, la próxima vez que sea necesario arrancar una nueva instancia, lo haremos desde nuestro propio AMI, que ya está listo para funcionar.

AMI del servidor web de Voota

AMI del servidor web de Voota

Así utilizamos S3

S3 es un servicio de almacenamiento. Permite almacenar cualquier tipo de información mediante ficheros (imágenes, vídeos, AMIs, backups, etc.). Para nosotros es muy útil a la hora de almacenar las imágenes y los vídeos. Un error muy común en el desarrollo web es almacenar estos ficheros multimedia en un disco del servidor. Todo funciona bien hasta que se necesitan más servidores y por tanto compartir estos ficheros de imágenes. Hay varias soluciones para este problema:

  • Sincronizar continuamente los ficheros entre todos los servidores. Bastante poco práctico sobre todo a medida que va creciendo la estructura.
  • Utilizar una unidad compartida de modo que todos los servidores lean y escriban en el mismo disco. Más cómodo pero se corre el peligro de saturar el disco con lo  cual el balanceo de los servidores no servirá para nada.
  • Crear un servidor de ficheros al que todos los servidores web envíen los ficheros cuando hay que “escribir”. Y que sea este servidor de ficheros el encargado de servirlas directamente al navegador del usuario del sitio web.

Esto último es lo que nos ofrece S3. Cuando algún usuario de Voota carga una fotografía, ésta se envía directamente a S3, quien la almacena. Cuando esta fotografía ha de aparecer en alguna página web, será S3 el encargado de servirla.

Foto de Zapatero almacenada en S3

Esta foto está almacenada en http://imagesvoota.s3.amazonaws.com/politicos/bw_p_238.jpg

Otra utilidad de S3 es el almacenaje de los AMIs o “servidores congelados” que mencionaba antes. Para poder utilizar un AMI en EC2 es obligatorio tenerlo almacenado en S3.

Anuncios

Etiquetas: , , , ,

5 comentarios to “Así utilizamos Amazon Web Services”

  1. Juan Says:

    Interesante ver a Voota tomando forma desde dentro 🙂

    ¿Qué tipo de instancias estáis usando? La diferencia entre ‘small’ y las “large” es enorme (sobre todo Disk IO).

    ¿ Estáis usando EBS ?

    Sergio, gracias por compartir tus experiencias.

  2. Diego Quesada Says:

    Muy interesante el artículo, en un momento me he enterado por primera vez de que es esto del Amazon Web Services.

    Siguen compartiendo tus conocimientos, muchas gracias.
    Ciao

  3. Sergio Viteri Says:

    Hola Juan,

    Siempre tan amable 🙂 De momento, y hasta estar online, estamos usando instancias small. Espero que, en cuanto arranquemos los motores, necesitemos un montón de large’s …
    No usamos EBS de momento, ¿vosotros?

  4. Juan Says:

    Pues EBS ha sido una grata sorpresa por cuanto facilita muchisimo el trabajo de crear ambientes de pruebas y sobre todo copias de seguridad (Snapshots tardan alrededor de 5 segundos para ~100 GBytes), etc.

    Usamos algo parecido a lo que se comenta aquí:
    http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1663

    En cuanto a large vs small: tienes toda la razón, mejor no pagar por lo que no se usa 🙂
    A manera de comentario creo que las larges solo aceptan imágenes de 64 bits (=> distinta AMI )

    El único rollo que tenemos es disk IO : EC2 es bastante bastante lento (comparando con discos físicos)
    y por ahora hemos tenido dos reinicios inesperados (en los dos casos el servidor estaba a tope).

    En esos reinicios todos los datos se mantienen (mounts, etc).

    Mas cosas… bueno no se qué mas contar 🙂

  5. Emanuel Olivier Peralta Says:

    Hola,
    Necesitamos migrar nuestra aplicacon a Amazon. Habra algun interesado que pueda ayudarnos? Espero su contacto!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: