Instrucciones para almacenar y compartir ficheros con Amazon S3

Almacenar datos en Amazon Simple Storage Service (S3)
Outlook
 
 

Desde hace algún tiempo, el ancho de banda consumido por las descargas de EasyJob, CurrículumFácil y CV-Express está disparado y hubo que buscar alguna alternativa para almacenar las demos de los tres programas.

 

En un principio, pensé en contratar un servicio de hosting sin límites de ancho de banda, como los que ofrece JVDS . El precio era razonable (algo así como USD 60 / mes) y había visto muy buenos comentarios sobre ellos, creo que en Hacker News.

 

No obstante, al poco tiempo me enteré de la existencia de S3, un servicio de almacenamiento de datos distribuido("in the cloud" que se dice ahora) de Amazon. Basicamente es un"content delivery network", pero sin cerebro: no selecciona el servidor más próximo al cliente.

 

Los preciso parecían baratos,las tasas de transferencia muy buenas y solo se paga por lo que se usa, así que me decidí por Amazon S3.

 

Amazon S3 en pocas palabras

 

Amazon Simple Storage Service, mas conocido como Amazon S3 es un servicio de almacenamiento de datos online. Es barato, fácil de incorporar a tu servidor y  relativamente facil de administrar.  Es la misma infraestructura que utiliza Amazon para almacenar sus propios datos, así que es de esperar que los tuyos se vean tratados con el mismo mimo que probablemente dispensen a los suyos propios.

 

¿Quien necesita Amazon S3?

 

Cualquier webmaster que tenga algunos de estos problemas se vería beneficiado por Amazon S3:

 

Cualquiera que se esté quedando sin ancho de banda o pueda quedarse sin él. Si tienes tu servidor en un "hosting" compartido, y apareces en Digg o Menéame, puedes consumir todo tu ancho de banda en un periquete. Es muy posible que tu empresa de "hosting" te cierre el grifo y te dejen tirado.
  • Escasa escalabilidad: Al separar la descarga de ficheros estáticos del proceso normal de tu servidor, la respuesta de éste debería de mejorar y escalar mejor. Esto es particularmente importante cuando se está usando alguna tecnología que consume mucha memoria en el espacio de Apache, como pueda ser Django o Rails.
  • Necesidad de hacer backups online: Jungle Disk es un servicio de backup que utiliza Amazon S3 como infraestructura. No recuerdo  la cantidad de veces que me ha salvado el pellejo en los últimos meses...

     

     

     
    ¿Cómo darse de alta en Amazon S3?
     
    Lo primero es tener una cuenta en Amazon. La que usas para comprar libros sirve, no hace falta una nueva. Si  no tienes una (¿en qué planeta vives?) crea una.
     
    0outlook
     
    Los sigueintes pasos para empezar a usar Amazon S3 son:
     
     
    Crear una cuenta en AWS (Amazon Web Services)
     
    Ve a aws.amazon.com y crea una cuenta en Amazon Web Services.
     
    1outlook
     
     
    Busca Amazon Simple Storage Service (S3)
     
    Después de crear tu cuenta, te saldrá una página indicando que tu cuenta ha sido creada y que te han enviado cierta información por email.  También saldrá una lista con todos los servicios de AWS que puedes utilizar. Busca Amazon Simple Storage Service (S3).
     
    2outlook
     
    Date de Alta en Amazon Simple Storage (S3)
     
    Una vez más tienes que darte de alta (y van 3 con ésta), pero con un agravante: aquí tienes que dar los datos de tu tarjeta de crédito. Tranquilo, que aun no tienes que aflojar nada, solo pagarás cuando hagas uso del servicio. ;-)
     

    Busca el enlace que dice Sign up For This Web Service

     

    3outlook
     
     
    Access Key Id y Secrete Access Key
     
    Una vez que te hayas dado de alta, Amazon te dará lo que llama tus AWS Access identifiers. Son una especie de usuario y clave llamados, respectivamente Access Key Id y Secret Access Key. Guarda eso en algur lugar seguro.
     
    4outlook
     
    Pues con esto ya estás listo para empezar a usar Amazon S3, así que vamos a subir algunos ficheros.
     
     
    Como subir ficheros a Amazon S3
     
    Cunado empiezas, tu cuenta en Amazon S3 está vacía. En ella puedes crear "buckets" (cubos en cristiano). Un "bucket" es el Amazonés para carpeta. Puedess crear varios "buckets" y dentro de ellos es donde guardas tus ficheros.
     
    Hay una pega: los nombres de los "buckets" deben de ser únicos en todo el sisema S3 y no sólo en tu cuenta. Además sólopueden contener letras, números, puntos y guiones (-). Tienen que empezar con una letra o número, y su longitud tiene que estar entre 3 y 255 caracteres. Por si fuera poco, tampoco pueden tener pinta de direcciones IP, como 192.168.2.1
     
    En realidad, hayotra pega, el acceso a los ficheros es un poco engorroso, y tienes que usar un herramienta de algún tercero (Amazon sólo te da un API).
     
    Algunas de las mejores herramientas para subir y administrar ficheros y buckets en Amazon S3 son:
     
    S3Fox
     
    Es una extensión de Firefox que funciona como una administrador de ficheros y buckets. Es gratis y bastante bueno. Desgraciadamente, en estos momentos (Enero de 2010) no hay una versión para Firefox 3.6
     
    S3FM
     
    Esta es una herramienta online escrita en flash. Tal vez sea la ideal para empezar.
     
    CloudBerry S3 Explorer
     
    Los que hemos vendido nuestras almas inmortales al demonio de Redmond tambien tenemos esta otra opción que es gratis. Creoq ue también existe una version para Solaris, pero no estoy seguro.
     
    ¿Cómo bajar los ficheros que están en Amazon S3?
     
    Esto es algo que suele despistar al primera vez. Amazon S3 te tiene que generar una url para cada fichero. Para obtener esa url, , por ejemplo usando S3Fox, basta con hacer click con el botón derecho en el fichero y seleccionar "CopyURL to Clipboard".
     
    Las urls tendrán una pinta similar a ésta:
    http://nombre_del_bucket.s3.amazonaws.com/carpeta/nombre_del_fichero
     
    Recursos sobre Amazon S3
     
    Foro de Amazon S3: Mucha información útil, pero en Inglés.
  • Recomendaciones de administradores de archivos: http://superuser.com/questions/28510/best-amazon-s3-file-manager-utility
  • Boto: Módulo python que permite manipular casi todos los servicios de Amazon Web Services, incluido Amazon S3.