如何使用处理器/内存密集型任务(使用 EC2)为 Rails 应用程序建模基础设施?

如何使用处理器/内存密集型任务(使用 EC2)为 Rails 应用程序建模基础设施?

我需要建模一个使用 Amazon AWS 资源(EC2)进行视频处理的 Rails 应用程序。

应用程序允许用户转换视频。视频由用户上传。目前它在一个实例上运行,但我认为需要扩展/更改。

问题:

创建两个实例是否有意义:

1) 应用程序前端。处理上传、数据库等内容。

2) 视频处理实例。高内存的东西,受到应用程序 N1 的影响。

这会更有效率吗?有没有办法让实例 N2 不一直工作,而是仅在需要处理视频时才工作?

与仅仅扩展到更大的实例大小并将事物保留在同一个实例上相比,我是否会看到任何好处?

答案1

这是“视情况而定”的情况之一。在很多情况下,你可以从将应用程序前端与 CPU 密集型工作分开扩展中获益。你一定要阅读AWS Spot 实例自动缩放

另一方面,如果您的视频处理请求在一段时间内相对稳定,并且它们的 CPU 需求不会超过单个服务器的资源,您可能会发现扩大实例规模是更好的选择。就我个人而言,我发现横向扩展问题(更多服务器执行专门的任务)更有趣,但 YMMV。

相关内容