【问题标题】:what is better Amazon EBS or S3 for streaming and uploading video什么是更好的 Amazon EBS 或 S3 用于流式传输和上传视频
【发布时间】:2017-06-13 07:35:54
【问题描述】:

EBS 的 EC2 实例或 Netflix 等基于订阅的流媒体频道的 Amazon S3 更好用。 每月 150GB 上传,每月 250GB 流媒体,无高峰时段,观众来自澳大利亚、印度、北美、欧洲、巴西 以及需要迁移到云端的 80TB 存储空间?

【问题讨论】:

  • Netflix 已经发布了很多关于他们如何做事的文章。你看过他们的东西吗?

标签: amazon-s3 amazon-ec2


【解决方案1】:

对于可扩展性和全球影响力,明确的答案(仅使用 AWS 服务)是:

  • 在 Amazon S3 上存储视频
  • 通过 Amazon CloudFront 提供视频

Amazon CloudFront 在全球 70 多个地点开展业务,将为您处理视频流协议。将内容标记为私有,并让您的应用程序确定用户是否有权观看视频。然后,您可以生成预签名的 URL,允许在有限的时间内访问给定的视频。见:Serving Private Content through CloudFront

相比之下,使用 Amazon EC2 + Amazon EBS 是一个糟糕的选择,因为:

  • 您需要根据负载横向扩展其他实例
  • 您需要在多个区域运行实例以更接近您的用户(因此延迟更低)
  • 您需要将所有视频复制到每个服务器,而不是存储每个视频的单个副本

请注意,您最大的成本将是数据传输(请参阅Amazon CloudFront Pricing。您引用的“每月 250GB 流媒体”的数字似乎非常低——仅我一家人每个月就使用这么多带宽!

【讨论】:

  • 感谢您的回复,您会直接使用 CloudFront,还是使用 Lambda 如果您想扩大和缩小规模或添加订阅者?
  • Amazon CloudFront 可以提供静态内容,但它不能运行您的应用程序代码。您将需要来自 Amazon EC2 或 AWS Lambda 的计算。编写serverless code 与在普通服务器上编写代码不同,需要进行一些研究才能使其正确。
  • 再次感谢 John,因此通过 CloudFront 运行一个 EC2 实例,例如 General Purpose M4x10Large 来接受请求并向上和向下扩展,这是否可行,您是否需要为该实例创建一个 AMI很适合 EC2
  • 您当然会使用 Amazon EC2 来运行您的应用程序,但会将视频服务卸载到 S3 + CloudFront。这将减轻您的应用程序的负载,使其仅生成 HTML 页面并与用户交互,而不是提供静态内容(例如视频)。如何配置这些实例以运行您的应用程序完全取决于您。
  • 我决定为 AMI 和 EC2 实例提供例如 Wowza 流引擎,但它说仅 EBS 存储,aws.amazon.com/marketplace/…,似乎所有实例类型都使用 EBS 存储,但如果想提供内容来自 S3+Cloudfront,有没有办法集成 S3 存储而不是 EBS?
猜你喜欢
  • 2023-04-05
  • 1970-01-01
  • 2016-02-12
  • 2016-03-29
  • 2012-02-11
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
相关资源
最近更新 更多