Периодически изменяйте AWS AMI - PullRequest
0 голосов
/ 23 июня 2019

Я работаю над веб-приложением, которое использует node.js в качестве сервера и MongoDB в качестве базы данных.И мой сервер, и MongoDB размещены в одном и том же экземпляре AWS EC2.

Сейчас я работаю над инициированием автоматического масштабирования AWS для этого экземпляра.Так что, если экземпляр не работает, он автоматически создаст другой новый экземпляр.Поэтому я беру образ своего экземпляра EC2, создаю AMI и присоединяю его с автоматическим масштабированием, чтобы при автоматическом масштабировании создать новый экземпляр, он загружался из AMI, чтобы новый экземпляр был автоматически настроен.И этот процесс работает нормально.

Но теперь проблема в том, что мой MongoDB находится в том же экземпляре EC2, в котором БД изменяется каждую секунду.Но я создал AMI вручную ранее, поэтому каждый раз, когда автоматическое масштабирование запускает новый экземпляр и добавляет туда AMI, в AMI нет обновленной БД, и я терял некоторые данные.

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

Кроме того, невозможно изменять AMI после каждогоИзменение БД, поэтому есть вероятность потерять некоторые данные.

Так может кто-нибудь сказать мне, что может быть лучшим решением для решения этой проблемы?

1 Ответ

3 голосов
/ 24 июня 2019

Обычным методом является разделение вычислений и данных .

Экземпляры Amazon EC2 в группе автоматического масштабирования должны обрабатывать запросы , но не должны хранить данные локально.

База данных MongoDB должна храниться вне группы автоматического масштабирования , чтобы все экземпляры в группе автоматического масштабирования могли получить к ней доступ.Даже если у вас есть только один экземпляр в группе автоматического масштабирования, как вы указали, он может быть заменен другим экземпляром.Затем вы можете сделать резервные копии базы данных отдельно от worker экземпляров.

Вы также можете рассмотреть возможность использования Amazon DocumentDB , совместимого с MongoDB.

...