CloudFront es el servicio de Amazon AWS para crear una red de contenido distribuido. Por ejemplo, tenemos un sitio WEB al que acceden desde muchas partes del mundo. Si nuestra página WEB está ubicada en servidores de Irlanda, un australiano tendrá que conectarse a Irlanda, con la consecuente pérdida de tiempo entre el tráfico de ida y vuelta.
En este caso, nos interesaría replicar nuestro contenido a una red de distribución en Australia, para mejorar los tiempos de acceso a nuestra página para los internautas australianos.
Para poder construir una red de distribución, hay que entender los siguientes conceptos:
- UL – Ubicación límite: Es la ubicación donde nuestro contenido será almacenado en caché.
- Origen: Desde dónde distribuiremos los datos (contenedor S3, instancia EC2, balanceador de carga o DNS).
- Distribución: El nombre que le damos a la colección de ubicaciones límite.
Actualmente, Amazon tiene más de 50 ubicaciones límite repartidas por el mundo pero se van añadiendo más periódicamente. Podemos consultarlas en este enlace
¿Cómo funciona una red de distribución de contenido?
Si asumimos que ya tenemos configurada nuestra red de distribución, un usuario de Australia se conectará a la ubicación límite más cercana desde donde solicitará el contenido. El primer usuario que realice la petición no notará ninguna mejora de rendimiento, pero los sucesivos sí porque éste ya se habrá descargado y almacenado en el caché de la ubicación límite.
El contenido quedará almacenado en caché durante el tiempo que hayamos configurado en el TTL (Time To Live).
Creación de una red de distribución de contenido
Como siempre, vamos a la consola de AWS y, en este caso, vamos a CloudFront.
Para este ejemplo, utilizaremos una distribución WEB:
Distribuiremos el contenido del contenedor S3 que creamos anteriormente:
Los datos más relevantes del formulario anterior son:
- Origin path: Podemos distribuir solamente un directorio o un archivo del contenedor S3.
- TTL: Expresado en segundos. Por defecto, nuestro contenido permanecerá en caché 86400 segundos (24h), dependiendo del uso de los objetos.
- Alternate Domain CNAMES: La URL por defecto que crea la CDN es compleja. Este campo sirve para personalizarla. Por ejemplo, cdn.miweb.com.
- Restrict Viewer Access: Podemos restringir nuestro contenido a unas URLs o coockies concretas. Por ejemplo, para que solamente nuestros empleados puedan acceder al contenido.
Un vez que le damos al botón “Create Distribution”, esperamos unos 10 minutos a que se cree la CDN.
Una vez creada, podemos ver el nombre de dominio:
He modificado los permisos del contenedor para hacerlo de acceso público, así podemos comprobar como el contenido del contenedor y del CDN es exactamente el mismo:
Comentar que podemos configurar diferentes orígenes para esta distribución CDN:
Podemos configurar expresiones regulares:
O restringir contenido basándonos en el área geográfica de acceso:
También puedes utilizar un servicio externo a Amazon para crear redes de distribución de contenido como, por ejemplo, CloudFlare o KeyCDN.
Mi pasión por la tecnología me lleva constantemente a explorar las últimas tendencias y aplicaciones, buscando siempre formas de implementar soluciones innovadoras que mejoren la eficiencia. En puerto53.com comparto contenido valioso para ayudar a otros profesionales y entusiastas de la informática a navegar y dominar el complejo mundo de la tecnología. Mi especialidad en Linux RedHat.
Más sobre mí en el este enlace,