Posts Tagged ‘ec2’

Así utilizamos Amazon Web Services

2 noviembre 2009

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