Amazon CloudFront: sirviendo contenido en S3 más rápido

Con Amazon CloudFront podemos distribuir nuestro contenido alojado en Amazon S3 mucho más rápido y con menor latencia. Aquí explicamos cómo implementarlo en nuestro site para mostrar un video flv.

Llega un momento en donde tu cliente pronuncia las temidas palabras: «quiero videos en mi web»… y tú ya empiezas a sudar pensando en ancho de banda, concurrencia de usuarios, ralentización de servidores y sobre todo en aumento de costes. Cuando confluyen las palabras archivos grandes y mucho tráfico, casi todos nos echábamos a temblar… hasta que llegó Amazon Web Services.

Con Amazon S3 podemos alojar ficheros de gran tamaño y pagar un precio muy razonable por la transferencia consumida, con la gran ventaja de que las descargas ya no estresarán nuestro servidor, que podrá centrarse en generar y servir las páginas rápidamente.

Pero cuando uno habla de videos y archivos de 27 Mb como el que nos ocupa, no sólo quieres que el coste no se te dispare, también necesitas rapidez: lo último que deseas es que tu cliente pulse «Play»… y que no ocurra nada. CloudFront nos asegura que la descarga será mucho más rápida y que la latencia se verá reducida al mínimo.

Vamos a ver con un ejemplo práctico lo sencillo que es usar CloudFront sobre S3, para ello voy a compartir con vosotros un video en formato FLV que he editado con algunos buenos momentos jugando al Gears of War 2:

Paso 1 – Lo primero es darse de alta tanto en S3 como en CloudFront, en mi caso sólo he tenido que darme de alta en el segundo porque ya utilizo a diario S3 para realizar las copias de seguridad de la empresa. Como ya sabréis darse de alta no conlleva ningún coste, Amazon sólo te cobra por lo que consumes.

Paso 2 – Utilizando CloudBerry Explorer o similar, nos vamos a crear un bucket para la ocasión. Un bucket es el nombre que se le da a las carpetas en el raiz de tu cuenta S3, tendrás que encontrar un nombre aun disponible porque éste es a su vez el nombre del subdominio que te asignará S3. En mi caso creo «fernandoplaza» y por tanto mi subdominio en Amazon será: fernandoplaza.s3.amazonaws.com.

Subimos a una carpeta dentro de nuestro bucket el fichero que queremos compartir, en mi caso un FLV:

 

Paso 3 – Mientras que se sube vamos a aprovechar para ir creando una «Distribution», para ello nos descargaremos en Firefox un programa gratuito S3 Organizer (con esta herramienta puedes hacer también el paso anterior si quieres). Configúrala para que acceda a tu cuenta S3 y puedas visualizar tus bucket, después haz clic con el botón derecho del ratón sobre el bucket recien creado y elige «Manage Distributions»… después pulsa el botón «Create Distribution»:

Con esto Amazon creará otro subdominio pero esta vez en cloudfront.net que es una imagen del nuestro, es decir, puedes acceder a los mismos ficheros que en tu bucket original pero ya a través de CloudFront y por tanto mucho más rápido.

Este proceso puede tardar unos cinco minutillos, el status de la petición pasará de «InProgress» a «Deployed» (hay que pulsar sobre el icono de refrescar) y entonces ya sabremos que ha terminado:

Paso 4 – Por último sólo tenemos que asegurarnos de que al fichero FLV que hemos subido se puede acceder públicamente, para ello revisaremos los permisos y comprobaremos que «Todos lo usuarios» pueden «Leer» el archivo. Esto se puede hacer también con CloudBerry Explorer:

Listo! Ya sólo queda ver el resultado, para ver si es tan rápido como dicen.

Para reproducir los FLV desde la web yo utilizo JW Player, que para uso no lucrativo es gratuito, incrustaremos el código necesario y llamaremos al video utilizando la URL en «clodufront.net».

Este es el resultado final, a mi se me carga muy rápido teniendo en cuenta que son casi 30 Mb… ¿y a vosotros?




Publicado

en

por