🥇 Amazon CloudFront

🍿 ¿En qué consiste el servicio Amazon CloudFront?

CloudFront un servicio global de Content Delivery Network (CDN) que se integra con otros productos de AWS para proporcionar a los desarrolladores y negocios una forma sencilla de distribuir contenido a usuarios finales con una baja latencia, alta velocidad de transferencias de datos y sin un compromiso mínimo de uso.

CloudFrount es utilizado como CND para entregar el contenido web utilizando la red global de edge locations de Amazon. Cuando un usuario solicita un contenido, es redirigido a una edge location que provee la latencia mas baja, de forma que el contenido sea entregado con el mejor performance posible.

🍿 ¿Con qué servicios se integra CloudFront?

CloudFront se integra con servicios como: S3, EC2, ELB, Route53 y con sistemas dentro de las instalaciones de la organización.

Soporta todo el contenido que pueda ser provisto mediante HTTP, o HTTPS, incluyendo HTML, JS, CSS, audio, video, media, descargas de binarios, etc.

También soporta media streaming utilizando HTTP y RMTP.

🍿 Conceptos relacionados a CloudFront

🥤 Distribution (Distribución)

Es un nombre DNS como #####.cloudfront.net en el cual se sirven archivos.

Se puede utilizar como aparece o crear un CNAME record en Route53.

🥤 Origins (Orígenes)

Cuando se crea una distribucíon se debe proporcionar algún origen:

🍿 Cache Control (Control del Cache)

Una ves que se sirva la petición desde cualquier edge location, los objetos estarán en el cache hasta que expiren o sean expulsados y se libere el espacio requerido por el contenido solicitado con mas frecuencia. Por default los objetos expiran a las 24 horas. Una vez que expiran CloudFront verifica si el objeto en el origen ha sido modificado y si es así realiza la actualización en el edge location.

Si se desea cambiar la fecha de caducidad de los objetos, cambie el valor “Cache-Control” definido por su servidor de origen y defina el mínimo, máximo y tiempo de vida por default (Time to Live TTL) para los objetos dentro de su distribución.

También es posible eliminar copias de los objetos en los edge locations usando en cualquier momento la llamada invalidation dentro de la API. Esto elimina el objeto del edge location sin importar la fecha de expiración.

En lugar de realizar una invalidación, es una mejor practica utilizar un identificador de versión como parte del path del archivo.

En CloudFront cuando se utiliza el control de versiones, los usuarios siempre ven el último contenido cuando este se actualiza (sin tener que usar invalidation). Versiones viejas expirarán automáticamente del cache de forma automática.

🍿 Características avanzadas

🥤 Contenido Dinámico, Origins y Comportamientos del Cache

Además de contenido estático se puede controlar que otro tipo de contenidos se muestran a través de CloudFront mediante cache behaviors.

Un cache behavior permite configurar un serie de funcionalidades de para archivos en base al patrón de una url en su sitio web.

La funcionalidad que se puede configurar para cada cache behavior incluye lo siguiente.

Los cache behaviors son aplicados en orden si un request no coincide con el primer patrón, continúe al siguiente. Normalmente el último patrón especificado es *.

🥤 Todo el sitio (Whole Website)

Utilizando cache behaviors y multiples origins se puede utilizar CloudFront para servir el sitio completo y para soportar diferentes comportamientos para diferentes clientes.

🥤 Contenido privado (Private Content)

En muchos casos, usted desea restringir el acceso al contenido en CloudFront para subscriptores de pago, aplicaciones o usuarios en la red de la compañia. CloudFront provee diferentes mecanismos para permitir servir contenido privado.

Signed URL’s
Urls que solo funcionan por un tiempo determinado.
Signed Cookies
Require de autenticación utilizando public and private keys.
Origin Access Identities (OAI)
Restringe el acceso a un solo usuario asociado con Cloud Front para un bucket de S3. Esta es la mejor forma de asegurarse de que un bucket solo es accesado por CloudFront.

🍿 ¿Cuáles son los casos de uso recomendados para CloudFront?

Existen varios casos de uso en donde CloudFront es una opción excelente, incluyendo pero no limitándose a:

🍿 ¿Cuáles son los casos de uso en donde CloudFront no es recomendado?

ElastiCache AWS AWS Storage Gateway
comments powered by Disqus