gpt4 book ai didi

ruby-on-rails - Heroku 到 AWS 的迁移建议

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

根据我收集到的信息,我的问题有很多解决方案,但我希望能提供一些关于从哪里开始的建议。这是我们目前在 heroku 上运行的堆栈:

  • puma 上的 rails
  • mongoDB
  • Elasticsearch
  • redis
  • 迷你魔法

使用 Elastic Beanstalk、OpsWorks、CloudFormation 还是自己手动设置所有内容的决定是什么?此外,出于经济原因,我真的更愿意尽可能不使用 Docker 等第三方服务。太多的选择让我有点困惑,不知道从哪里开始,甚至不知道如何选择。背景:现在我真的很喜欢 Heroku b/c 我不必过多考虑系统管理员(在我的团队中我是唯一的开发人员),但我们最近获得了很多年度 AWS 学分所以它似乎使财务我们有理由转向 AWS。

最佳答案

我想进一步阐述 Mark 的出色回答。

可用的替代品

由于您是唯一的开发者,Cloud Formation 和 OpsWorks 不是您的好选择。

使用 OpsWorks,您需要编写或至少了解配置实例的 Chef 自动化代码。另一方面,Cloud Formation 本身是不够的。它将帮助您创建 AWS 云资源,但您仍然需要弄清楚如何编排您的应用程序部署,仅供初学者使用。这些选项都不能像 Heroku 那样开箱即用地为您提供运行和部署代码所需的一切。您需要自己实现部分内容。

由于在 EC2 之上实现您自己的自动化比上述选项需要更多的努力,我认为您在 AWS 中有两种选择可以满足您的需求:

1) Elastic Beanstalk

这是您在 AWS 中最接近 Heroku 的地方。一开始您可能需要花一些时间来了解该平台,因为它不像 Heroku 那样直观,但最终 Elastic Beanstalk 将为您提供继续运行应用程序所需的所有工具,而无需花费时间在系统管理员任务上。

2) ECS + 帝国

虽然您提到使用 Docker 对您来说是不可能的,但我仍然想强调使用 ECS(Amazon 的 Docker 编排服务)作为 Heroku 的替代方案。

ECS 本身并不能提供足够的自动化来完成您期望从 PaaS 获得的一切。该服务旨在用作构建 block ,您应该对其进行扩展以满足您的需求。

幸运的是,来自 Remind 的人已经为您完成了这项工作。他们发布了一个名为 Empire 的开源项目,根据它自己的描述,它是“ECS 之上的控制层,提供类似 Heroku 的工作流”。

Empire兼容Heroku的API,其命令行实现了Heroku最重要的特性。

Empire 是一个开源项目,所以如果您选择使用它,您应该准备好不时地深入研究它的代码。文档并不完美,尽管该项目有一些吸引力,但社区不是很大。

总的来说,如果您愿意使用 Docker 运行您的应用程序,它是 Heroku 的一个很好的替代品——为什么不呢?

插件

我看到从 Redis Labs 切换到 Amazon 的 Redis 服务 (ElastiCache) 的主要好处是,除了您拥有免费的 AWS 积分之外,它会更容易(也更便宜)保护对您的 Redis 实例的访问当您还在 AWS 上运行您的应用程序时。

总体而言,当您迁移到 AWS 时,复制您在 Heroku 中使用的插件相对容易。对于像 Elasticsearch 这样的第三方插件,您只需继续将您的应用程序指向相关端点。复制 Heroku 的本地插件(如 deploy hooks)有点复杂,因为当你迁移到 AWS 时你不能继续使用它们。在这些情况下,通常可以找到在 AWS 中复制其功能的替代方法。

如果您想了解如何迁移最常见的插件,我写了一篇文章详细介绍了如何做到这一点,您可以在这里找到它:how to replicate Heroku’s addons on AWS .

希望这对您有所帮助。

关于ruby-on-rails - Heroku 到 AWS 的迁移建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33771592/

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