我知道可以使用 ELB/EC2 实例来平衡流量,但有没有办法将 CPU 计算分配到实例集群上。
我想使用 ffmpeg 处理大量视频/音频,但如果服务器速度太慢,我希望能够生成具有相同设置的另一个实例来分担主服务器的部分负载。可以将其视为一个小型处理场
我想做的事情是否可以通过亚马逊实现?如果可以,我应该寻找哪些文档和 AWS 服务?谢谢
答案1
在这方面,亚马逊的 EC2 实例与任何其他硬件没有什么不同。
是的,有一些框架可以帮助集群计算,但这并不简单,而且肯定没有可以安装的“神奇”包来使其工作。
您的应用程序在编写时需要考虑并行化/集群化,以使其有机会发挥作用,而它是否能起作用在很大程度上取决于您的具体工作量。
答案2
OP 已经接受了 @ErikA 的回答,但我将发表一些其他想法。虽然 EC2 实例确实与其他硬件没有什么不同,但 AWS 整体情况并非如此。有几种服务专门用于在小型(或大型)处理场中分配计算和服务。
有一些很棒的资源描述了如何使用 AWS 服务套件进行视频处理。我建议从Encoding.com 案例研究然后深入挖掘一些计算领域建筑中心。
可用的服务组合是独一无二的:EC2 和 Elastic Beanstalk 用于计算资源,S3 用于大规模 blob 存储,SimpleDB 用于小型 blob 存储(元数据),SQS/SWS 用于支持消息传递和任务分配。您当然可以设计和部署执行其中任何一项或全部任务的系统,但使用 AWS 账户,您可以在今天下午启动整套任务。
答案3
AWS 分布式计算的新解决方案是 AWS Lambda。它本质上允许您在不同的云机器上按需运行 JavaScript 函数,而无需进行任何设置/拆卸配置。您只需为代码执行的时间付费,而不必设置服务器集群来等待作业。
AWS Lambda 会自动在高可用性计算基础设施上运行您的代码,并执行底层计算资源的所有管理,包括服务器和操作系统维护、容量配置和自动扩展、代码和安全补丁部署以及监控和日志记录。您只需编写代码即可。