elasticsearch,amazon-elastic-beanstalk,Mongodb,Amazon Web Services,Deployment,elasticsearch,Amazon Elastic Beanstalk" /> elasticsearch,amazon-elastic-beanstalk,Mongodb,Amazon Web Services,Deployment,elasticsearch,Amazon Elastic Beanstalk" />

使用MongoDB部署弹性Beanstalk

使用MongoDB部署弹性Beanstalk,mongodb,amazon-web-services,deployment,elasticsearch,amazon-elastic-beanstalk,Mongodb,Amazon Web Services,Deployment,elasticsearch,Amazon Elastic Beanstalk,对于如何正确部署具有以下堆栈的Elastic Beanstalk的资源,我非常感谢您提供一些建议: 蒙哥达 铁轨(彪马) Sidekiq/Redis 弹性搜索 我需要在ebextension文件中设置所有这些内容吗?或者是在AWS中手动设置,然后将它们正确地路由到某个地方?您肯定不想在Elastic Beanstalk服务器上运行所有这些。Elastic Beanstalk将根据您的流量/服务器负载自动添加或删除服务器。当数据库被删除时,您不希望它位于这些服务器上 Elastic Beans

对于如何正确部署具有以下堆栈的Elastic Beanstalk的资源,我非常感谢您提供一些建议:

  • 蒙哥达
  • 铁轨(彪马)
  • Sidekiq/Redis
  • 弹性搜索

我需要在ebextension文件中设置所有这些内容吗?或者是在AWS中手动设置,然后将它们正确地路由到某个地方?

您肯定不想在Elastic Beanstalk服务器上运行所有这些。Elastic Beanstalk将根据您的流量/服务器负载自动添加或删除服务器。当数据库被删除时,您不希望它位于这些服务器上

Elastic Beanstalk是一种平台即服务,非常适合运行web服务器。AWS上还有其他服务,如ElastiCache(Redis/Memcached作为服务)和Elasticsearch作为服务。还有第三方提供在AWS上运行的服务,如RedisLabs(Redis as service)和MongoDB(MongoDB as service)

您可以决定使用这些服务中的任何一种来减少您必须自己完成的系统管理工作。或者,您可以手动设置EC2 Linux服务器(在Elastic Beanstalk之外),并在其上安装Rails、MongoDB和ElasticSearch等,然后自己管理它们

对于您的情况,我建议如下:

  • 轨道:ElasticBeanstalk
  • 蒙哥达
  • Redis:RedisLabs
  • Elasticsearch:AWS Elasticsearch服务
您可能希望设置这些服务中的每一个,然后只需将它们的连接信息添加到您的Elastic Beanstalk环境中,以便Rails可以使用它们

编辑:

以下是在EC2上手动设置MongoDB的最佳说明:

对于ElastiCache和Elasticsearch,您只需在AWS控制台中单击以配置Redis服务器并获取要连接的URL。设置好所有这些之后,只需将连接参数作为自定义环境变量放入ElasticBeanstalk环境中,如:

MONGO_DB_URL=“您的MongoDB EC2内部IP地址”

REDIS_URL=“ElastiCache为您提供的URL”

然后在创建到这些服务的连接时,读取应用程序中的这些环境变量

此外,您还必须了解如何设置VPN和安全组以使所有内容都能够连接。例如,您希望弹性Beanstalk服务器位于一个安全组中,而MongoDB服务器位于另一个组中。然后,您必须配置MongoDB安全组,以允许从MongoDB端口上的beanstalk组进行访问。这和ElastiCache相似。我认为对于Elasticsearch,您必须创建一个具有ElasticSearchAPI访问权限的IAM角色,然后将该角色分配给Beanstalk服务器


当然,还有为MongoDB集群设置Linux服务器、配置集群、故障转移、自动备份、日志存档、定期安全更新等管理任务。我知道你有这些AWS功劳,但是,您应该权衡将所有工作转移到AWS与您将要花费时间的所有管理任务的成本。Elastic Beanstalk、Elasticsearch和ElasticCache是免费的,但我的MongoLab账单必须相当高,才能证明自己可以设置和管理这些工具。

你好@mbaird!出于成本考虑,我正试图远离像mongolab/redislabs这样的解决方案(我的团队每年都会获得一系列AWS积分)。关于如何在EC2上设置mongodb,在elasticache上设置redis,然后在我的eb配置中一起路由,是否有好的文档?一直在努力寻找合适的参考资源感谢@mbaird的深入响应!到目前为止,我一直和AWS呆在一个小岛上,这非常有助于我了解这一切。当然,你也明白你关于自我管理mongoDB的观点。我很可能会接受你的建议!这里有一个在Amazon Linux上设置弹性搜索的指南:你也可以考虑在DyDoDB中取代Mongo。它并不完全相同,需要做一些基础工作才能使其具有多态性,但它很适合AWS体系结构。