我需要建模一个使用 Amazon AWS 资源(EC2)进行视频处理的 Rails 应用程序。
应用程序允许用户转换视频。视频由用户上传。目前它在一个实例上运行,但我认为需要扩展/更改。
问题:
创建两个实例是否有意义:
1) 应用程序前端。处理上传、数据库等内容。
2) 视频处理实例。高内存的东西,受到应用程序 N1 的影响。
这会更有效率吗?有没有办法让实例 N2 不一直工作,而是仅在需要处理视频时才工作?
与仅仅扩展到更大的实例大小并将事物保留在同一个实例上相比,我是否会看到任何好处?
答案1
这是“视情况而定”的情况之一。在很多情况下,你可以从将应用程序前端与 CPU 密集型工作分开扩展中获益。你一定要阅读AWS Spot 实例和自动缩放。
另一方面,如果您的视频处理请求在一段时间内相对稳定,并且它们的 CPU 需求不会超过单个服务器的资源,您可能会发现扩大实例规模是更好的选择。就我个人而言,我发现横向扩展问题(更多服务器执行专门的任务)更有趣,但 YMMV。