AWS,带宽和内容交付

我的问题是关于虚拟机,并通过服务器连接到互联网提供他们的内容。

我有一个Ec2的Windows实例,它的networking连接似乎是100mbps

如果我要提供EC2实例的内容,是否是我的潜在瓶颈?

s3有什么不同,我猜他们是不是真的潜在的s3出口瓶颈?

注:我知道s3和他们的CDN会更好的静态内容,但是我现在需要探索这种情况。 我们的HTML页面需要通过AJAX访问服务器端页面,因为目前我们的内容和我们的服务器需要在完全相同的域上,所以没有防火墙的工作,所以它排除了使用S3。

需要的带宽:我不确定,我们可以有多达100个用户随时下载video,可能不会有更多。 video可以达到每个5MB,但他们会查看多达20。

我不能说Windows实例,但我会认为它们的基本特征与Linux实例非常相似。

你对带宽使用的估计是100个同步video下载(我不知道你是否意味着下载文件或stream媒体video – 我会承担后者)。 如果我们采用512kbps的码stream速率,则需要大约51Mbit / s或6.5MB / s。

EC2实例的I / O性能(包括带宽)不同。 有3个级别的I / O性能:低,中,高。 请记住,磁盘I / O(即来自EBS卷)也取决于带宽。 您只能真正考虑EC2networking中的带宽(因为它将在互联网上完全变化)。

一些典型的数字来量化'低','中等'和'高'(不同的来源引用不同的理论值的数字,所以他们可能不完全准确)。

高:理论上:1Gbps = 125MB / s; 现实( 来源 ):750Mbps = 95MB / s

中等:理论:250Mbps; 现实( 来源,p57 ):80Mbps = 10MB / s

低:理论:100Mbps; 现实的(从我自己的testing):10-15Mbps = 1-2MB /秒

(实际上还有一个“非常高”的水平(理论上是10Gbps),但仅适用于集群计算实例)。

还有一点是变化的程度。 在较小的实例中,由于物理组件在更多虚拟机之间共享,所以性能更具可变性。 无论如何,您的performance可能会有大约+/- 20%的变化(来源: 1,2,3 )。 在你的情况下(根据顶部的假设/计算),你可能需要13MB / s的峰值带宽(双倍6.5MBps,因为磁盘I / O也是networking限制的)。 如果传输带宽较低的内容,则应该能够使用具有“中等”I / O性能的实例 (请参阅实例types页面 ),如果您的计算导致更高的带宽需求,则需要一个“高” “I / O性能。 简单地传输数据不应该是CPU或内存的限制,但是保持100个同时连接可能需要至less一个中等大小的实例 – 如果带宽是一个问题,基于上述情况,大的实例会更安全)。

我会build议您启动服务器基准,看看他们是否符合您(计算)的需求。 启动两个实例(相同types),并使用实例的私有IP地址运行iperf – 如果使用默认设置运行,则需要在安全组中打开端口5001)。 另外,EC2networking之外的大多数testing显示的结果是80-130Mbps(大的情况) – 尽pipe这样的数字不一定有意义。

如果您的设置允许,CDN将更适合您的需求。 根据这篇文章 ,S3似乎对带宽有至less50MB / s的限制(至less来自一个实例),但是这比你应该要求的更高(S3不支持stream媒体)。 Cloudfront将更适合您的任务(因为它被devise成CDN),默认支持1000Mbps = 125MB / s( 源 ),可以根据请求提供更高的带宽,并且可以传输内容)

这些数字似乎随着时间的推移而变化,随着不同实例types数量的增加。 但是一些人发布基准。 我通过使用[instance category] ec2 network benchmark了一些运气。

例如,我想知道m4.xlarge实例的带宽,所以我search了ec2 m4 network benchmark 。 我从华盛顿邮报工程博客find了这个testing结果:

 Type Cost Bandwidth Bandwidth Cost (1Gb/s) Bandwidth Cost EBS optimized ... m4.xlarge $0.252 791Mb/s $0.320 $0.320 ...