Um bug de software no sistema de gerenciamento DNS do DynamoDB da Amazon Web Services desencadeou uma interrupção de 15 horas que afetou milhões em todo o mundo. A falha se originou na região US-East-1 e se propagou para impactar serviços como Snapchat e Roblox. Engenheiros da Amazon detalharam a causa raiz como uma condição de corrida que levou a estados de rede inconsistentes.
A interrupção começou na região US-East-1 da Amazon, o hub mais antigo e mais utilizado da empresa, devido a uma condição de corrida no componente DynamoDB DNS Enactor. Esse sistema monitora balanceadores de carga atualizando configurações DNS para endpoints da AWS. Como descrito pelos engenheiros da Amazon, o Enactor experimentou altos atrasos na atualização de endpoints DNS, enquanto um DNS Planner separado gerava novos planos. Um segundo Enactor então implementou esses, invocando um processo de limpeza que excluiu um plano mais antigo bem quando o primeiro Enactor atrasado o aplicou, sobrescrevendo o mais novo.
"Quando o segundo Enactor (aplicando o plano mais novo) concluiu suas atualizações de endpoints, ele invocou o processo de limpeza de planos, que identifica planos que são significativamente mais antigos do que o que acabou de aplicar e os exclui," explicou a Amazon. Isso deixou o sistema em um estado inconsistente, removendo todos os endereços IP para o endpoint regional e impedindo atualizações adicionais, exigindo intervenção manual para resolver.
A falha do DynamoDB interrompeu conexões para sistemas que dependem do endpoint US-East-1, afetando tanto o tráfego de clientes quanto serviços internos da AWS. Isso sobrecarregou instâncias EC2, causando atrasos na propagação de estados de rede mesmo após a restauração. "Embora novas instâncias EC2 pudessem ser lançadas com sucesso, elas não teriam a conectividade de rede necessária devido aos atrasos na propagação de estados de rede," notaram os engenheiros. Isso se espalhou para um balanceador de carga de rede, levando a erros em funções da AWS, como criar clusters Redshift, invocações Lambda, tarefas Fargate e operações em Managed Workflows for Apache Airflow e o AWS Support Center.
O incidente durou 15 horas e 32 minutos, com o DownDetector da Ookla registrando mais de 17 milhões de relatórios de 3.500 organizações, principalmente nos EUA, Reino Unido e Alemanha. Snapchat, AWS e Roblox foram os serviços mais afetados, marcando-o como uma das maiores interrupções registradas. Em resposta, a Amazon desativou a automação do DynamoDB DNS Planner e Enactor globalmente para corrigir a condição de corrida e adicionar salvaguardas. A Ookla destacou os riscos da concentração regional, notando que aplicativos globais frequentemente roteiam através do US-East-1, amplificando impactos e enfatizando a necessidade de designs multi-região para conter falhas.