通过AWS opsworks设置mongodb

Ric*_*oss 11 ruby-on-rails mongodb amazon-web-services chef-infra aws-opsworks

我正在尝试在AWS Opsworks上设置rails堆栈,我想使用mongodb作为数据库.

我认为你通过创建一个新的自定义图层并将你的厨师收据添加到相关的生命周期钩子来设置它,但我不确定要放在哪里的收据.

任何人都可以帮助如何通过厨师将mongodb添加到AWS Opsworks?

我已经看到有一个社区mongodb食谱,但从我可以看到它与Opsworks不兼容.

有没有人有任何设置的经验?

请任何人都可以帮忙.

非常感谢瑞克

One*_*ema 5

几个月前,我尝试在OpsWorks中设置一个MongoDB 3节点副本集.我将分享一些我的经验:

1)如何安装单个MongoDB: 使用EDelight Chef MongoDB Cookbook可以轻松安装单个mongodb .只需将其添加为自定义opsworks chef存储库中的子模块即可.

要使其工作,请创建一个自定义图层并将其命名为MongoDB并执行以下配方

  • 设置:mongodb:10gen_repo
  • 配置:mongodb:默认

这将安装最新版本的MongoDB.

注意:我使用了Ubuntu实例.

2)MongoDB最佳实践 如果您与MongoDB工程师或客户服务代表交谈,他们都会告诉您,MongoDB的推荐设置是3节点副本集.这意味着希望在不同的可用区域中有一个主副本和两个只读副本.另外一个理想的设置将有大量的RAM,为您举个例子:您可以在AWS市场中找到的MongoDB提供的最小实例是标准的大型:

AWS市场上的MongoDB实例

您还必须考虑在RAID10上使用EBS,也许保留IOPS ...

有关详细信息,请参阅AWS上的白皮书MongoDB.

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.希望这会为您节省一些时间和头痛.


myt*_*nts 1

我刚刚在 github 上测试了这个 repo,它适用于 MongoDB / OpsWorks。转到 OpsWorks > 层 > 在“自定义厨师食谱”部分中引用此 github 链接“ https://github.com/Cyclic/cookbooks ”,然后将“yum::default”添加到安装生命周期事件。然后将“mongodb::10gen_repo”“mongodb::default”和“mongodb::10gen_remrepo”添加到安装程序生命周期事件中