Sistemas CDNs: Cloudflare y Cloudfront
Cloudflare y Amazon Cloudfront son algunos de los servicios que nuestros clientes suelen utilizar como Red de Distribución de Contenido o CDN (del inglés Content Delivery Network).
Ambas nos ayudan a acelerar la entrega y mejorar por tanto los tiempos de carga de contenido, generando grandes beneficios en lo que se refiere a experiencia de usuario, SEO, etc.
A lo largo del artículo expondremos las características principales de cada una de las partes para ver qué opción se adapta más a nuestras necesidades.
¿Qué es una CDN?
Una CDN es una red de servidores distribuidos geográficamente en diferentes ubicaciones que permiten entregar contenido a los usuarios finales de una localización cercana a dicho usuario. Además, estos servicios ya cubren las necesidades de alta disponibilidad, escalabilidad y velocidad de cualquier proyecto, en general.
Cuando un usuario solicita un recurso web (página web, imagen o vídeo), la solicitud se envía al servidor más cercano de la ubicación del usuario, lo que es conocido como punto de presencia (normalmente mediante geolocalización de algún tipo). El servidor (o cluster de servidores de un punto de presencia) de la CDN que recibe la solicitud, comprueba si dispone de dicho contenido y, en ese caso, lo sirve al usuario directamente reduciendo el tiempo de carga. Si no dispone de él, lo solicita a nuestro servidor origen, si procede, lo cachea para posteriores peticiones e igualmente lo sirve al usuario.
Además, una CDN también ayuda a reducir la carga en nuestros propios sistemas, ya que como hemos indicado, habrá peticiones que sean gestionadas directamente por el proveedor en los puntos de presencia. Las CDN son comúnmente utilizadas por sitios web de alta carga de tráfico o aquellos que tienen usuarios dispersos geográficamente en todo el mundo.
Aunque tanto Cloudflare como Cloudfront se tratan de sistemas CDN, no ofrecen exactamente el mismo conjunto de características y funcionalidades. Veamos que nos ofrecen estas herramientas.
Cloudflare vs Cloudfront
Explicación Cloudflare
Cloudflare funciona en realidad como un proxy. Por tanto, los registros DNS de tu sitio web resolverán una dirección de Cloudflare que será quien responderá a los usuarios.
Uno de los requisitos para poder hacer uso de Cloudflare es que tienes que delegar la zona DNS a su servicio. Es decir, tienes que configurar los servidores de nombres autoritativos del dominio apuntando a Cloudflare con los servidores de nombres que te indicarán durante el proceso de configuración. Esto permitirá que las peticiones pasen por los sistemas de Cloudflare, siempre que tengas la opción de proxy activada, si no, funcionará como un servidor DNS normal.
A través del DNS y de su servicio de proxy cuando activas el CDN Cloudflare, se integra otros servicios como antiDDoS, WAF, terminación SSL, además de otras funcionalidades.
Dentro de estas funcionalidades nos encontramos con las Page Rules, que nos permiten crear reglas personalizadas que indican a Cloudflare cómo manejar solicitudes específicas en nuestro sitio web. Por ejemplo, se pueden configurar reglas para redirigir el tráfico de un subdominio específico a una página de destino diferente, agregar headers personalizados, controlar qué contenido se cacheará, durante cuánto tiempo se mantendrá en caché y cómo se actualizará éste cuando se realicen cambios en el contenido, entre otras.
Pero no todas las funcionalidades están disponibles en todos los planes, ya que dependiendo de la suscripción que dispongas, es posible que algunas de ellas las tengas limitadas.
Como hemos comentado, Cloudflare funciona con planes de suscripción, y dependiendo del plan que tengas, dispondrás de más funcionalidades, no facturándose el tráfico o las peticiones que se realizan a tu sitio web. Hay servicios independientes que sí se facturan por separado como es el caso de Cloudflare Workers.
Puedes ver los planes desde este enlace.
Explicación Amazon Cloudfront
Amazon Cloudfront, al igual que Cloudflare, funciona como un proxy, sin embargo en este caso no necesitamos delegar la zona DNS a AWS. Las peticiones igualmente serán respondidas al usuario final por los sistemas de Cloudfront.
Una de las grandes ventajas que tiene Cloudfront es que está integrado dentro del ecosistema de AWS y te permite vincularlo a otras herramientas que ofrece Amazon para mejorar sus funcionalidades como pueden ser: EC2, Amazon Advanced Shield o Amazon S3. A diferencia de Cloudflare no dispone de funcionalidades de seguridad ya que eso queda delegado a otros servicios de Amazon como son el WAF o Amazon Shield.
En Cloudfront debemos configurar los orígenes, políticas de caché y definir como se vinculan a las peticiones de los usuarios. Es decir, es necesario definir completamente como queremos que funcione nuestro CDN. Esto tiene como ventaja que podemos usar un servidor web cualquiera como origen mediante un dominio, un bucket de S3 o incluso funciones de Amazon Lambda.
Otra de las cosas a tener en cuenta en Cloudfront es que no dispones de un plan como Cloudflare, si no que pagas por uso, como por ejemplo el tráfico. En este aspecto, Amazon ofrece acuerdos personalizados para casos de grandes volúmenes de uso.
Se puede encontrar más información sobre los precios en su web o contactando directamente con ellos si quieres consultar los acuerdos personalizados.
Comparativa
Características |
Cloudflare |
Cloudfront |
Función principal |
CDN, DNS y antiDDoS |
CDN |
Certificados SSL |
Ofrece certificados compartidos en planes económicos y certificados dedicados en planes superiores |
No los tiene integrados si no que requiere de otros servicios en Amazon como ACM |
Tamaño de la red CDN |
Más de 285 puntos de presencia en todo el mundo |
450 puntos de presencia y 13 cachés de regiones periféricas en más de 90 ciudades de 48 países |
Seguridad |
Herramientas de seguridad de última generación, incluyendo protección contra DDoS, firewall de aplicaciones web y seguridad DNS |
Ofrece funciones de seguridad limitadas de manera nativa, pero se puede vincular con otros servicios de Amazon como AWS WAF o Advanced Shield |
Facilidad de uso |
Fácil de usar y popular entre sitios web pequeños y medianos. No requiere de configuración de orígenes |
Puede ser algo más complejo de configurar para usuarios sin experiencia en AWS, ya que requiere la definición de las configuraciones de caché |
Informes y análisis |
Ofrece informes detallados sobre el tráfico de su sitio web, incluyendo métricas como el ancho de banda utilizado, las solicitudes HTTP y la ubicación geográfica de los visitantes |
Normalmente requiere configuraciones adicionales y el uso de otros servicios de AWS |
Configuraciones |
Requiere delegar la zona DNS para poder utilizar el resto de funcionalidades |
No es necesario delegar la zona DNS. Se crean distribuciones con direcciones URL únicas para dirigir las solicitudes a la CDN |
¿Debería usar Cloudfront o Cloudflare?
Pues no hay una respuesta concreta, y la elección entre uno de los dos dependerá de tus necesidades específicas y del tipo de sitio web que tengas.
Por lo general, si necesitas una opción ajustada de precio, de fácil configuración y no estás familiarizado con el ecosistema de Amazon, en la mayoría de los casos la elección sería Cloudflare.
Si ya estás familiarizado con el ecosistema de Amazon, quieres integrar diferentes servicios con un CDN o reutilizar algunos que ya puedas tener configurados en tu arquitectura como puede ser AWS WAF, seguramente Cloudfront sería la opción elegida.
Aunque también existe la posibilidad de utilizar ambos. Por ejemplo, delegando toda la parte de caché a Cloudfront porque ya tengas parte de las configuraciones preparadas, y delegar la parte de seguridad (DDoS, WAF, etc) configurando Cloudflare como intermediario.
En tu caso, ¿qué CDN utilizas?