Настройка mongodb через AWS opsworks

Я пытаюсь настроить стек рельсов на AWS Opsworks и хочу использовать mongodb в качестве базы данных.

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

Кто-нибудь может помочь с тем, как добавить mongodb через шеф-повара в AWS Opsworks?

Я видел, что есть поваренная книга сообщества mongodb, но из того, что я вижу, она не совместима с Opsworks.

У кого-нибудь есть опыт установки этого?

Пожалуйста, кто-нибудь может помочь с этим.

спасибо большое Рик

2 ответа

Я пытался настроить реплику MongoDB с тремя узлами в OpsWorks несколько месяцев назад. Я поделюсь немного своим опытом:

1) Как установить одну MongoDB: можно и легко установить одну mongodb, используя поваренную книгу EDelight Chef MongoDB. Просто добавьте его как подмодуль в ваш собственный репозиторий Opsworks Chef.

Чтобы заставить его работать, создайте пользовательский слой и назовите его MongoDB и выполните следующие рецепты

  • НАСТРОЙКА: mongodb:10gen_repo
  • КОНФИГУРАЦИЯ: mongodb: по умолчанию

Это установит последнюю версию MongoDB.

ПРИМЕЧАНИЕ: я использовал экземпляры Ubuntu.

2) Рекомендации для MongoDB. Если вы поговорите с инженерами MongoDB или представителями службы поддержки клиентов, они все скажут вам, что рекомендуемая установка для MongoDB - это набор реплик из 3 узлов. Это означает, что один мастер и две реплики чтения, вероятно, в разных зонах доступности. Кроме того, идеальная установка будет иметь много оперативной памяти, чтобы дать вам пример: самый маленький экземпляр, предоставляемый MongoDB, который вы можете найти на рынке AWS, является стандартным большим:

Экземпляр MongoDB на торговой площадке AWS

Вы также должны рассмотреть возможность использования EBS на RAID10, может быть, зарезервированные IOPS...

См. Официальный документ MongoDB на AWS для получения дополнительной информации.

3) Соображения безопасности В идеале вы хотите, чтобы только экземпляры приложения имели доступ к экземплярам БД. В AWS вы можете создать группу безопасности с настраиваемыми правилами и назначить экземпляры EC2 только что созданной группе... Это не совсем так, когда дело доходит до OpsWorks, поскольку это заставляет вас иметь группы безопасности по умолчанию, которые имеют очень слабые ограничения. AWS всегда будет использовать более слабые разрешения, чем более строгие.

4) Время и деньги. Если рекомендуемая установка - это реплика из 3 узлов, использующая большие экземпляры, вы ищете не менее 600 долл. (По запросу) для БД, и это не добавляет зарезервированные IOPS, EBS и т. Д. Автоматизация этой настройки возможна, но не проста. Это займет время или эксперт в этом вопросе, чтобы вы начали. Если у вас есть ресурсы и персонал, чтобы справиться с этим, сделайте это. Если вы являетесь частью небольшой команды разработчиков, которая хочет больше кодировать и выполнять меньше операций, читайте дальше.

5) Найти надежное управляемое решение Сначала я не хотел использовать стороннюю компанию, предлагающую MongoDB в качестве услуги. После тщательной оценки различных вариантов (Managed, AWS Marketplace, OpsWorks, установка Direct EC2) я пришел к выводу, что для нашей небольшой команды лучше всего использовать MongoLab или MongoHQ. Они размещают и управляют экземплярами MongoDB всех размеров и цен. Они даже позволяют выбрать хостинг (AWS, Rackspace и т. Д.), Регион и AZ. Цена будет дороже, если вы посмотрите только на аппаратное обеспечение, но, как я уже упоминал ранее, вы должны учитывать не только цену, но и время работы, которое потребует MongoDB.

Я был там, сделал это и в конечном итоге не использовал OpsWorks для размещения MongodDB. Надеюсь, это сэкономит вам время и избавит от головной боли.

Я только что проверил этот репозиторий на github, он работает для MongoDB / OpsWorks. Перейти к OpsWorks > Слои> В разделе "Пользовательские рецепты шеф-повара" сослаться на эту ссылку github " https://github.com/Cyclic/cookbooks", а затем добавить "yum:: default" в событие жизненного цикла программы установки. Затем добавьте "mongodb::10gen_repo", "mongodb:: default" и "mongodb::10gen_remrepo" в событие жизненного цикла программы установки

Другие вопросы по тегам