¿Qué es un CDN y cómo instalarlo? Los ‘pros’ y ‘contras’ de usar un CDN

Hoy te voy a enseñar que es un CDN (Content Delivery Network). CDN es una solución basada en una red de servidores distribuidos por todo el mundo que almacenan copias de tu página web para mostrarla en función de la ubicación del cliente que accede. Estos servidores se nutren de un servidor original, es decir, de tu servidor. Estos servidores actúan como capa entre tú y el cliente que hace la petición. ¿Y cuál es el servidor que mostrará una copia de mi web?. Muy fácil, es gracias a la geolocalización o el servidor CDN más cercano a tu localización.

Representación gráfica de un CDN

que es un CDN infografía raiolanetworks

En esta fotografía vemos dos casos. Uno con un fondo en rojo y otro en fondo en verde; el primero representa un servidor sin CDN y el segundo un servidor respaldado por un CDN.

  • En el primer caso, donde no se hace uso de un CDN, se observa como todos los clientes, independientemente del país que sean, hacen la consulta al servidor que está en Madrid. Esto implica para el cliente una latencia y tiempo de respuesta enorme. Imagina a una persona de Colombia accediendo a un servidor de Madrid. Si no tienes un PoP (Punto de acceso) en Latinoamérica con una copia de tu web para Colombia, los tiempos de respuesta serán muy grandes.
  • En el segundo caso donde sí se hace uso de CDN, donde por ejemplo, una persona de Alemania puede conectarse a un PoP del CDN por ejemplo de París. Todo depende del número de PoP’s que tenga tu proveedor de CDN. Normalmente unos están especializados en continentes, por ejemplo, uno para latinoamericana, otro en Norteamérica, otro en Europa y así. Otros son especialistas en tener PoP’s por el resto del mundo pero tendrán pocos punto de acceso en cada país o continente.

No existe ningún proveedor que tenga una gran cantidad de PoP’s por cada país del mundo. Por eso tienes que buscar a aquel proveedor que se ajuste a tus necesidades en función del origen geográfico de tu tráfico.

¿Conoces la diferencia entre un Content Delivery Network y Domain Sharding?

Ventajas de usar un CDN

  • Crean una réplica de los archivos estáticos de tu web para servirla cuanto antes al usuario/cliente. Únicamente se hará uso de tu hosting/servidor para cargar elementos dinámicos. Por ejemplo: El carrito de compras si tienes una tienda online.
  • Hacen de capa contra ataques DDoS (Ataques de denegación de servicio)
  • Balancean la carga. Los CDN se encargan de balancear la carga de la web del tráfico que entra y además asume toda la transferencia o ancho de banda de la carga de archivos.
  • Los servidores o PoP’s cuentan con un hardware, en la mayoría de casos, mucho mejor que el nuestro propio. Eso es una característica a resaltar.
  • Es escalable. Es flexible. No hay límites.
  • Permite desactivar que nos hagan ataques de Hotlinking.
  • Mejoras o aumentas de forma exponencial el Crawl Budget.
  • Reduces muchísimo el TTFB (Time To First Byte)

Desventajas de un CDN

  • Es posible que tu web se vea comprometida. Te explico. Tu web está siendo replicada en muchos servidores a la vez. ¿Y qué pasa si justo un servidor en concreto es inseguro? Es decir, tiene una brecha de seguridad. Tus archivos están en manos de un tercero.
  • No tienes el control sobre los archivos que se replican en todos los PoP’s de la red de servidores.
  • Tienes que configurarlo. DNS, subdominio, caché, IP, HTTP, Amazon CloudFlare, etc… son muchos términos los que un usuario con un blog que está creciendo y no tiene ni idea de lo que se está hablando. Por ello, es recomendable que dejes este punto a un profesional.

Los tipos de CDN de que existe

Existen dos tipos de CDN que podemos usar para nuestra web; los CDN por proxy inverso o los CDN por subdominios. Te explico cada uno de ellos que son y como funcionan.

CDN de tipo proxy inverso

Es uno o varios servidores externos entre el usuario y el servidor de origen. Este tipo de configuración nos permite configurar el servidor “internamente” para optimizarlo y crear reglas de seguridad para el sitio web. Un proxy inverso es un servidor que recopila la información de la petición hecha por el usuario y le entrega al usuario la información como si el directamente la hubiese hecho el servidor de origen. Es un tipo de servidores que protegen al servidor de origen de ataques pues este servidor proxy simula ser el cliente.

CDN por subdominio

Los servidores CDN que van por subdominios son los encargados de guardar una copia de tus archivos estáticos mediante subdominios. Este tipo de solución se emplea para hacer una carga paralelizada de los elementos estáticos de tu web. Estos subdominios, por ejemplo, cdn1, cdn2, cdn3, cdn4 deben apuntas a un host anycast.

Un host anycast es una solución por la cual se asegura que tu web siempre resuelva a un PoP. Si el servidor DNS a los que apuntan tus subdominios dejan de funcionar, el host anycast levantará instantáneamente un respaldo de otro PoP donde se encuentra una copia de tu web y apuntará allí.

Con esto se garantiza un uptime casi del 100%. Si el servidor DNS primario del CDN al que apunta tu web falla, aseguramos que tu web se vea por una nueva resolución de DNS pero no se garantiza que tu web funcione del todo al 100% pues solo se rescatarán los archivos estáticos y no dinámicos.

¿Cuándo hay que tener instalado un CDN?

No existe una respuesta exacta para decirte cuando tienes que emplear uno. Si es verdad que normalmente se usan en webs que tienen mercados internacionales que necesitan dar respuesta rápida a los clientes donde no se encuentre alojado el servidor primario. También se suele usar mucho para webs que tienen altos picos de tráfico, sea por demanda temporal, picos diarios, demanda por termoradas del año, etc…

Si crees que tu web está siendo constantemente atacada por terceros para tirar tu servidor abajo, puedes mitigar ese tráfico balanceándolo entre diferentes PoP’s del content delivery network.

¿Se nota mucho el uso de un CDN?

Bueno, esto es una pregunta que nos suelen hacer los lectores y la respuesta es siempre la misma: Depende. No todas las webs son iguales ni todas tienen el mismo grado de optimización. Por eso, emplear un servicio como este puede dar mejores frutos en un tipo de proyecto que otro.

Proveedores que tienen más PoP’s por el mundo

Cloudflare

que es un CDN pop cloudflare

CloudFlare es uno de los Content Delivery Network más usado del mundo por sus características y, como no, su precio -tiene una versión gratuita-. Tiene una alta presencia a lo largo del mundo. Su especialidad son los PoP’s en Europa, EEUU y algo de presencia en Asia. También tiene algunos puntos de servicio en Latino América, África y Australia. Pero donde más presencia tiene es en Europa y EEUU. Actualmente tiene 151 puntos de servicio.

Se trata de un servicio con servidores proxy inversos.

CloudFlarehttps://www.cloudflare.com/es-es/

Incapsula

que es un CDN pop incapsula

Incapsula es otro proveedor que ofrece lo mismo que CloudFlare pero con menor prestaciones. Es decir, ofrece lo mismo que CloudFlare pero está capado a 50GB de transferencia mensual. Pero sigue siendo gratis. También cuenta con las mismas funcionalidades que CloudFlare. La única pega es la poca presencia de PoP por el mundo. En este caso, Incapsula cuenta en este momento con 44 PoP’s en el mundo. Donde más presencia tienen es en Europa y EEUU, en el resto del mundo son prácticamente invisibles.

Se trata de un servicio con servidores proxy inversos.

Incapsulahttps://www.incapsula.com/incapsula-global-network-map.html

Amazon CloudFront

que es un CDN pop amazon cloudfront

Uno de los grandes que se ha ido abriendo paso a paso en el sector. Amazon, con su proyecto Amazon Web Services (AWS) está golpeando el sector a muy fuerte debido a su relación calidad-precio. Amazon hace tarifas pay as you go, es decir, pagas según usas. Y encima tiene tarifas muy asequibles. Lo malo es la dificultad que tiene de configuración para gente que no está estrechamente especializada en este tipo de configuraciones. Por eso debes leer muy bien como configurar este CDN.

Amazon cuenta actualmente con presencia en EEUU, Europa, algo de Asia y muy poquito en el resto del mundo aunque estos funcionan muy pero que muy bien. Es un servicio muy maduro, asentado y competitivo en el sector. Actualmente cuenta con 119 Pop’s. No está nada mal.

Se trata de un servicio con servidores por subdominio.

Amazon CloudFronthttps://aws.amazon.com/es/cloudfront/details/

KeyCDN

que es un CDN pop keycdn

Es un proveedor CDN que cuenta con poquitos PoP’s alrededor del mundo pero son muy robustos. Aguantan mucha capacidad de tráfico, balancean muy bien la carga y es uno de los pocos proveedor que tienen buena presencia en Latinoamérica. Este último no por PoP’s sino por lo altamente robustos que son. Tienen aproximadamente 35 PoP’s de acceso.

Se trata de un servicio con servidores por subdominios.

KeyCDNhttps://www.keycdn.com/network

Como instalar un CDN para en WordPress

Ya que sabes que es un Content Delivery Network, que tipos hay, que es un servidor proxy inverso, etc, te voy a enseñar a montar un CDN en tu WordPress. Para este tutorial voy a emplear CloudFlare, por su servicio gratuito y el buen servicio que prestan. Para ello necesitaremos:

  • Acceso al dominio que funciona con WordPress para cambiar las DNS
  • Una cuenta en CloudFlare, recuerda, es gratuito
  • Instalar un plugin en WordPress de caché; primero para crear un domain sharding para paralelizar la carga de archivos estáticos y crear una copia estática de la web en el CDN de CloudFlare.

Paso 1. Registro en CloudFlare

Como te decía antes, CloudFlare es gratuito y cualquier persona puede registrarse. Rescuerda que CloudFlare actúa como CDN y como protector de ataques DDOS, minificar archivos, etc. Pero lo que vas a necesitar es lo más sencillo. Para registrarte en CloudFlare haz click aquí: https://www.cloudflare.com/es-es/.

Al acceder a la página web verás un diseño elegante donde tendrás que hacer click en “Registrarse“. Para continuar, crea una cuenta rellanando los datos del formulario y accediendo haciendo click en “Create Account” como ves en la imagen:

que es un CDN registrarse en cloudflare

Te llegará un correo electrónico de CloudFlare a tu cuenta de correo, en el cual, deberás hacer click en el enlace de verificación y tu cuenta será activada. ¡Bien! Ya has hecho el primer paso, poco a poco. Ahora solo tienes que acceder a tu cuenta de CloudFlare en la misma página de antes solo que en vez de hacer click en “Registrate“, tienes que hacer click en “Iniciar sesión“.

Paso 2. Crear o asociar dominio en CloudFlare

En la primera pantalla que nos saldrá tras acceder a la cuenta, te saldrá una ventana donde poner el nombre del dominio de tu página web. En este caso yo usaré este mismo dominio optimizarwordpress.com. Entonces en la caja que te debería salir, pones el nombre de tu dominio como aquí:

que es un CDN asociar dominio cuenta cloudflare

Haz click en “Add Site” ó “Añadir sitio” tras introducir el nombre de dominio y la siguiente pantalla será la que te informará de los pasos que deberás cumplir, que es lo que sucederá y que si estás de acuerdo, hagas click en “Next” o “Siguiente“. En este caso rastreará y encontrará las DNS de tu dominio. Este es el mensaje que debería salir:

que es un CDN rastreo de DNS de CloudFlare

El siguiente paso será escoger el plan de CDN que quedamos, en este caso el gratuito aunque dependerá de tus necesidades o requerimientos.

que es un CDN precio plan de CDN

Saldrá un aviso comunicándote cual es el plan escogido, si estás seguro y sus condiciones. No te preocupes, no te van a cobrar nada, es totalmente gratuito de por vida. Hacemos click en “confirm” o “confirmar” sin ningún tipo de problema o preocupación.

que es un CDN condiciones del plan gratuito

El siguiente paso que hará CloudFlare será rastrear toda la condiguración de las DNS actuales que existen para tu dominio y te lanzará un listado de ellas por si necesitas modificar alguna en ese momento. No es obligatorio, solo te pregunta y si quieres cambiar algún tipo de servicio. Ejemplo:

que es un CDN escaneo de DNS activo

Si tras revisar todo está bien, es hora de seleccionar que servicios quieres proteger con CloudFlare. Por defecto, la herramienta marca como protegido el dominio como tal y el CNAME que contiene el dominio con www. Si hubiese más servicios que quieras proteger, solo tienes que poner la nube de color naranja en cada registro DNS. Personalmente no te recomiendo hacer esto último si no tienes conocimientos de como funciona el servicio. Es algo más avanzado. Haz click en “Continue” o “Continuar“.

que es un CDN boton continuar configuracion bien hecha

Paso 3. Crear o asociar dominio en CloudFlare

El siguiente paso es, tras seleccionar que queremos proteger o no, es cambiar las DNS en nuestro dominio para que este apunte a los servidores de CloudFlare. Para eso, tras haber hecho “click” en el último paso anterior, CloudFlare nos aprovisionará de las DNS que debemos cambiar en nuestro dominio. Por ejemplo:

que es un CDN cambiar DNS del dominio

CloudFlare te dice que tienes que cambiar las DNS actuales por las que el te especifica que, en mi caso, son:

  • lucy.ns.cloudflare.com
  • zeus.ns.cloudflare.com

Paso 3. Cambiar las DNS en tu proveedor para que la web apunte a CloudFlare

Ahora tienes que ir a tu proveedor de dominios donde tengas el dominio registrado, por ejemplo, en mi caso, uso Raiola Networks. Una vez que acceder al panel de administración del dominio, busca donde administrar las DNS. En mi caso están aquí:

que es un CDN cambiar DNS dominio Raiola Networks

Una vez accedes a la gestión de las DNS del dominio en tu panel de cliente, verás algo como esto:

que es un CDN cambios DNS personalizados

Por defecto, el dominio de tu web apunta a los DNS de tu servidor web actual. Si alguna vez hiciste un cambio de DNS, la opción de “usar nameservers personalizados” estará marcada. Si no es así, márcala ahora y coloca los DNS proporcionados por CloudFlare. ¡Estupendo! ¡Tu web ya está apuntando a CloudFlare!

NOTA: Importante, no todos los dominios propagan sus DNS en el mismo lapso de tiempo. Esto puede tardar desde segundos o minutos hasta un máximo de 48 horas dependiendo del tipo de dominio que se trate.

Suponiendo que las DNS ya han propagado, que ya está todo listo para seguir configurando CloudFlare en WordPress. Para comprobar si tus DNS han sido propagadas o no, te recomiendo usar esta herramienta gratuita muy buena: https://dnslookup.es/. Ahora solo queda notificar al CDN de CloudFlare que has terminado de configurar todo lo que te pedía. Para hacer eso, vuelve a CloudFlare y dale al botón de “Continue” o “Continuar” de la sección donde copiaste las DNS.

que es un CDN cambiar DNS del dominio ya realizado

Bien, ahora pueden pasar dos cosas. Puede pasar que CloudFlare haya detectado el cambio de DNS automáticamente o que tengas que forzar a que las re escanee. Si te ocurre esto segundo, haz click en donde dice: “Recheck NameServers” como en esta imagen:

que es un CDN re escanear configuracion DNS

Si las DNS se han propagado correctamente y CloudFlare las detecta, desaparecerá la ventana anterior y saldrá una como está:

que es un CDN servicio CDN activo de CloudFlare

¡Toma! Ya has configurado tu dominio para trabajar con CloudFlare. Ahora solo nos queda optimizar WordPress con la ayuda de esta fantástica herramienta gratuita.

Paso 4. Configuración básica de CDN en CloudFlare

Sabes que CloudFlare puede actuar como CDN por subdominis o como servidor proxy inverso e incluso como optimizador de código. La idea esencial de un CDN es la de cachear una web y mostrar esas páginas a los visitantes en un PoP’s más cercano posible. Pero es que CloudFlare te permite además usar su tecnología para mostrar los elementos estáticos a través de sus servidores como si de un servidor web proxy inverso se tratara. ¡Y aún no queda ahí la cosa! Si tú tienes un plugin de caché, no te haría falta, puesto que CloudFlare te permite minificar CSS, JS y HTML ¡Y todo esto gratis! ¡Increíble!

Como queremos usar el servicio como un CDN normal y corriente, es decir, que haga una caché de nuestra web y ya, debes realizar la configuración siguiente. Dentro del panel de administración de CloudFlare verás una barra superior con un montón de opciones. En este caso seleccionamos “Firewall“:

que es un CDN opciones menu cloudflare firewall

Lo que vas a hacer en esta sección es capar o desactivar que CloudFlare tenga una capa delante de tu web que proteja la seguridad de tu sitio ya que solo queremos usar CloudFlare como CDN nativamente. Para hacer esto, baja un poco y verás estas opciones:

que es un CDN opciones menu cloudflare firewall desactivar seguridad

En la primera sección selecciona la opción de “Esessentially Off” para desactivar el servicio. Hecho esto, la opción de debajo, que va de la mano, no debería tener validez alguna pero por si acaso marca o selecciona la opción de 1 year (1 año). Ahora que ya tienes la opción de seguridad desactivadas, tienes que desactivar la optimización de código que ejerce en tu web. Para eso, nuevamente dirígete a la opción de “Speed“:

que es un CDN opciones menu cloudflare speed

Si vas un poco más abajo encontrarás dos secciones que hay que configurar: “Auto Minify” y “Rock Loader“. La primera de las herramientas vale para optimizar el código JS, CSS, HTML de la web automáticamente pero no lo recomiendo. Yo prefiero usar un plugin que trabaje como cacheador de página directamente. La última, “rocket loader” sirve para mejorar el tiempo de carga de los javascript de forma asíncrona. Lo desaconsejo por la misma razón y porque en este caso solo queremos usar CloudFlare como un CDN nativo.

que es un CDN autominificar CSS HTML y JS

Si te fijas, he desmarcado las opciones de auto minificación de la web. El siguiente paso es hacer lo mismo, es decir, desactivar el módulo Rock Loader en la parte inferior de la sección:

que es un CDN desactivar rocket

Mejorar aún más la eficiencia de un CDN

Aparte de la configuración como Content Delivery Network, podemos usar la técnica avanzada de Domain Sharding para paralelizar la carga de los elementos estáticos y mejorar aún la carga del CDN. Te adelanto que usar esta técnica solo tiene eficiencia en servidores que aún usan protocolos HTTP inferiores a HTTP/2.

Cuanto cuesta un CDN

Depende de cada proveedor pero te puedo garantizar que los precios son muy económicos. En algunos pagas en función de la demanda, en otros una cuota mensual, en otros un precio anual, etc. He analizado los precios de un CDN entre los diferentes proveedores y he obtenido la siguiente tabla de costes:

  • Amazon CloudFront: https://aws.amazon.com/es/cloudfront/pricing/ desde 0,085 USD / GB de transferencia.
  • CloudFlare: https://www.cloudflare.com/es-es/plans/ Versión gratuita o plan básico desde 20 dólares/mes.
  • KeyCDN: https://www.keycdn.com/pricing desde 0,04 USD / GB
  • Incapsula: https://www.incapsula.com/pricing-and-plans.html desde 59 dólares/mes

Conclusiones de usar un CDN

Tras repasar que es un CDN, cuanto cuesta, para que sirve, proveedores, etc… es hora de llegar a una conclusión. ¿Usar un CDN es vital hoy en día? Si y no. Hoy existe una globalización inmensa. Lo mismo tienes un tráfico de Venezuela que de España que de Italia que de Argentina y debes optimizar la entrega de recursos para cada uno de esos países. Analiza si realmente necesitas un CDN, analiza costes y rendimiento y analiza la escalabilidad que te puede ofrecer usar un CDN.

Yo recomiendo el uso de un CDN en webs que tienen mucha presencia geográfica, muchos archivos estáticos que cargar, altos picos de tráfico que soportar, si tu web consume mucho ancho de banda, etc. Son un montón de variables que te harán decidir si realmente necesitas el servicio o no.