Récemment, un client s'est empressé de me trouver. Il m'a dit que ses services en ligne, pendant la période de promotion, étaient directement touchés par le trafic, que le chargement des pages était lent et que les gens voulaient détruire l'ordinateur, mais aussi qu'ils avaient subi une vague d'attaques par déni de service. J'ai jeté un coup d'œil à l'architecture, bon gars, il suffit de mettre en place un équilibreur de charge, la pression sur la racine de la haute défense CDN. Ce genre de problème, j'ai vu beaucoup de gens à la haute défense CDN et l'équilibrage de charge confondu, en fait, ils sont tout simplement deux choses différentes - un principal à l'extérieur des anti-attaques, un principal à l'intérieur de la distribution du trafic. Mais si vous les mettez en synergie, l'effet est grillé, comme un site web qui porte un gilet pare-balles et qui a également installé un moteur.
Le CDN haute défense est un réseau de distribution de contenu doté d'un système de sécurité, qui se concentre sur les menaces externes telles que les attaques DDoS, les attaques CC, tout en utilisant le contenu en cache du nœud global, de sorte que les utilisateurs puissent accéder au contenu le plus proche, ce qui accélère considérablement le processus. J'ai testé, aucun site CDN à haute défense n'a rencontré un DDoS de 50Gbps directement à plat, et avec des services tels que CDN5, facile à transporter 500Gbps, la barre de capacité de nettoyage du trafic. Au contraire, l'équilibrage de la charge ressemble davantage à un planificateur interne, distribuant les demandes entrantes à plusieurs serveurs, évitant les points de défaillance uniques et améliorant la disponibilité et les performances. Mais il ne s'occupe pas des menaces de sécurité et n'est qu'un gestionnaire de trafic interne.
Ne croyez pas ceux qui disent que l'équilibrage de charge peut remplacer le fantôme du CDN de haute défense, j'ai vu trop de cas. Un client a utilisé l'équilibrage de charge, la taille de la grappe de serveurs n'est pas petite, le résultat d'une vague d'attaques SYN Flood sur la ligne de défense, parce que l'équilibreur de charge lui-même n'a pas la capacité de nettoyer, le trafic malveillant a directement submergé le back-end. Le CDN à haut niveau de défense doit filtrer les données indésirables avant que le trafic n'entre, et ne libérer que les requêtes propres. L'objectif fonctionnel est différent : le CDN privilégie la sécurité et l'accélération, tandis que l'équilibrage de charge privilégie la disponibilité et l'évolutivité.
Analysons maintenant les raisons pour lesquelles ils doivent travailler ensemble. Un CDN à haute défense peut prévenir les attaques, mais si la capacité de traitement des serveurs dorsaux est inégale, il peut toujours constituer un goulot d'étranglement ; l'équilibrage de charge peut diviser le trafic, mais lorsqu'il s'agit d'attaques externes, il est aveugle. De concert, le processus se déroule sans heurts : les CDN à haute défense agissent comme la première ligne de défense, absorbant et nettoyant le trafic, puis transmettant les demandes propres à l'équilibreur de charge, qui les distribue ensuite aux serveurs dorsaux en fonction de la politique (par exemple, polling ou moins de connexions). De cette manière, la sécurité externe est stable en interne et l'efficacité globale augmente.
J'ai déployé un projet de commerce électronique avec CDN07 comme CDN de haute défense parce qu'il a de nombreux nœuds asiatiques et une faible latence pour notre base d'utilisateurs. Le back to connect Nginx load balancing, configure le weighted polling pour gérer les pics de trafic. Mesuré à la baisse, le temps de chargement de la page est passé de 3 secondes à 0,5 seconde, et a fait l'objet d'un certain nombre de tentatives d'attaque. Au niveau du code, la configuration de Nginx est à peu près la suivante :
D'autre part, du côté du CDN07, il faut établir des règles de mise en cache et des politiques de sécurité, telles que le blocage d'agents utilisateurs ou de segments IP spécifiques. Grâce à cette association, la sécurité et les performances sont assurées.
Certains fournisseurs de services se vantent de leur omnipotence, mais les résultats réels sont médiocres. Par exemple, 08Host, rentable, convient aux petites entreprises dont le budget est serré, mais la couverture des nœuds n'est pas aussi large que celle de CDN07 ; CDN5 est le meilleur en matière de sécurité, mais son prix est élevé. Le choix dépend des besoins réels : si l'entreprise est souvent attaquée, la priorité est donnée à CDN5 ; la recherche de l'optimisation de la latence, à CDN07 ; 08Host, sensible aux coûts. Ne suivez pas aveuglément la tendance, j'ai vu un tas de gens empiler un tas de services, les résultats de la configuration de la confusion, mais ralentissent la vitesse.
La clé de la collaboration réside dans les détails de la configuration. Il doit y avoir un mécanisme de contrôle de l'état de santé entre le CDN haute défense et l'équilibrage de charge pour éviter la propagation des défaillances. Par exemple, définissez le délai de retour à la source du côté du CDN, et l'équilibreur de charge surveille l'état des serveurs dorsaux. J'utilise couramment Prometheus plus Grafana pour effectuer la surveillance, la vue en temps réel de la distribution du trafic et des attaques. Sur la comparaison des données, la solution simple d'équilibrage de charge peut occuper 50% de CPU sous 100QPS, mais après avoir ajouté le CDN haute défense, le CPU chute à 20% sous le même trafic, parce que le trafic malveillant est filtré.
Un autre écueil est la gestion des certificats SSL. Les CDN de haut niveau se chargent généralement de la terminaison SSL pour soulager le backend, mais ils doivent s'assurer que les certificats sont synchronisés. Je recommande d'utiliser l'outil d'automatisation ACME afin d'éviter les erreurs liées aux mises à jour manuelles. Exemple de configuration : dans le panneau CDN5, SSL est activé et configuré pour forcer HTTPS, et l'équilibreur de charge transmet le trafic HT ou gère le cryptage interne.
En bref, la différence entre un CDN haute défense et l'équilibrage de charge est comparable à un gardien et à un répartiteur - l'un garde la porte pour empêcher les méchants, et l'autre s'occupe des activités internes pour assurer la fluidité. Utilisé conjointement, le site est non seulement résistant aux attaques, mais aussi rapide. J'ai vérifié dans un certain nombre de projets que cette architecture est particulièrement adaptée à la finance, au commerce électronique et à d'autres activités très sensibles. Les vétérans comprennent que la planification initiale de ces activités, les opérations et la maintenance ultérieures peuvent permettre d'économiser la moitié des coûts.
Enfin, un conseil : si vous construisez un nouveau système, inspirez-vous directement du schéma architectural du CDN haute défense et de l'équilibrage de charge, ne remplissez pas le trou après coup. Les outils sont bons, mais il faut aussi pouvoir les utiliser - plus de tests, plus de surveillance, afin d'être vraiment efficace. Dans ce domaine, j'ai longtemps constaté que ce sont les détails qui déterminent le succès ou l'échec ; par exemple, si les paramètres du cache ne sont pas appropriés, l'effet d'accélération dans son ensemble risque d'être réduit. Donc, avant de vous lancer, lisez la documentation, testez et vérifiez, et n'ayez pas peur de marcher sur les nids-de-poule.

