对于视频转换器 [在 Linux [ ubuntu ] 上使用 FFMPEG ] 和媒体文件抓取器 [来自 youtube 和其他视频托管网站] .. 在 EC2 中使用最佳架构是什么?
我所说的架构是指要使用的实例类型/数量。我应该在多个小实例上托管应用程序逻辑,还是使用一个超大实例?数据应该转到 RDS 实例还是我可以使用应用程序逻辑来托管它?
如果是第一个选项,那么如何做,实例之间的通信等等?
这种架构应该从小处着手,然后根据需要向外或向上扩展。
请帮忙!
答案1
可扩展性很难给出最佳实践文档。每个应用程序都不同。有些工作流非常适合大规模并行化,而另一些工作流则不可避免地存在单点处理,从而减慢整个系统的速度。为了推荐这种“最佳”解决方案,需要了解以下几点:
- 以下是处理阶段数据的高级概述。
- 该流程中的每个阶段都需要进行分析:
- 并行化
- 容错能力
- 与其他阶段的依赖关系
- 该流程中的每个阶段都需要进行分析:
- 充分了解您的正常运行时间要求、您可以承受的停机时间、可以容忍多少数据丢失(如果有)。
- 深入了解系统中发生故障的方式及其响应方式
- 一旦出现问题,会丢失多少数据?
- 重新处理发生故障的数据需要多长时间?
- 您对成本的容忍度如何。对于 EC2,变量如下:
- 在处理生命周期内有多少数据传入和传出 EC2 系统。
- 需要多个可用区域或多个区域
- 区域间需要传输数据
- 处理每个数据单位需要多少个实例小时。
- 任何专用基础设施(负载均衡器、弹性搜索等)的成本
等等。我们无法告诉你这些。或者甚至无法给你提供指导,因为它们是你所构建的系统所独有的,而要揭示上述大部分内容,就需要揭示你的系统的秘密(我认为你宁愿不这样做)。