Настройка дискового хранилища EBS / EFS для аварийного восстановления

361
ziggy

Я думаю о том, как лучше всего настроить пару сред на AWS. Я хотел бы настроить два сервера:

  • Сервер приложений (работает веб-приложение и службы REST)
  • Сервер инструментов (работает несколько заданий ETL)

Конечным результатом должно быть два сервера приложений и два сервера инструментов (т.е. один сервер приложений / сервер инструментов в каждой зоне доступности)

  • Все среды будут общаться с одной и той же базой данных
  • Каждая среда будет иметь свое собственное хранилище EBS
  • Единое внешнее общее хранилище (EFS), которое будет доступно из любой из 4 сред.

Я немного запутался с точки зрения того, как настроить хранилище. Цель состоит в том, чтобы в случае потери экземпляра EC2 я не потерял никаких данных. Чтобы добиться этого, я бы хотел настроить его так, чтобы код развертывался в локальном хранилище (EBS), а динамический контент - во внешнем общем хранилище (EFS).

Все приложения будут находиться в папке со следующей структурой

├─ application ├─ bin ├─ lib ├─ config ├─ logs ├─ data ├─ processed ├─ failed  

В случае смерти экземпляра EC2 я хотел бы сохранить конфигурацию, журналы и папку с данными. Другие папки (bin и lib) будут содержать только двоичный код, который можно восстановить из GIT. Чтобы достичь этого, я думаю о следующем хранилище

EBS на appserver 1 и appserver 2

├─ applications ├─ finance ├─ appname1 ├─ bin ├─ lib ├─ config --> /storage/finance/config ├─ logs --> /storage/finance/logs ├─ data --> /storage/finance/date 

Последние три будут символическими ссылками на папки на внешнем хранилище.

EFS (общее хранилище)

├─ storage ├─ finance ├─ appname1 ├─ config ├─ logs ├─ data 

Вышеупомянутая структура может быть кошмаром обслуживания, но я не могу думать о других альтернативах. При вышеуказанном подходе код развертывается на каждом сервере приложений, но данные распределяются между двумя серверами приложений. Если один сервер приложений в одной AV-зоне умрет, другой все равно будет работать.

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

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

  • Есть ли альтернативы вышеперечисленному?
  • Есть ли другие недостатки у вышеупомянутого подхода?
  • Есть ли способ, которым я могу иметь все (код + данные) в локальном хранилище EBS и все еще иметь возможность восстановить (до второго) в случае аварии.

заранее спасибо

0
Вы просматривали какую-либо документацию Amazon о высокой доступности? Если да, укажите, какие из них, и сузьте свой вопрос до одного конкретного вопроса. Мы никак не можем рассмотреть все возможные сценарии, которые могут существовать в вашей конкретной среде, и Amazon уже предоставила вам платформу для предоставления высокодоступных услуг. Например, считали ли вы, что хранилище EBS уже доступно для AZ? Я не уверен, как на этот вопрос можно ответить кратко, как он есть. Appleoddity 7 лет назад 0
Каков ваш RPO для данных на дисках EBS? В основном, сколько данных вы готовы потерять - например, ни одного, 1 час, 24 часа и т. Д. Это, вероятно, послужит движущей силой решения. Tim 7 лет назад 0

1 ответ на вопрос

0
Ina Kahn

При просмотре страниц AWS для EFS упоминается, что «каждый объект файловой системы Amazon EFS (т. Е. Каталог, файл и ссылка) избыточно хранится в нескольких зонах доступности». Аналогичная формулировка на странице EBS. Так что там есть некоторая избыточность. Вот Amazon PDF о высокой доступности.

Для EC2 использование нескольких зон доступности снизит вашу подверженность риску. Я бы поместил каждый экземпляр в отдельную зону доступности. А в PDF рекомендуется использовать моментальные снимки EBS с резервным экземпляром EC2 для HA. Моментальные снимки доступны в регионах, поэтому к ним легко получить доступ для аварийного восстановления. Поступив таким образом, вы ответите на свой вопрос о том, как поместить все в AWS EBS. И довольно просто скопировать тома EBS между регионами, чтобы добавить избыточность и синхронизировать все. Таким образом, вы можете иметь производственную среду, резервную среду и среду замены, которая может быстро развернуться в случае сбоя, в результате чего вам будут доступны практически две среды.

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

Похожие вопросы