- PVSM.RU - https://www.pvsm.ru -
В этой части будут рассмотрены следующие варианты построения высокодоступных систем на базе AWS:
Первая часть здесь [2].
Построение высокодоступной системы между зонами доступности AWS.
Зоны досутности в Amazon это отдельные независимые, изолированые друг от друга датацентры в рамках одного региона. Зоны доступности имеют стабильное сетевое соединение между собой, но построены таким образом, что проблемы в одной зоне не влияют на доступность других зон (они имеют независимое электропитание, охлаждение и системы безопасности). Диаграмма ниже отображает существующее распределение зон доступности (обозначены фиолетовым цветом) в рамках регионов (обозначеные синим цветом).

Большинство высокоуровневых сервисов Amazon, такие как Amazon Simple Storage Service (S3), Amazon SimpleDB, Amazon Simple Queue Service (SQS), and Amazon Elastic Load Balancing (ELB) имеют встроенные механизмы для обеспечениея отказоусточивости и высокой доступности. Сервисы, относящиеся к базовой инфраструктуре, например, Amazon Simple Storage Service (S3), Amazon SimpleDB, Amazon Simple Queue Service (SQS), and Amazon Elastic Load Balancing (ELB), предоставляют такие возможности как Elastic IP, снимки образов и зоны доступности. Каждая отказоустойчивая и высокодоступная система обязана использовать эти возможности и использовать их правильно. Для того, чтобы система была надежной и доступной недостаточно просто развернуть ее в облаке AWS, ее нужно спроектировать так, чтобы приложение работало в нескольких зонах доступности. Зоны доступности находятся в различных географических областях, поэтому использование нескольких зон может обезопасить приложение от проблем в конкретной области. Следующая диаграмма показывает различные уровни (с примерами программного обеспечения), которые должны быть спроектированы с использованием нескольких зон доступности.

Для того, чтобы в случае неработоспобности одной зоны приложение продолжало работать без сбоев и потери данных в другой зоне, важно иметь независимые друг от друга программные стеки приложения в разных зонах (как в пределах одного региона так и в в разных регионах). На этапе проектирования системы нужно хорошо понимать какие части приложения привязаны к зоне.
Пример:
Типичное Web приложение состоит из таких уровней, как DNS, Load Balancer, Web сервер, сервер приложения, кеш, база данных. Все эти уровни могут быть распределены и развернуты в двух и более зонах доступонсти, так как описано ниже.

Также большинство встроеных блоков AWS изначально спроектированы с поддержкой доступности в нескольких зонах. Архитекторы и разработчики, работающие с блоками AWS на этапе проектирования приложения, могут использовать встроенные возможности для обеспечения высокой доступности.
Проектирование высокодоступной системы используя встроенные блоки AWS:
Эти блоки могут использоваться, как Web сервисы. Эти блоки изначально являются высокодоступными, надежными и масштабируемыми. Они имеют встроенную совместимость и возможность работы в нескольких зонах доступности. Например, S3 спроектирован для обеспечения 99.999999999% сохранности и 99.99% доступности обьектов в год. Со этими блоками можно работать через API при помощи простых вызовов. Все они имеют свои преимущества и недостатки, которые нужно учитывать при построении и работы системы. Правильное использование данных блоков может резко сократить затраты на разработку и создание сложной инфраструктуры и помогут команде сосредоточиться на продукте, а не на создании и поддержке инфраструктуры.
Построение высокодоступной системы между регионами AWS
На данный момент существует 7 регионов AWS по всему миру, и их инфраструктура увеличивается каждый день. Следующая диаграмма отображает текущую инфраструктуру регионов:

Использование AWS в нескольких регионах можно разделить на следующие категории: Cold, Warm, Hot Standby и Hot Active.
Cold и Warm больше относятся к аварийному восстановлению, в то время как Hot Stanby и Hot Active могут рассматриваться для проектирования высокодоступной системы между различными регионами. При проектировании высокодоступной системы между различными регионами необходимо учесть следующие проблемы:
Следующая диаграмма иллюстрирует простую высокодоступную систему в рамках нескольких регионов.

Теперь рассмотрим как решить эти проблемы:
Миграция приложения. Образы AMI, как S3, так и EBS, доступны только в пределах одного региона, соответственно все необходимые идентичные образы должны быть созданы во всех регионах, которые планируется использовать. Каждый раз при обновлении кода приложения соответсвующие обновления и изменения должны быть выполнены во всех регионах на всех образах. Для этого можно использовать автоматизационные скрипты, но лучше воспользоваться такими системами авто-конфигурирования как Puppet или Chef, это может сократить и упростить затраты на разворачивание приложений. Стоит отметить, что помимо AMI образов, существует такой сервис, как Amazon Elastic IP, который тоже работает только в пределах одного региона.
Миграция данных. Каждая сложная система содержит данные, распределенные между различными источниками данных, такими как реляционные базы данных, нереляционные базы данных, кеши и файловые хранилища. Ниже приведены некоторые технологии, рекомендуемые для использования при работе с неколькими регионами:
Так как все вышеописаные технологии являются асинхронными репликациями, нужно опасаться потери данных и не забывать о значениях RPO (допустимая точка восстановления) и RTO (допустимое время восстановления) для обеспечения высокой доступности.
Сетевой поток: возможность обеспечения потока сетевого трафика между различными регионами. Рассмотрим ключеывые моменты, которые нужно учесть при работе с сетевым потоком:
Построение высокодоступной системы между различными облачными и
Многие говорят о построении высокодоступной системы с использованием нескольких Cloud и

Большинство решений описаных в разделе для нескольких регионов AWS подходят и для данного случая.
При проектировании высокодоступных систем между разными Cloud провайдерами или разными датацентрами нужно тщательно определиться со следующими ключевыми моментами:
Синхронизация данных. Обычно это шаг не является большой проблемой, если хранилища данных могут быть установлены, развернуты у каждого из используемых Cloud провайдеров. Совместимость программного обеспечения для баз данных, инструментария и утилит для работы с базами, при условии, что они могут быть легко установлены, поможет решить проблемы с синхронизацией данных между разными провайдерами.
Сетевой поток.
Миграция рабочей нагрузки:
Образы Amazon AMI не могут быть доступны для других Cloud провайдеров. Новые образы для виртуальных машин должны быть созданы для каждого датацентра или провайдера, что может быть причиной дополнительных временных и денежных затрат.
Сложные скрипты для автоматизации, использующие Amazon API, должны быть переписаны для каждого Cloud провайдера с использованием соответствующего API. Некоторые Cloud провайдеры даже не предоставляют своего API для управления инфраструктурой. Это может привести к усложнению обслуживания.
Типы операционных систем, программное обеспечение, аппаратная совместимость, все это должно быть проанализировано и учтено при проектировании.
Унифицированное управление инфраструктурой может стать большой проблемой при использовании разных провайдеров, если для этого не используются такие инструменты, как RightScale.
Оригинал статьи: harish11g.blogspot.in/2012/06/aws-high-availability-outage.html [3]
Автор: Harish Ganesan
Автор: helldesigner
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/amazon/13369
Ссылки в тексте:
[1] хостинг: https://www.reg.ru/?rlink=reflink-717
[2] здесь: http://habrahabr.ru/post/147390/
[3] harish11g.blogspot.in/2012/06/aws-high-availability-outage.html: http://harish11g.blogspot.in/2012/06/aws-high-availability-outage.html
Нажмите здесь для печати.