gpt4 book ai didi

ruby-on-rails - 通过 AWS opsworks 设置 mongodb

转载 作者:IT老高 更新时间:2023-10-28 13:14:08 27 4
gpt4 key购买 nike

我正在尝试在 AWS Opsworks 上设置 Rails 堆栈,并且我想使用 mongodb 作为数据库。

我认为您通过创建一个新的自定义层并将您的 Chef 收据添加到相关的生命周期 Hook 来进行设置,但我不确定将哪些收据放在哪里。

谁能帮助如何通过 Chef 将 mongodb 添加到 AWS Opsworks?

我看到有一个社区 mongodb Recipe ,但据我所知,它与 Opsworks 不兼容。

有没有人有这方面的经验?

请任何人帮忙。

非常感谢 rake

最佳答案

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

1)如何安装单个MongoDB:使用 EDelight Chef MongoDB Cookbook 安装单个 mongodb 是可能且容易的。 .只需将其作为子模块添加到您的自定义 opsworks chef 存储库中即可。

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

  • 设置:mongodb:10gen_repo
  • 配置:mongodb:default

这将安装最新版本的 MongoDB。

注意:我使用的是 Ubuntu 实例。

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

MongoDB instance on AWS marketplace

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

参见白皮书 MongoDB on AWS了解更多信息。

3) 安全注意事项理想情况下,您只希望应用程序实例访问数据库实例。在 AWS 中,您可以使用自定义规则创建一个安全组,并将 EC2 实例分配给您刚刚创建的组......对于 OpsWorks 而言,情况并非如此,因为它强制您拥有限制非常宽松的默认安全组。 AWS 将始终采用宽松的权限而不是更严格的权限。

4) 时间和金钱方面的考虑如果推荐的设置是使用大型实例的 3 节点副本集,那么您至少需要 600 美元(按需)来购买数据库,并且这不会增加预留的 IOPS、EBS 等。自动化此设置是可能的,但并不简单。这需要时间或该主题的专家才能让您继续前进。如果你有资源和人员来处理这个问题,那就去吧。如果您是小型开发团队的一员,希望编写更多代码并减少操作,请继续阅读。

5) 寻找可靠的托管解决方案起初,我不愿意使用提供 MongoDB 作为服务的第三方公司的想法。在对不同选项(托管、AWS Marketplace、OpsWorks、直接安装 EC2)进行大量评估后,我得出结论,对于我们的小团队来说,最好的办法是使用 MongoLab 或 MongoHQ。他们托管和管理各种规模和价格的 MongoDB 实例。他们甚至让您选择托管(AWS、Rackspace 等)、区域和可用区。如果你只看硬件,价格会更贵,但就像我之前提到的,你不仅要考虑价格,还要考虑 MongoDB 所需的运行时间。

我去过那里,做过,但最终没有使用 OpsWorks 来托管 MongodDB。希望这将为您节省一些时间和头痛。

关于ruby-on-rails - 通过 AWS opsworks 设置 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18637735/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com