Un bogue logiciel dans le système de gestion DNS de DynamoDB d'Amazon Web Services a déclenché une panne de 15 heures affectant des millions de personnes dans le monde. La défaillance a commencé dans la région US-East-1 et s'est propagée pour impacter des services comme Snapchat et Roblox. Les ingénieurs d'Amazon ont détaillé la cause profonde comme une condition de course ayant conduit à des états de réseau incohérents.
La panne a commencé dans la région US-East-1 d'Amazon, le hub le plus ancien et le plus utilisé de l'entreprise, en raison d'une condition de course dans le composant DynamoDB DNS Enactor. Ce système surveille les équilibreur de charge en mettant à jour les configurations DNS pour les points de terminaison AWS. Comme décrit par les ingénieurs d'Amazon, l'Enactor a connu des retards élevés dans la mise à jour des points de terminaison DNS, tandis qu'un DNS Planner séparé générait de nouveaux plans. Un second Enactor a ensuite implémenté ceux-ci, invoquant un processus de nettoyage qui a supprimé un plan plus ancien juste au moment où le premier Enactor retardé l'appliquait, écrasant le plus récent.
"Lorsque le second Enactor (appliquant le plan le plus récent) a terminé ses mises à jour de points de terminaison, il a ensuite invoqué le processus de nettoyage des plans, qui identifie les plans qui sont significativement plus anciens que celui qu'il vient d'appliquer et les supprime," a expliqué Amazon. Cela a laissé le système dans un état incohérent, supprimant toutes les adresses IP pour le point de terminaison régional et empêchant les mises à jour ultérieures, nécessitant une intervention manuelle pour résoudre le problème.
La défaillance de DynamoDB a perturbé les connexions pour les systèmes dépendant du point de terminaison US-East-1, affectant à la fois le trafic client et les services internes AWS. Elle a surchargé les instances EC2, causant des retards dans la propagation des états de réseau même après la restauration. "Bien que de nouvelles instances EC2 puissent être lancées avec succès, elles n'auraient pas la connectivité réseau nécessaire en raison des retards dans la propagation des états de réseau," ont noté les ingénieurs. Cela s'est étendu à un équilibreur de charge réseau, entraînant des erreurs dans les fonctions AWS telles que la création de clusters Redshift, les invocations Lambda, les tâches Fargate, et les opérations dans Managed Workflows for Apache Airflow et le AWS Support Center.
L'incident a duré 15 heures et 32 minutes, avec DownDetector d'Ookla enregistrant plus de 17 millions de rapports de 3 500 organisations, principalement aux États-Unis, au Royaume-Uni et en Allemagne. Snapchat, AWS et Roblox étaient les services les plus affectés, le classant parmi les plus grandes pannes enregistrées. En réponse, Amazon a désactivé l'automatisation du DynamoDB DNS Planner et Enactor à l'échelle mondiale pour corriger la condition de course et ajouter des garde-fous. Ookla a mis en lumière les risques de la concentration régionale, notant que les applications globales routent souvent via US-East-1, amplifiant les impacts et soulignant la nécessité de conceptions multi-régionales pour contenir les défaillances.