Aws Не Работает: Почему Небо Упало

21 апреля в 01:41 по тихоокеанскому времени произошел серьезный сбой в одном из дата-центров Amazon Web Services, «облака» для многих сайтов.

Некоторые крупные проекты (Reddit, Quora, Foursquare) вышли из строя или сильно пострадали.

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

И вот почему.

В AWS существует две концепции доступности: регионы и зоны доступности (AZ).

Всего существует пять регионов: два в США (западное и восточное побережье), один в Европе (Ирландия) и два в Азии (Токио, Сингапур).

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

AWS заявляет, что «размещая экземпляры в разных зонах доступности, вы можете защитить свои приложения от сбоев в одном месте».

Под «местом» они подразумевают « физическая независимость зоны доступности друг от друга и независимой инфраструктуры».

Судя по всему, это отдельные дата-центры( хотя из описания Амазона это не очевидно - возможно, это разные этажи/помещения в дата-центре с независимым электроснабжением и подключением по разным каналам - прим.

переулок ).

Они не должны рухнуть одновременно друг с другом, если только не произойдет катастрофа, охватывающая весь регион.

Зоны доступности также предлагают «недорогое соединение с малой задержкой между зонами доступности в одном регионе».

Межрегиональная же связь осуществляется через открытый Интернет и является относительно дорогой, медленной и ненадежной.

Это «правила игры».

Итак, если вы играете по правилам AWS и у вас есть база данных MySQL «главный/подчиненный» (возьмем наиболее распространенный пример), то по логике вам следует поместить главный и подчиненный сервер в один и тот же регион, но убедитесь, что они находятся в разных зонах доступности.

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

Вы подвергаетесь риску только в том случае, если, например, ураган обрушится на восточное побережье и разрушит центры обработки данных, но в остальном с вами все будет в порядке — по крайней мере, пока выполняются обещания AWS. Итак, в конце концов, у нас есть проблема.

Вчера несколько районов в регионе Восточного побережья были недоступны.

AWS нарушила свои собственные обещания относительно сценариев сбоев в зоне доступности.

Это означает, что у AWS есть какая-то общая точка отказа (при условии, что не произошел какой-то совершенно невероятный сценарий, например, одновременное физическое повреждение нескольких независимых инфраструктур).

Сайты, которые до сих пор не работают, вполне корректно выполняли свои условия «правил игры»; проблема в том, что AWS не следовала своим собственным спецификациям.

Было ли это связано с некомпетентностью, нечестностью или чем-то более простительным, мы просто не знаем на данный момент. Но разработчики Quora, Foursquare и Reddit очень компетентны и обвинять их было бы неправильно.

Конечно, теоретически можно защититься даже от катастрофических сбоев (множественных зон доступности), но для большинства предприятий эти дополнительные усилия и затраты на разработку того не стоят (или даже могут оказаться контрпродуктивными, усложняя систему).

Я уверен, что все сайты, которые сейчас не работают, имеют резервные копии.

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

На AWS это крайне сложно: серверы в разных регионах имеют разный набор опций, разные идентификаторы AMI, я думаю, что зарезервированные инстансы вообще нельзя перемещать между дата-центрами — в реальности передача управления в другой регион практически невозможна.

Вероятно, это потребует примерно тех же усилий, что и переход в совершенно другое облако, что, вероятно, является лучшим вариантом восстановления после такой катастрофы.

Насколько нам известно, Quora начала этот процесс в ту минуту, когда произошел сбой AWS, и еще не завершила его — это может занять день.

Короче говоря, вина здесь лежит исключительно на AWS, которая «гарантировала» нарушенные ею условия.

Ошибки случаются, но это вина AWS. И это не вина облачного хостинга как такового.

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

Я думаю, что многие люди пересмотрят свой выбор в пользу AWS. Еще несколько мыслей:

  • Причина, по которой так много сайтов размещено в регионе Восточного побережья, заключается в том, что именно здесь AWS в первую очередь внедряет новые функции.

    Это также самый дешевый вариант. И это, наверное, лучший регион для обслуживания трафика (хорошая производительность для Северной Америки, сносная производительность для Европы)

  • Причиной сбоя на самом деле стали дисковые массивы ЭБС (Elastic Block Store), которые с самого начала использования оказались катастрофическими с точки зрения надежности.

    Но это тема совсем другой статьи!

  • Массивы EBS могут находиться только в одной зоне доступности, и доступ к ним возможен только из этой зоны.

    Судя по всему, распределенная база данных Amazon RDS использует секретные API, которые позволяют получать доступ к EBS из других зон, но эти интерфейсы недоступны никому, кроме RDS (хм.

    компания из Сиэтла, которая использует секретные API для получения конкурентного преимущества - звучит как - это знакомо?)

Теги: #Облачные вычисления #Amazon Web Services #Amazon RDS #зона доступности #Зона доступности #Elastic Block Store #секретные API
Вместе с данным постом часто просматривают: