Запуск mon go на elasti c beanstalk и подключение к нему - плюсы и минусы? - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть 3 уровня приложения. Мой вопрос относится к среднему ярусу остальных пружинных сапог и бэкэнду mongodb на aws. Я имею в виду запуск контейнера mongodb docker в варианте elasti c beanstalk / single container для масштабирования бэкэнда.

Мои остальные API будут работать как контейнер docker в отдельной среде beasstalk elasti c.

Насколько я понимаю, elasti c beanstalk будет масштабировать сервис dockerized mongodb по мере необходимости.

Архитектура высокого уровня:

Внешний интерфейс - Angular - s3 stati c хостинг веб-сайтов

Средний уровень - 3 службы Spring boot rest - 3 отдельных среды с одним контейнером docker масштабируется с elasti c стебель фасоли.

Backend - Mongodb - Single Docker контейнер масштабируется с elasti c стебель фасоли.

Вопросы:

Qn: это будет работать? Будет ли масштаб каждого уровня? Сможет ли служба отдыха подключиться к базе данных? Сколько это будет стоить? Будет ли слишком большая задержка между средним уровнем и бэкэндом?

Qn: Это безрассудная погоня по какой-либо причине, у которой есть какое-то препятствие, которого я не вижу? Мои исследования этого подхода почти ничего не дали. Будет ли кто-то отговорить даже попробовать это? :)

Примечания:

Elasti c бобовый стебель предлагает удобство при несколько более высокой стоимости. Я готов принять это, так как я просто тестирую. Kubernetes / docker роя кажутся слишком сложными и отнимающими много времени, так как мне нужно сосредоточиться на функции приложения в ближайшей перспективе.

Я смогу сопоставить том с физическим местоположением в aws. Угадай, elasti c блок хранения или EFS. Есть плюсы и минусы или лучшие альтернативы?

Я знаю, что для эффективности могу использовать тонкие банки.

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

1 Ответ

1 голос
/ 11 апреля 2020

Я не уверен, что вы подразумеваете под "Одиночным Docker контейнером, масштабированным с помощью elasti c bean stalk", но если вы намереваетесь запустить больше контейнеров, работающих под управлением MongoDB, реальность немного сложнее, чем эта.

В то время как MongoDB масштабируется горизонтально, когда новый узел запускается в топологии набора реплик, его:

  • необходимо добавить в конфигурацию набора реплик
  • должен иметь данные, которые другие узлы уже синхронизировали на нем

Существуют инструменты, которые отвечают обоим этим требованиям, но просто вызвать другой контейнер недостаточно.

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

Мне нужно сосредоточиться на функции приложения в ближайшей перспективе.

Вы можете рассмотреть MongoDB Atlas, который будет обрабатывать все это для вас. Доступен бесплатный уровень .

...