Maestros del Web


Estás en Inicio / Editorial / Servicios Web

04.03.2008

Por qué utilizar S3, el sistema de almacenamiento de Amazon

Una de los grandes problemas a los que nos enfrentamos los desarrolladores a la hora de lanzar un gran proyecto que incluya el almacenamiento y servicio de una gran cantidad de datos es el de conseguir un sistema rápido, con alta disponibilidad y, además, económico.

Amazon WebservicesLa mayoría de proveedores de hosting nos ofrecen la posibilidad de contratar servidores con gran capacidad de almacenamiento, pero suelen ir ligados una tarifa de pago por transferencia de datos, por lo que si lo que buscamos es servir archivos de gran tamaño como fotos o vídeos, nos encontraremos con que la factura a final de mes será más alta de lo que nos imaginábamos al principio.

Justo en ésta época en la que las nuevas conexiones de banda ancha nos permiten acceder a contenidos cada vez más pesados, y la demanda de servicios de publicación y reproducción on-line de contenidos multimedia se ha visto incrementada, Amazon ha desarrollado AWS (Amazon Web Services), un conjunto de servicios que he hecho la vida un poco más fácil y economizada a los desarrolladores que se han propuesto lanzar proyectos de este tipo, como es el caso de minube.com.

Dentro de AWS encontramos S3 (Simple Storage Service), un servicio de almacenamiento masivo, totalmente transparente, que nos permite colgar todos nuestros datos en los Data Center de Amazon sin preocuparnos por ningún tipo de límite. Fotos, vídeos…

Capacidad, Seguridad y Disponibilidad

Uno de los puntos fuertes de S3 es su transparencia a la hora de alojar nuestros datos. Nunca tendremos que preocuparnos por la capacidad de almacenamiento que tiene nuestra cuenta, ya que dispondremos de un único contenedor con una capacidad virtualmente ilimitada. Cuanto más almacenemos, más pagaremos.

Físicamente, nuestros datos estarán distribuidos por los Data Center de Amazon, pero es algo que permanece ajeno a nosotros y de lo que jamás tendremos que preocuparnos. La escalabilidad es un concepto que con S3 se vuelve superfluo. Amazon ya se encarga por nosotros de disponer de nuevas máquinas y más unidades de almacenamiento, y de hacer que todo funcione sin que estemos al tanto de ello.

Para la organización de nuestros archivos, Amazon ha creado tres conceptos:

  • buckets: son algo parecido a un directorio o carpeta de nuestro sistema operativo, donde colocaremos nuestros archivos. Los nombres de los buckets están compartidos entre toda la red de Amazon S3, por lo que si creamos un bucket, nadie más podrá usar ese nombre para un nuevo bucket.
  • objects: son las entidades de datos en sí, es decir, nuestros archivos. Un object almacena tanto los datos como los metadatos necesarios para S3, y pueden ocupar entre 1 byte y 5 Gigabytes.
  • keys: son una clave única dentro de un bucket que identifica a los objects de cada bucket. Un object se identifica de manera unívoca dentro de todo S3 mediante su bucket+key.

En cuanto a seguridad, Amazon ha implementado un sistema de permisos de acceso a archivos por usuario (un poco simple pero suficiente para cualquier propósito), a los que podremos dar capacidad de “Lectura”, “Escritura” o “Control Total”.

Por defecto tendremos tres usuarios: Owner (referente al usuario que alojó el archivo), Authenticated Users (referente a usuarios autenticados en Amazon), Everyone (referente a todos los usuarios no autenticados, es decir, cualquier cliente en todo internet). Aunque podremos añadir nuevos usuarios de S3 con permisos específicos para nuestros datos.

Amazon nos asegura un 99,9% de disponibilidad, lo que iguala cualquier sistema de alta disponibilidad que podamos contratar, y nos llegaría a devolver hasta un 25% de lo facturado en caso de una una disminución de disponibilidad por debajo del 99%.

Metodos de Acceso, Upload y Download

Amazon dispone de una API para la comunicación de nuestras aplicaciones con S3, que acepta peticiones mediante HTTP Request cifradas con Crypt/HMAC. Cada acceso que hagamos a esta API deberá estar validado mediante dos claves que nos proporciona Amazon y que, junto a un hash basado en una semilla temporal, información de acceso, y la key de destino, generan una firma que el sistema validará.

Estas peticiones HTTP nos permitirán el upload de archivos, modificación de permisos, eliminación de objects, creación de buckets… En definitiva, todas las acciones necesarias para administrar nuestro S3. Toda la información en cuanto accesos y códigos de ejemplo se pueden encontrar en la documentación oficial.

Para el “download” de archivos tendremos dos opciones :

  • HTTP Requests para archivos con acceso exclusivo de usuarios validados o propietario.
  • URL HTTP para archivos con acceso a lectura habilitado para el usuario “Everyone”

Cada archivo en S3 posee una URL única, lo que nos facilitará mucho el poner a disposición de nuestros clientes todos los datos que almacenemos.

Integración con aplicaciones y limitaciones de S3

S3 permite el acceso al servicio mediante HTTP Request, lo que lo hace virtualmente accesible desde cualquier aplicación que nos propongamos integrar.

S3 es sólo un servicio única y exclusivamente de almacenamiento, por lo que intentar colgar aplicaciones web en S3 nos será prácticamente imposible, ya que no dispone de intérpretes de lenguajes dinámicos y no nos será útil más que para colgar páginas estáticas.

Tarifas y Servicios

El servicio S3 se factura de cuatro maneras distintas, y conjuntas:

  • Almacenamiento mensual: cuanto más almacenemos en S3, más pagamos. Se trata de una tarifa por GB almacenado/mes.
  • Transferencia de Datos: una tarifa decreciente en la que cada GB transferido nos costará más barato cuanto más transfiramos.
  • Accesos GET : solicitudes de archivos. Cada acceso a un archivo nos cobrarán.
  • Accesos PUT/LIST: solicitudes de envío o solicitud de listados.

A pesar de todo el desglose de facturación, que nos pueda parecer que nos cobran por todo, los servicios de Amazon son ridículamente baratos. Para que os hagáis una idea, unos 2,5 GB de datos almacenados y una transferencia de 15GB al mes, no llegarán a los 4 dólares (2,69€) mensuales.

Podéis hacer el cálculo de cuánto nos podría costar esto, o una cantidad mayor proporcional, en un servicio de hosting tradicional.

S3 en el Escritorio

Una herramienta que seguro ayudará mucho a cualquier desarrollador que empiece a trabajar con S3 es S3Fox, una extensión de Firefox que nos da acceso a nuestra cuenta S3 con una GUI muy similar a un cliente FTP (con muchísimas menos funcionalidades por supuesto).

Sobre todo será útil para acceder a nuestra cuenta y comprobar si nuestra integración funciona correctamente, aunque también se presta muy bien como interfaz gráfica para administrar nuestro S3 como si de una unidad de almacenamiento virtual se tratase. Su punto negativo es el de depender de Firefox para poder usarlo.

Existen también herramientas estrictamente de escritorio, que nos permiten montar nuestra cuenta S3 como una un unidad de red, para poder navegar por nuestro S3 como si estuviese integrado en nuestro propio Sistema Operativo, como Jungle Disk. Es una herramienta de pago, pero si necesitas disponer de tus archivos en varias máquinas distintas y buscas modo transparente de tener acceso a ellos, vale la pena los 20$ que cuesta.

Aunque existen algunas otras aplicaciones para integrar S3 en nuestros escritorios de casi todos los Sistemas Operativos del mercado, no hay que olvidar nunca que S3 es un servicio pensado para su uso e integración en aplicaciones, que es donde obtendremos siempre los mejores resultados.

Yo personalmente he tenido bastantes problemas con aplicaciones que integran S3 en escritorio y, aunque es verdad que algunas funcionan muy bien y cumplen perfectamente su cometido, no recomiendo su uso para operaciones críticas.

Casos de Éxito

El caso de éxito que mejor conozco es el del proyecto minube.com. Si no fuera por AWS no podríamos haber lanzado nuestra comunidad de la manera que la hemos lanzado.

Todos nuestros contenidos multimedia son almacenados en S3 y disponemos de varios GB de imágenes y videos almacenados que, si hubiésemos intentado alojarlo en alguna empresa de hosting o montar un DataCenter propio, habría supuesto una inversión económica enorme, incluso poco asumible.

Los gastos de almacenamiento de más de 16000 imágenes y varios cientos de videos, servidos para, pongamos, por ejemplo, más de 3000 usuarios diarios apenas llegan a los 5 dólares mensuales. Si hacemos cuentas podríamos darnos cuenta rápidamente que un proyecto que acaba de comenzar se ahorraría no sólo una inversión inicial que podría estar entre los 10,000 y 20,000 dólares , así como unos pagos mensuales de más de 500 dólares.

Otro caso de éxito de S3 ha sido Smugsmug. Ofrecen almacenamiento ilimitado de fotos para sus usuarios y utilizan S3 tanto para el alojamiento de las mismas, como a sus backups (más de 100Terabytes). Smugmug ha anunciado en su blog que en su primer año de servicio han estimado su ahorro en más de 1,000,000 dólares.

Conclusiones

Desde mi punto de vista, Amazon ha dado un gran empujón a todos los desarrolladores para facilitarnos una revolución del mundo web. A partir de ahora, los costes de mantenimiento e infraestructura no será un problema para todos aquellos que piensen en desarrollar un proyecto con una gran necesidad de almacenamiento de datos. Por un precio casi ridículo tendremos un servicio de almacenamiento masivo, de alta disponibilidad, y del que no tendremos que preocuparnos por escalar.

Califica esta nota:

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (5 votos, promedio: 5 de 5)
Loading ... Loading ...

Si eres nuevo en Maestros del Web y te agradan nuestras publicaciones, te invitamos a suscribirte a nuestro Feed.

Sindícanos en: Google Reader, Bloglines, My Yahoo o My MSN | ¿Qué es el Feed?

Comentarios

13 comentarios en total.

  1. Pichongol 04.03.2008 - 11:10 - #

    Daniel, muy buen articulo.
    Si bien S3 tiene grandes ventajas a la hora de gestionar contenido estatico por todas las razones que enumeraste, me gustaria remarcar alguna desventaja, ya que no vi que hayas hecho referencia a ninguna de ellas.
    El hecho de tercerizar el almacenamiento de las imagenes, te hace perder algo de control sobre ella.
    ¿Que sucede si por algun motivo necesitamos todas las imagenes para hacer alguna migracion o alguna otra cosa? deberiamos hacer un download…, a que costo?
    Otro tema…backups?
    Ademas, hay que tener en cuenta que uno queda sujeto a la calidad de servicio de ellos, y que si fallan, a corto plazo no queda otra mas que esperar a que lo solucionen.
    Para terminar, otro de los sitios que utiliza Amazon S3 es Twitter.
    Saludos!

  2. alan 04.03.2008 - 13:31 - #

    ojala que los desarrollos nuevos permitan la correcta usabilidad y compatibilidad en los sistemas

  3. Daniel García 05.03.2008 - 03:58 - #

    Gracias Pichongol.
    Tienes razón en cuanto a si algún día necesitas portar tus contenidos o hacer backup, la cosa está complicada …
    En cuanto a la calidad del servicio, debo decir que de momento (a excepción de una única caida de 2 horas desde que yo lo conozco), está siendo excelente.
    El ancho de banda es enorme, por lo que los tiempos de acceso son muy buenos.
    Si ellos fallan … pues por supuesto , no queda otra que esperar , pero igualmente ocurre si tienes alojado tus archivos en un servicio tradicional de hosting. Para compensar un poco, como dije en el artículo, Amazon ofrece algunas formas de indemnización en caso de disminuir el 99% de disponibilidad. Que no nos soluciona la caida … pero algo es algo.

    Aún así, creo que compensa el gasto que supondría otro tipo de servicio o el montar tu propio Data Center.

  4. andrea 05.03.2008 - 14:51 - #

    hey podrias hablar de la aplicacion prefabricada sobre convertir videos, es que alguien me dijo que lo hacia, pero nose como , talvez puedes explicarme algo de eso.

    gracias

  5. Jur 05.03.2008 - 20:08 - #

    Que diferencias hay con un servidor dedicado? en the planet por 69 euros tienes 80 gigas de disco duro y 750 Gb de ancho de banda. No le veo sentido alojar archivos ahi, sale mas caro.

    He puesto theplanet por ser los mejores pero tienes servidores por 80 dolares en otras compañias con 500 GB y 2000 GB de trafico.

  6. cvander 06.03.2008 - 23:12 - #

    S3 se ha vuelto un importante motor de muchas nuevas startups. Y con los servicios de base de datos y de procesamiento, a futuro podrian consolidarse aún como un motor más importante. Oimos de la caida y aunque fue breve, también demostro que el servicio puede fallar como prometieron, lo que seguramente les ayudará a ir mejorando.

    Ahora, Daniel, te quería preguntar en tu experiencia personal con minube, que factores consideraron para utilizar S3 aparte del costo. Cómo debería un usuario evaluar si este servicio es una buena solución para su proyecto. Conoces algo al respecto?

  7. Daniel García 10.03.2008 - 17:09 - #

    Mi experiencia con S3 es totalmente satisfactoria, tanto desde el punto de vista de un usuario que usa S3 para fines profesionales, como para fines personales.
    Los factores que nosotros tuvimos en cuenta desde minube a la hora de usar S3 como plataforma de almacenamiento, además de los motivos económicos, era su sencillez de implementación y la garantía que nos daba el confiar nuestros datos a un gigante de internet como es Amazon.
    Es cierto que ha habido algúna caida pero, ¿ qué empresa de hosting no ha sufrido una cadia ?. Incluso si barajasemos la posibilidad de construir nuestro propio Data Center y confiarlo a uno de nuestros propios empleados, ¿nos asegura ésto una disponibilidad del 100%?. Yo creo que no.
    Es cierto que si tenemos algún problema técnico no podemos hacer más que esperar, y no podemos emprender ningún tipo de acción para agilizar la recuperación del sistema, pero creo que el resto de beneficios compensan ese pequeño handicap.
    Además estoy completamente de acuerdo contigo Christian, la caida de Amazon no conseguirá otro efecto más que el de incentivar una mejora del sistema para evitar volver a sufrirla.

    Si un usuario tuviera que evaluar si el servicio es una buena opción, yo le invitaría a tener en cuenta que con S3 no solo ahorrará dinero, sino que evitará esas otras muchas preocupaciones que cualquier otro servicio tradicional nos da, desde la escalabilidad (tanto en almacenamiento, como procesado o ancho de banda), hasta problemas mayores típicos de un DataCenter propio como seguridad, consumo energético o incluso refrigeración de nuestras máquinas…

    Creo que S3 es ideal para tanto para los pequeños proyectos, como para los medianos, y ¿ por qué no ?, hasta para los grandes. No es infalible 100%, pero ¿qué sistema lo es?

  8. ANTI BLOG 11.03.2008 - 15:49 - #

    buen artículo. ha llevado su tiempo leerlo pero muy instructivo. gracias.

  9. digital 12.03.2008 - 20:04 - #

    No soy ingeniera ni programadora web, pero tengo conocimientos generales… y quisiera saber algo:
    1. Éste funciona igual que un servidor dedicado?
    2. Permite configurar cuentas de correo?

  10. Daniel García 16.03.2008 - 14:02 - #

    Hola digital,
    en cuanto a tus dos preguntas:
    S3 no es, ni funciona como un servidor dedicado. Imagínatelo simplemente como una unidad de almacenamiento masivo on-line, que te permite acceder a sus archivos almacenados a través de una url. NO tiene ningún otro tipo de servicios (servicio web, correo, ftp, etc…), ni tampoco permite su instalación, ya que como te digo, es simplemente lugar de almacenamiento.
    Si lo que buscas es algo parecido a un servidor dedicado, echale un ojo a EC2 (Elastic Computing Cloud), también de Ámazon.

  11. Charlos 17.03.2008 - 03:45 - #

    He desarrollado una librería en C# para el uso del S3 mediante REST que facilita mucho su uso. El código es totalmente abierto y podeis usarlo y mejorarlo en todo lo posible.

  12. intercooler 17.03.2008 - 06:00 - #

    Tiene muy buena pinta

  13. Maikel 21.03.2008 - 08:02 - #

    Muchas han sido las empresas que se han beneficiando con S3, entre ellas está la popular comunidad Slideshare.net para compartir presentaciones. Todas ellas se han ahorrado grandes sumas respecto al servicio de alojamiento tradicional.

Deja tu Comentario


Maestros del Web se reserva el derecho de moderación de los comentarios. Evita utilizar palabras soeces, ataques directos, descalificativos, insultos, de lo contrario tu comentario será eliminado.


Boletín

Agrega nuestro feed a  Netvibes
wikio Add to Technorati Favorites

-


Maestros del Web es el punto de encuentro para los entusiastas de la red.

© Copyright 1997 - 2008 Maestros del Web. | CMS: Wordpress