Segurança, Tecnologia

Um único ponto de falha causou a interrupção do serviço da Amazon, afetando milhões de usuários



A interrupção que afetou a Amazon Web Services e derrubou serviços essenciais em todo o mundo foi resultado de uma única falha que se propagou em cascata de sistema para sistema dentro da vasta rede da Amazon, de acordo com uma análise pós-evento realizada pelos engenheiros da empresa.

A série de falhas durou 15 horas e 32 minutos, informou a Amazon. A empresa de inteligência de rede Ookla afirmou que seu serviço DownDetector recebeu mais de 17 milhões de relatos de interrupção de serviços oferecidos por 3.500 organizações. Os três países com o maior número de relatos foram os EUA, o Reino Unido e a Alemanha. Snapchat, AWS e Roblox foram os serviços mais afetados, segundo os relatos. A Ookla disse que o evento foi “uma das maiores interrupções de internet já registradas pelo DownDetector”.

É sempre o DNS
A Amazon afirmou que a causa raiz da interrupção foi um bug de software no sistema de gerenciamento de DNS do DynamoDB. O sistema monitora a estabilidade dos balanceadores de carga, entre outras coisas, criando periodicamente novas configurações de DNS para endpoints dentro da rede AWS. Uma condição de corrida é um erro que torna um processo dependente do tempo ou da sequência de eventos que são variáveis ​​e fora do controle dos desenvolvedores. O resultado pode ser um comportamento inesperado e falhas potencialmente prejudiciais.

Neste caso, a condição de corrida residia no DNS Enactor, um componente do DynamoDB que atualiza constantemente as tabelas de pesquisa de domínio em endpoints individuais da AWS para otimizar o balanceamento de carga conforme as condições mudam. Enquanto o enactor estava em operação, ele “experimentou atrasos incomuns, precisando repetir a atualização em vários dos endpoints de DNS”. Enquanto o enactor tentava se recuperar, um segundo componente do DynamoDB, o DNS Planner, continuou a gerar novos planos. Em seguida, um DNS Enactor separado começou a implementá-los.

O momento em que esses dois enactors operaram simultaneamente desencadeou a condição de corrida, que acabou derrubando todo o DynamoDB. Como explicaram os engenheiros da Amazon.

A falha causou erros em sistemas que dependiam do DynamoDB no endpoint regional US-East-1 da Amazon, impedindo a conexão. Tanto o tráfego de clientes quanto os serviços internos da AWS foram afetados.

Os danos resultantes da falha do DynamoDB sobrecarregaram os serviços EC2 da Amazon localizados na região US-East-1. Essa sobrecarga persistiu mesmo após a restauração do DynamoDB, pois o EC2 nessa região precisava processar um “atraso significativo na propagação do estado da rede”. Os engenheiros explicaram: “Embora novas instâncias EC2 pudessem ser iniciadas com sucesso, elas não teriam a conectividade de rede necessária devido aos atrasos na propagação do estado da rede.”

Por sua vez, o atraso na propagação do estado da rede afetou um balanceador de carga de rede do qual os serviços da AWS dependem para estabilidade. Como resultado, os clientes da AWS experimentaram erros de conexão na região US-East-1. As funções de rede da AWS afetadas incluíram a criação e modificação de clusters Redshift, invocações do Lambda e inicialização de tarefas Fargate, como fluxos de trabalho gerenciados para Apache Airflow, operações de ciclo de vida do Outposts e o Centro de Suporte da AWS.

Por enquanto, a Amazon desativou o DynamoDB DNS Planner e a automação DNS Enactor globalmente enquanto trabalha para corrigir a condição de corrida e adicionar proteções para evitar a aplicação de planos DNS incorretos. Os engenheiros também estão fazendo alterações no EC2 e em seu balanceador de carga de rede.



You Might Also Like

No Comments

Leave a Reply