Единственная точка отказа вызвала сбой Amazon, затронувший миллионы.

Недавний масштабный сбой Amazon Web Services, который нарушил работу многих онлайн-сервисов по всему миру, был вызван единственной первоначальной неисправностью, которая быстро распространилась по сложной сети Amazon, согласно анализу инженеров компании.

🧐

Купил акции по совету друга? А друг уже продал. Здесь мы учимся думать своей головой и читать отчётность, а не слушать советы.

Прочитать отчет 10-K

Amazon сообщила о серии сбоев, которые длились 15 часов и 32 минуты. Согласно Ookla, компании, занимающейся анализом сетевой информации, их сервис DownDetector получил более 17 миллионов сообщений о нарушениях, затронувших сервисы 3500 различных организаций. Большинство этих сообщений поступило из Соединенных Штатов, Соединенного Королевства и Германии. Snapchat, Amazon Web Services (AWS) и Roblox были наиболее часто затронутыми сервисами. Ookla описала инцидент как один из крупнейших интернет-сбоев, когда-либо зарегистрированных на их платформе.

Это всегда DNS

Amazon установила, что причиной сбоя стала ошибка в программном обеспечении системы, управляющей DNS DynamoDB. Эта система регулярно создает новые настройки DNS для проверки работоспособности своих балансировщиков нагрузки в сети AWS. Проблема заключалась в ‘race condition’ – ошибке, при которой работа системы зависит от непредсказуемого времени, что может привести к неожиданным и потенциально разрушительным сбоям.

Проблема возникла из-за части нашей системы под названием DNS Enactor, которая управляет тем, как трафик направляется между различными местоположениями AWS. Этот компонент постоянно обновляет списки доменных имен для повышения производительности. Он начал испытывать значительные задержки при попытке обновления этих списков, что приводило к повторным попыткам. В то же время другой компонент, DNS Planner, продолжал создавать новые планы трафика, а отдельный DNS Enactor начал приводить эти планы в действие, создавая конфликт.

То, как были запланированы эти два процесса, вызвало критическую проблему с синхронизацией, что в конечном итоге привело к остановке всего сервиса DynamoDB. Инженеры Amazon описали это следующим образом:

После того, как система обновила свою конечную точку последним планом, она начала очистку старых планов, удаляя те, которые значительно устарели. Однако первый процесс, который столкнулся с необычными задержками, применил к системе гораздо более старый план, перезаписав более новый. Проверка, предназначенная для предотвращения этого – обеспечение того, чтобы новые планы были новее существующих – не удалась из-за задержек. В результате более старый план был успешно применен. Процесс очистки затем удалил этот более старый план, ошибочно удалив все IP-адреса для системы. Это привело систему в несогласованное состояние, блокируя любые дальнейшие обновления. Требовалось ручное вмешательство оператора для исправления проблемы.

Проблема с DynamoDB в регионе US-East-1 вызвала ошибки, которые помешали некоторым системам подключиться. Это затронуло как клиентов, так и другие сервисы в Amazon Web Services.

Когда DynamoDB вышла из строя, это вызвало проблемы для сервисов Amazon EC2 в регионе US-East-1. Даже после исправления DynamoDB, EC2 продолжала испытывать трудности с большим количеством сетевых обновлений, которые требовалось обработать. Это означало, что, хотя новые экземпляры EC2 могли быть запущены, они не могли подключиться к сети из-за задержек в этих обновлениях.

Задержка в обновлении сетевой информации вызвала проблемы с ключевым сетевым балансировщиком нагрузки AWS, от которого многие сервисы AWS зависят для поддержания стабильности. Это привело к ошибкам подключения для клиентов, обращающихся к сервисам из региона US-East-1. В частности, проблемы затронули такие задачи, как создание или изменение баз данных Redshift, запуск функций Lambda и запуск задач Fargate – включая сервисы, такие как Managed Workflows для Apache Airflow, управление Outposts и доступ к Центру поддержки AWS.

Amazon временно отключил инструменты DynamoDB DNS Planner и DNS Enactor во всем мире, пока они решают проблему, которая иногда приводит к применению некорректных настроек DNS. Они также обновляют EC2 и его сетевой балансировщик, чтобы предотвратить это.

Поучительная история

Ookla указала на еще одну причину проблемы, отличающуюся от той, которую упомянула Amazon: большое количество пользователей, подключающихся через один и тот же регион Amazon (US-East-1), и отсутствие возможности автоматически перенаправлять их в другой, функционирующий регион. По словам Ookla:

Регион US-East-1 — это оригинальный и самый загруженный центр обработки данных AWS. Поскольку многие приложения, даже те, которые обслуживают пользователей по всему миру, полагаются на него для основных функций, таких как учетные записи пользователей, хранение данных и системная информация, сбой там — как это произошло недавно — может вызвать широко распространенные проблемы. Многие приложения, кажущиеся глобальными, фактически направляют трафик через Вирджинию, что означает, что проблема в этом регионе быстро влияет на пользователей по всему миру.

Современные приложения создаются путем подключения различных облачных сервисов, таких как хранилище данных, системы обмена сообщениями и автоматизированные функции. Когда ключевое соединение выходит из строя — например, если приложение не может связаться со службой, такой как Amazon’s DynamoDB — это создает цепную реакцию ошибок. Эти ошибки затем проявляются как проблемы для пользователей, даже если они не осознают, что корень проблемы заключается в облачном провайдере, таком как AWS. Именно это произошло недавно с перебоями в работе популярных сервисов, таких как Snapchat, Roblox, Signal, Ring и даже правительственных веб-сайтов, таких как HMRC, как сообщает Downdetector.

Это событие подчеркивает важный урок для облачных сервисов: проектировать сети без единых точек отказа важнее, чем просто исправлять такие проблемы, как состояния гонки. По сути, предотвращение полных сбоев должно быть приоритетом.

Согласно Ookla, ключ к повышению надёжности заключается не в устранении всех сбоев, а в эффективном управлении ими. Это означает создание систем в нескольких географических регионах, использование различных технологий и наличие чётких планов реагирования на инциденты. Они также предлагают правительствам признать облачные технологии как жизненно важную часть национальной и экономической стабильности и осуществлять надзор за ними соответствующим образом.

Смотрите также

2025-10-25 01:56