La panne mondiale d'Amazon ? Un simple couac de dns...
-
Une panne mondiale de 15 h 32 min a touché Amazon Web Services (AWS), paralysant des services comme Snapchat, Roblox et Signal. Selon Amazon, un bug logiciel dans le système DNS de DynamoDB a déclenché une situation de concurrence entre deux composants internes (« DNS Enactor » et « DNS Planner »), provoquant la suppression accidentelle des adresses IP et rendant le système incohérent.
Cette erreur a entraîné :
-
L’interruption du point de terminaison régional US-East-1, le plus utilisé d’AWS ;
-
Des pannes en cascade sur EC2, les équilibreurs de charge réseau et des services dépendants comme Lambda, Redshift ou Fargate ;
-
Des perturbations signalées par plus de 17 millions d’utilisateurs dans 3 500 organisations à travers les États-Unis, le Royaume-Uni et l’Allemagne.
AWS a depuis désactivé temporairement le planificateur DNS DynamoDB et l’automatisation associée afin de corriger le bug et renforcer les protections.
Ookla, via DownDetector, a qualifié l’événement d’une des plus grandes pannes Internet jamais enregistrées et a souligné un problème structurel :
la dépendance excessive au hub US-East-1, utilisé même par des applications « mondiales ». Cette centralisation a amplifié les effets de la panne.Enfin, Ookla recommande de repenser l’architecture du cloud :
→ multirégionalité, diversification des dépendances et gestion proactive des incidents, afin d’obtenir non pas « zéro échec », mais des échecs contenus.
La mécanique de la panne
DNS DynamoDB est un système qui surveille la stabilité des équilibreurs de charge, notamment en créant régulièrement de nouvelles configurations DNS pour les points de terminaison du réseau AWS. Une situation de concurrence est une erreur qui rend un processus dépendant d’événements temporels ou séquentiels variables et indépendants de la volonté des développeurs. Il peut en résulter un comportement inattendu et des pannes potentiellement dangereuses.
Dans ce cas, la situation de concurrence résidait dans DNS Enactor, un composant DynamoDB qui met constamment à jour les tables de correspondance de domaine des points de terminaison AWS individuels afin d’optimiser l’équilibrage de charge en fonction de l’évolution des conditions. Pendant son fonctionnement, DNS Enactor a subi des retards anormalement élevés, nécessitant de réessayer sa mise à jour sur plusieurs points de terminaison DNS. Pendant ce temps, DNS Planner, un autre composant DynamoDB, continuait de générer de nouveaux plans. Un autre DNS Enactor a ensuite commencé à les implémenter.
Le timing de ces deux actionneurs a déclenché la situation de concurrence, qui a fini par détruire l’intégralité de DynamoDB. Comme l’expliquent les ingénieurs d’Amazon :
Lorsque le deuxième Enactor (appliquant le plan le plus récent) a terminé ses mises à jour de point de terminaison, il a lancé le processus de nettoyage des plans, qui identifie les plans nettement plus anciens que celui qu’il venait d’appliquer et les supprime. Parallèlement à ce processus de nettoyage, le premier Enactor (dont l’application avait été anormalement retardée) a appliqué son plan beaucoup plus ancien au point de terminaison DDB régional, écrasant le plan plus récent. La vérification effectuée au début du processus d’application du plan, qui garantissait que le plan était plus récent que le plan précédemment appliqué, était obsolète à ce moment-là en raison des délais anormalement élevés de traitement d’Enactor. Par conséquent, cela n’a pas empêché l’ancien plan d’écraser le nouveau. Le processus de nettoyage du deuxième Enactor a ensuite supprimé cet ancien plan, car il était plusieurs générations plus ancien que le plan qu’il venait d’appliquer. Lors de la suppression de ce plan, toutes les adresses IP du point de terminaison régional ont été immédiatement supprimées. De plus, la suppression du plan actif a laissé le système dans un état incohérent, empêchant les mises à jour ultérieures du plan par les DNS Enacters. Cette situation a finalement nécessité l’intervention manuelle d’un opérateur pour la corriger.
La panne a provoqué des erreurs empêchant la connexion des systèmes s’appuyant sur DynamoDB du point de terminaison régional US-East-1 d’Amazon. Le trafic client et les services AWS internes ont été affectés.
Les dommages causés par la panne de DynamoDB ont ensuite mis à rude épreuve les services EC2 d’Amazon situés dans la région US-East-1. Cette pression a persisté même après la restauration de DynamoDB, car EC2 dans cette région devait gérer un important retard de propagation de l’état du réseau. Les ingénieurs ont ajouté : « Si de nouvelles instances EC2 pouvaient être lancées avec succès, elles ne disposaient pas de la connectivité réseau nécessaire en raison des retards de propagation de l’état du réseau. »
À son tour, le retard dans la propagation de l’état du réseau s’est répercuté sur un équilibreur de charge réseau dont dépendent les services AWS pour leur stabilité. Par conséquent, les clients AWS ont rencontré des erreurs de connexion dans la région US-East-1. Les fonctions réseau AWS affectées comprenaient la création et la modification de clusters Redshift, les appels Lambda et le lancement de tâches Fargate, telles que les workflows gérés pour Apache Airflow, les opérations de cycle de vie Outposts et le centre de support AWS.
Pour le moment, Amazon a désactivé le planificateur DNS DynamoDB et l’automatisation DNS Enactor dans le monde entier, le temps de corriger la situation de concurrence et d’ajouter des protections pour empêcher l’application de plans DNS incorrects. Les ingénieurs modifient également EC2 et son équilibreur de charge réseau.
Source et plus: https://arstechnica.com/gadgets/2025/10/a-single-point-of-failure-triggered-the-amazon-outage-affecting-millions/
-