Як: Докерізована реплікація MongoDB на службу еластичного контейнера


10

У мене є додаток Node.js разом із базою даних MongoDB, що працює на AWS ECS. Налаштування, які у мене зараз, складаються з 2 ELB та 2 екземплярів, які працюють із кожним контейнером Docker із призначеною службою (вузол / монго):

Elastic Load Balancer -> Dockerized Node -> Elastic Load Balancer -> Dockerized MongoDB

Я запускаю офіційне зображення Docker для MongoDB, доступне тут: https://registry.hub.docker.com/_/mongo/

Будь-які вказівки щодо того, як мені вдасться розгорнути реплікаSet для MongoDB за допомогою Docker та ECS, кожна репліка працює в іншому екземплярі?

Відповіді:


2

Не докерізуйте бази даних. Докер-контейнери призначені для ефемерних даних і не містять даних. Це не підходить для баз даних.

Зокрема, не намагайтеся докерізувати кластер MongoDB . Настройка для наборів реплік надзвичайно станкована і складна. Вам потрібно запустити багато команд по порядку і лише один раз . Якщо ви пропустите якусь команду або якщо вузол відключиться, весь кластер може загинути, і ви змушені будете починати заново

Докер має своє уявлення про те, як повинні вести себе програми. Було б дуже важко зробити цю роботу всередині Докера.

Якщо ви хочете кластер із 3-ма репліками, вам слід отримати 3 екземпляри AWS та встановити MongoDB на екземпляри. Шукайте mongodb setting up a replica set on <OS>в Google, щоб отримати оновлений підручник.


2

FireCamp це робить. FireCamp може дуже легко розгорнути реплікацію MongoDB на AWS ECS. 1) розгорнути кластер ECS з шаблоном хмарної інформації; 2) розгорнути MongoDB ReplicaSet за допомогою однієї команди. Перевірте FireCamp встановлення програмного забезпечення для деталей.

Для безпеки краще запустити додаток Node.js в іншому кластері ECS. Екземпляри EC2, на яких працює MongoDB, не повинні піддаватися впливу зовнішнього світу.

Еластичний балансир завантаження не потрібен додатку Node.js для доступу до MongoDB ReplicaSet. Кожна копія отримує унікальну назву dns. Додаток Node.js може просто отримати доступ до MongoDB за назвою dns.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.