gpt4 book ai didi

mongodb - 使用 MongoDB 部署 Elastic Beanstalk

转载 作者:可可西里 更新时间:2023-11-01 09:24:23 26 4
gpt4 key购买 nike

非常感谢有关如何使用以下堆栈正确部署 Elastic Beanstalk 的资源建议:

  • MongoDB
  • Rails(Puma)
  • Sidekiq/Redis
  • Elasticsearch

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

最佳答案

您绝对不想在 Elastic Beanstalk 服务器上运行所有这些。 Elastic Beanstalk 将根据您的流量/服务器负载自动添加或删除服务器。您不希望您的数据库在被删除时位于其中一台服务器上。

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

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

对于您的情况,我会推荐如下内容:

  • Rails:ElasticBeanstalk
  • MongoDB:MongoLab
  • Redis:RedisLabs
  • Elasticsearch :AWS Elasticsearch 服务

您可能希望设置这些服务中的每一个,然后只需将每个服务的连接信息添加到您的 Elastic Beanstalk 环境中,以便 Rails 可以使用它们。

编辑:

以下是在 EC2 上手动设置 MongoDB 的最佳说明:https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/

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

MONGO_DB_URL="您的 MongoDB EC2 内部 IP 地址"

REDIS_URL="ElastiCache 为您提供的 url"

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

此外,您还必须学习如何设置 VPN 和安全组,以使所有内容都能连接。例如,您希望您的 Elastic Beanstalk 服务器位于一个安全组中,而 MongoDB 服务器位于另一组中。然后,您必须配置 MongoDB 安全组以允许从 MongoDB 端口上的 beantalk 组进行访问。 ElastiCache 类似。我认为对于 Elasticsearch,您必须创建一个可以访问 Elasticsearch API 的 IAM 角色,然后将该角色分配给您的 Beanstalk 服务器。

当然还有为您的 MongoDB 集群设置 Linux 服务器、配置集群、故障转移、自动备份、日志存档、定期安全更新等管理任务。我知道您拥有所有这些 AWS 信用,但是您应该权衡将一切都转移到 AWS 与您将花时间处理的所有管理任务的成本。如果您免费获得 Elastic Beanstalk、Elasticsearch 和 ElasticCache,那是无需动脑筋的选择,但我的 MongoLab 费用必须相当高才能证明自己设置和管理所有这些是合理的。

关于mongodb - 使用 MongoDB 部署 Elastic Beanstalk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33837610/

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