Ответ 1
Я попытался настроить набор реплик MongoDB 3- node в OpsWorks несколько месяцев назад. Я расскажу немного о своем опыте:
1) Как установить единственный MongoDB: Можно и легко установить один mongodb, используя Edelight Chef MongoDB Cookbook. Просто добавьте его в качестве подмодуля в свой пользовательский репозиторий поваров opsworks.
Чтобы заставить его работать, создайте пользовательский слой и вызовите его MongoDB и исключите следующие рецепты.
- НАСТРОЙКА: mongodb: 10gen_repo
- КОНФИГУРАЦИЯ: mongodb: default
Это установит последнюю версию MongoDB.
ПРИМЕЧАНИЕ. Я использовал экземпляры Ubuntu.
2) Лучшие рекомендации MongoDB Если вы поговорите с инженерами MongoDB или представителями службы поддержки клиентов, все они скажут вам, что рекомендуемая настройка для MongoDB - это набор реплик 3 node. Это означает, что один хозяин и две читаемые реплики надеются в разных зонах доступности. Также у идеальной установки будет много оперативной памяти, чтобы дать вам пример: самый маленький экземпляр, предоставленный MongoDB, который вы можете найти на рынке AWS, является стандартным большим:
Вам также необходимо рассмотреть возможность использования EBS на RAID10, возможно, зарезервированных IOPS...
Подробнее см. на белой бумаге MongoDB на AWS.
3) Вопросы безопасности В идеале вам нужны только экземпляры приложений для доступа к экземплярам DB. В AWS вы можете создать группу безопасности с настраиваемыми правилами и назначить экземпляры EC2 для группы, которую вы только что создали... Не совсем так, когда дело доходит до OpsWorks, поскольку это заставляет вас иметь группы безопасности по умолчанию, которые имеют очень слабые ограничения. AWS всегда будет принимать слабые разрешения более строгие.
4) Вопросы времени и денег Если рекомендуемая настройка представляет собой набор реплик 3 node с использованием больших экземпляров, вы ищете по меньшей мере 600 долларов (по запросу) для БД, и это не добавляет зарезервированные IOPS, EBS и т.д. Автоматизация этой установки возможна еще не просто. Это займет время или эксперт в этом вопросе, чтобы вы собрались. Если у вас есть ресурсы и персонал, чтобы справиться с этим, заходите на это. Если вы являетесь частью небольшой команды разработчиков, которая хочет запрограммировать больше и делать меньше операций, читайте дальше.
5) Найдите надежное управляемое решение Сначала я неохотно думал об использовании сторонней компании, предлагавшей MongoDB как услугу. После большой оценки различных опций (Managed, AWS Marketplace, OpsWorks, Direct EC2) я пришел к выводу, что для нашей небольшой команды лучше всего использовать MongoLab или MongoHQ. Они принимают и управляют экземплярами MongoDB всех размеров и цен. Они даже позволяют вам выбирать хостинг (AWS, Rackspace и т.д.), Регион и AZ. Цена будет дороже, если вы посмотрите на оборудование в одиночку, но, как я уже упоминал, вам нужно рассмотреть не только цену, но и время работы MongoDB.
Я был там, сделал это и закончил тем, что не использовал OpsWorks для размещения MongodDB. Надеюсь, это сэкономит вам время и головные боли.