我一直在研究使用 Amazon Elastic Transcoder 来实现点播视频流场景。我很清楚转码成本和限制方面的变量。我受制于需要可扩展的流带宽的要求,最好以 200Mbit/s 为增量。
然而,我很难掌握流媒体成本。从文档中我了解到,我将使用 Elastic Transcoder 进行转码,将这些文件传输到 Amazon S3,然后使用 CloudFront 提供内容。使用计算器可以轻松确定转码、存储成本和 CloudFront Volume 成本。我似乎找不到有关 CloudFront + S3 带宽的信息。
根据这个文件。我很难相信我不会因为这样的带宽使用而被额外收费。此外,我怀疑 S3 服务器/节点能否提供 40Gbps 的连接。
因此,真正的问题是:使用 (Elastic Transcoder +) Amazon S3 + CloudFront 的最大流式传输带宽是多少?如何以及何时限制?或者 CloudFront 定价仅由出站数据传输量决定?
答案1
我很难相信我不会因为使用如此多的带宽而被收取额外费用。
40 Gbit/秒不是“使用量”——而是可用容量。您无需为可用容量付费。您需要为使用量付费,即 CloudFront 定价表中提到的“区域数据传输到互联网(每 GB)”。当 CloudFront 从 S3 获取对象时,从 S3 到 CloudFront 的带宽是免费的。
此外,我怀疑 S3 服务器/节点是否能提供 40Gbps 的连接。
嗯...不要。:) 使用大型 EC2 实例类型之一(例如 hi1.4xlarge、cc2.8xlarge),如果实例与存储桶位于同一区域,并且您从 S3 下载大型文件,您可以轻松看到从 S3 下载单个文件,传输速率在 1 Gbit/秒范围内。它有容量。
当然,40 Gbps 并不是单次下载的可用容量,但在 AWS 的规模上,如此大的可用带宽并非不可能。您描述的架构中的任何组件都不是专门为您设计的。
它由所有客户(或相当一部分客户)共享,因此无需将 40 Gbit/sec 的任何内容专门用于您的使用。它也不需要放在一个地方。CloudFront 边缘网络上有 60 多个不同的独立位置,每个浏览器都连接到 CloudFront(借助 Route 53,即使你不是 Route 53 客户)认为这是每个浏览器的最佳边缘位置,使用他们自己的专有地理路由数据库,该数据库似乎具有自适应性。(我的测试站点显示您的浏览器当前正在使用哪个边缘位置,如果我的实验映射逻辑可以确定它 - 它通常可以 - 并且即使我从家里访问该网站,我也会看到它会定期发生变化。)
由于只有 40 个边缘位置,比目前的数量要少,因此小的每个边缘可用的带宽量可以满足向全球分散的受众 40 Gbit/秒的传输速度。
每个地区的 S3 基础设施也分布在跨该地区可用区域的硬件上。
40 Gbps 实际上甚至不是一个物理限制......
以及如何以及何时限制这一点?
...这是软件强制实施的保护控制。就像每秒 100,000 个请求的限制一样。该请求将被拒绝。
LimitExceeded
– 由于超出 CloudFront 限制,请求被拒绝。http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html
与此形成对比的是,CapacityExceeded
如果 CloudFront 网络实际出现问题,导致请求无法处理,则会记录这些信息。
S3 文档没有提到带宽限制,但在扩展讨论中:
如果您预计存储桶的请求率会快速增加到每秒超过 300
PUT
/LIST
/ 个请求或每秒超过 800 个请求,我们建议您打开支持案例以准备工作量并避免对您的请求率进行任何临时限制。DELETE
GET
http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html
请注意,这指的是“快速增加”,意味着逐渐增加将由 S3 的自动缩放和/或按词汇排序的对象键索引的分片自动处理。
使用 (Elastic Transcoder +) Amazon S3 + CloudFront 的最大流式传输带宽是多少?
当然,一切都是有限的,但就上述服务而言,没有办法有意义地描述其极限。对于所有实际用途而言,它实际上是无限的。
请注意,为了玩弄数字,实际上使用一个月全天候 40 Gbit/s 的速度几乎肯定不会发生,但如果真的发生,出站数据传输成本将超过 400,000 美元(这是一个非常整数,区域定价和折扣等级使计算变得复杂),但这使这么多容量在技术上“可用”的事实看起来更可信——如果您想付费使用,容量就在那里,但如果您不使用它,就无需付费。