В прошлом посте (Отказы ИС 1. Amazon (DynamoDB)) был описан отказ БД DynamoDB из-за ошибки службы управления метаданными. Однако отказ сбоем только в DynamoDB не ограничивается. Ниже описаны проблемы смежных сервисов Amazon.
Simple Queue Service (SQS). На ранних этапах сбоя DynamoDB, SQS работал с повышенным фоном ошибок и с немного большей задержкой. Amazon SQS использует в своей работе DynamoDB для хранения очередей. Когда информация об очереди закэширована в SQS и не доступна напрямую для API непосредственной отправки/приема сообщений, кэш часто обновляется, чтобы корректно отразить операции создания, удаления и изменения, выполняющиеся в инфраструктуре Amazon. Когда DynamoDB перестал блокировать трафик в 05:45 PDT (с тем, чтобы дать возможность сервису метаданных восстановиться), SQS не мог считывать данные из БД, что привело к значительному повышению фона ошибок. Когда в 07:10 PDT трафик стал восстанавливаться, сервис очередей восстановился, данные в очередях в результате инцидента потеряны не были.
После инцидента сервийс SQS был доработан с тем, чтобы он не создавал ошибок даже в случае, когда сервис метаданных неоступен.
EC2 Auto Scaling. Между 02:15 и 07:10 API сервиса отдавала большое число ошибок. С 07:10 до 10:52 в EC2 наблюдались существенные задержки при выполнении нового подключения, либо отключении старого. Уже имевшиеся подключения продолжали работать корректно в течение всего инцидента.
Сервис хранит в DynamoDB информацию о группах и конфигурацих запуска. С момнета начала инцидента EC2 не мог обновлять внутреннюю таблицу данных при вызове его API. Когда DynamoDB было восстановлено, началось восстановление работы сервиса, которое не было закончено из-за накопившихся за время инцидента не обработанных активностей. Запуск и остановка сервиса осуществляется в фоновых процессах. В течение инцидента накопилось большое количество активностей, связанных с вышеупомянутым фоновым планировщиком. Эти процессы обрабатывались до 10:52.
Помимо мероприятий, сделанных командой DynamoDB, заключавшихся в обеспечении быстрого восстановления при образовании большого лога необработанных запросов, Amazon также изменил подход к разделению работ над серверами EC2 (чтобы большее их число можно было выполнять в параллельном режиме), внедрил механизмы удаления старых активностей и увеличил мощность серверов для обработки запоросов.
CloudWatch. Начиная с 02:35 сервис метрик Amazon - CloudWatch, - начал регистрировать задержки, отсутствие метрик EC2, а также возросшее число ошибок. CloudWatch использует внутреннее хранилище для добавления информации о членстве в группе автомасштабирования во все входящие запросы сервиса EC2. С 02:35 до 05:45 ошибки в DynamoDB обуславливали нестабильный доступу к метрикам EC2. CloudWatch также заметил ненормально низкую активность метрик других сервисов, использующих DynamoDB, усугбляя проблему доступа к метрикам.
Далее примерно с 05:51 до 07:10 CloudWatch сообщил о значительно возросшем фоне ошибок вызовов API сервиса PutMetricData, что влияло на все метрики Amazon, а также метрики, созданные пользователями. Ошибки были связаны с доступом к данным о членстве, упомянутым выше. Сервисы CloudWatch восстановились к 07:29.
Для уменьшения влияния DynamoDB на CloudWatch Amazon уменьшил размер пакета до минимально возможного. Также в разработке сервисы быстрой доставки метрик за счет сквозной записи кэшей. Этот кэш должен предоставить возможность получать метрики без их ее сохранения. Кроме того он обеспечит большую защиту данных.
Console. AWS console также работала не стабильно у некоторых пользователей между 05:45 и 07:10. Пользователи, уже зашедшие в консоль оставались подключенными к ней. Те же, кто пытался войти в систему сталкивались с высокими задержками при входе. Это связано было с высокими задержками API, полагавшегося на DynamoDB. Для успешного входа вызов к этому API не обязательно должен пройти без ошибок, но из-за большог таймаута, этот запрос, блокировал процесс входа на десятки секунд.
Таймаут запроса уже был уменьшен и отправлен на тестирование. К сожалению, до начала инцидента новая версия консоли еще не была обновлена на релизе.
P.S. Сбой в системе хранения затронул большое число сервисов, однако, выше приведены основные - т.е. те, которые Amazon сам посчитал таковыми.