Letsencrypt no es gratis por un año solamente?
Cómo utilizar Cloudflare para evitar exceso de consumo en el servidor
En el blog vengo usando el servicio gratuito de Cloudflare desde hace un tiempo ya con muy buenos resultados y, por ello, lo instalé en otros servidores sin problemas.
El otro día ví como a uno se le caía el servidor y aumentaban los costos por tener de golpe muchos visitantes en un sitio que había hecho para una cosa que es relevante una vez al año, puteaba por el consumo, todo esto lo podría haber resuelto fácilmente.
De hecho, más de la mitad de lo que están viendo lo sirve Cloudflare, ese 60% de ahorro no sólo baja el consumo de ancho de banda sino que el CPU del server tiene que responder a la mitad de los pedidos ¿Qué significa eso? Que tranquilamente ahora puede recibir el doble de tráfico (bueno, nunca entra tanta gente, pero se entiende).
A principios de año mencioné esto muy por arriba en mi nota sobre todo lo que hacía falta para que un sitio web funcionara bien hoy en día.
El 52% de lo que ven está cacheado por Cloudflare, el servicio gratuito te brinda una caché que entrega los contenidos repetidos, imágenes principalmente, al usuario sin tener que consumir de mi servidor directamente.
En una semana el sitio recibe unos 90k requests, así que ahorrarse el 60% es más que notable. En algunos sitios más "fijos" llego al 92% y en el que menos apenas un 35%, así es, no todo logra cachearlo perfecto.
Pero la idea está genial, un servidor antes de tu propio servidor y con la posibilidad de atajar cualquier ataque con un botón dedicado a ello. Si de pronto estás teniendo demasiado "éxito" o demasiados enemigos, podés activar el modo ataque y Cloudflare entregará una versión con un challenge de javascript y eso dejará afuera a los bots.
Configuración
La config es simple: hay que apuntar los DNS a Cloudflare.
Los dominios tienen sus servidores de DNS, en el caso de Cloudflare lo que hay que hacer es, primero crear la cuenta dedicada a ese dominio en el panel de Cloudflare y ahí mismo te dará los DNS que hay que cambiar.
Tratará de tomar toda la configuración previa de ese dominio y clonarla, se puede hacer a mano obviamente si son muy frikis o técnicos, tanto registros A, AAAA, CNAME, TXT, MX, etc.
Queda del lado de uno modificar los registros de DNS del dominio, si es un .com.ar se hará en nic.ar y a esperar unas cuantas horas, los .com, en el lugar donde lo tengas registrados, suelen actualizar más rápido.
En primera instancia no notarán ningún cambio, de hecho, recomiendo tirar un ping al dominio cada tanto para ver cuándo empieza a resolver el DNS de Cloudflare.
He tenido algunos problemas en algunos sitios por configuración de los servidores de éste, así que no es extraño que pueda fallar alguna vez. Digamos que mi tasa de acierto fue de 8 de 10 sitios sin problemas y de esos dos uno pude resolverlo y el otro no, entraba en un loop infinito de redirección.
Una vez cambiados los DNS Cloudflare se encargó de lentamente ir cacheando el contenido, no es inmediato.
En el wizzard de configuración ofrece otras opciones como el forzar SSL, protecciones extra y hasta Minify (ese déjenlo sin activar por las dudas), y listo, cubre la mayoría de los problemas.
Resultados y otras opciones
En varios servidores el uso bajó notablemente, especialmente en los que tenía mucho tráfico diario donde el contenido se muestra una y otra vez sin cambios, en sitios donde a cada minutos se actualiza contenido la performance baja bastante.
En el blog el CPU directamente está en reposo la mayor parte del tiempo, no sólo por cómo está programado (No es Wordpress, es mucho más eficiente y todo Query a la base de datos está hecho "a mano"), sino porque la mayor parte del tiempo el contenido entregado está cacheado.
Primero de forma local, es un HTML con CSS e imágenes, y todo ese contenido es luego re-cacheado por Cloudflare. Las imágenes no cambian así que esas persisten, por eso logro ese 72%.
E insisto, la baja de consumo de CPU es notable en algunos casos, pero no siempre, depende de cómo esté configurado el sitio también (ej: si usan Wordpress, cacheen también dentro del WP).
Lo otro que ayuda es el hecho de que mucha gente entra todos los días, eso hace que el contenido cacheado no "expire" naturalmente (Todo tiene un tiempo de permanencia) y no requiera ser renovado. Los sitios con poco tráfico no se van a beneficiar de esto hasta que no tengan un día de suerte y de golpe se llene de tráfico (puede pasar).
Dentro de Cloudflare hay muchos servicios pagos (la mayoría excede mis necesidades) y otros tantos gratuitos. Hasta puede brindar servicio de SSL gratuito (prefiero usar Letsencrypt en mis servidores, pero hay para todos los gustos), compresión (Minify), crear reglas para evitar spam (como expliqué aquí) , etc.
Tiene ruteo de emails pero siempre tuve mala suerte con Cloudflare porque Gmail y Outlook lo consideran spam, así que el manejo de correos es otra historia que prefiero dejar por fuera del sistema y rutearlo a mi propio servidor o a gmail directamente, ahí hay que entender un poco más sobre registros MX. En mi caso uso una cuenta de Protonmail 😋 para rutear todo lo que entra a mis emails como [email protected] porque hacía años que no recibía nada en Gmail.
Desde el punto de vista de la seguridad tiene Firewall por lo que desde el vamos da un rango de seguridad mayor, se encarga de atajar muchos pedidos ANTES de que alcancen tu servidor.
Tiene controles contra DDOS, contraataque de bots, y se puede controlar toda la seguridad de un servidor con Zero Trust que básicamente es una VPN con lo cual sólo podés entrar a subir archivos (FTP) o conectarte por SSH si estás en esa VPN. Uso eso para el blog también, es genial, nadie puede entrar si no es por esa VPN en particular.
Otros posts que podrían llegar a gustarte...