我编写了一个进行视频编码的应用程序。编码是一个流水线过程:首先获取视频,然后使用 ffmpeg 对其进行编码,然后将视频分成多个部分,等等。
在此过程中,一个 1 GB 的视频会膨胀成几 GB 的中间数据。编写此服务是为了让不同的程序(通过 RabbitMQ)可以处理管道的每一部分。当然,该过程不必以这种方式运行,这让我想到了我的问题。
我正在研究使应用程序“运行”的存储要求。对于云提供商,您按每 GB 存储和每 GB 传输付费。到现在为止还挺好。
当我将此 1 GB 视频 blob 从一个云 VM 实例传输到另一个,或从 VM 传输到公共存储服务时,这是否会占用我的带宽?(我意识到这个答案会根据主人的服务条款而改变。)
让 1 个 VM 执行整个过程,然后启动多个实例是否更有意义?与 1 个 VM 仅在管道中执行单个任务相反?我在优化成本方面提出了这个问题(最低存储成本,启动 VM 的最低成本。因为编码将成批发生,所以我不太关心快速推出请求)。
这种情况有点独特,因为我有大量无法有效存储在数据库中的二进制数据。这引发了一个类似的问题:对于那些有经验的人,当您的 DB VM 将其结果发送回您的 Web 应用程序时,您是否需要为该中间传输付费?
我什至在问正确的问题吗?是否有我应该阅读的指南,而不是致电托管服务提供商并询问他们自己的定价?