AWS,带宽和内容交付


31

我的问题是关于虚拟机以及如何通过服务器连接到互联网来传递其内容。

我有一个Ec2 Windows实例,它的网络连接似乎为100mbps

如果要从该EC2实例交付内容,那这是我的潜在瓶颈吗?

s3有何不同,我猜他们不是s3真正的潜在出站瓶颈吗?

注意:我知道s3及其CDN对于静态内容会更好,但是我现在需要探讨这种情况。我们的HTML页面需要通过AJAX访问服务器端页面,并且由于此刻我们的内容和我们的服务器必须位于完全相同的域上,因此尚无防弹措施,因此它不使用S3。

所需带宽:我不确定,我们最多可以有100个用户随时下载视频,也许没有更多。每个视频的最大长度为5mb,但最多可以观看20个。


“我们需要HTML才能通过JS访问代理”……这是什么意思?
埃里克·哈蒙德

您希望高峰期需要使用多少带宽?
埃里克·哈蒙德

@EricHammond我已经用更多信息更新了我的问题
Keeno 2011年

在我看来,您似乎没有任何特殊原因需要特别关注任何特定的潜在瓶颈。使用可扩展性的通用最佳实践来构建服务,然后在出现性能问题时进行调查和解决。通过CDN提供视频。
埃里克·哈蒙德

1
Keeno:我熟悉JS中的相同来源政策,但是仍然看不到为什么它会阻止您使用其他域(CDN)提供视频内容。这是惯例。
埃里克·哈蒙德

Answers:


60

我不能说Windows实例,但是我假设它们的基本特征与Linux实例非常相似。

您对带宽使用的估计是同时下载100个视频(我不确定您是要下载文件还是流式传输视频-我将假定后者)。如果我们采用512kbps的流速率,则大约需要51Mbit / s或6.5MB / s。

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

一些用于量化“低”,“中”和“高”的典型数字(不同来源的理论值引用了不同的数字,因此它们可能并不完全准确)。

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

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

低: 理论上:100Mbps;现实(根据我自己的测试):10-15Mbps = 1-2MB / s

(实际上也有一个“很高”的级别(理论上为10Gbps),但仅适用于集群计算实例)。

值得一提的是变化的程度。在较小的实例上,由于物理组件在更多虚拟机之间共享,因此性能变化更大。无论如何,你可以期望大约在+/-在你的业绩20%的变化(来源:123)。在您的情况下(根据顶部的假设/计算),您可能需要13MB / s的峰值带宽(两倍于6.5MBps,因为磁盘I / O也受网络限制)。如果要传输带宽较低的内容,则应该能够使用具有“中等” I / O性能的实例(请参见实例类型页面)),如果您的计算导致对带宽的更高要求,则您将需要一个具有“高” I / O性能的实例。简单地流传输数据不应受到CPU或内存的限制,但是维持100个并发连接可能至少需要一个中等大小的实例-并且,考虑到带宽,基于上述考虑,较大的实例将是更安全的选择)。

我建议对您启动的服务器进行基准测试,以查看它们是否满足您(计算的)需求。启动两个实例(相同类型),并iperf使用实例的私有IP地址在每个实例上运行-如果使用默认设置运行,则需要在安全组中打开端口5001)。此外,EC2网络外部的大多数测试显示的结果在80-130Mbps(大型实例)之间-尽管这样的数字不一定有意义。

如果您的安装允许,CDN会更适合您的需求。S3似乎有大约50MB的限制/ s的带宽(至少从单一实例),按照这篇文章,但比你应该要求的要高(S3不支持流)。Cloudfront将更适合您的任务(因为它被设计为CDN),并且默认情况下()支持1000Mbps = 125MB / s(可根据要求提供更高的带宽,并且还可以流式传输内容)


您从哪里获得“理论” Mbps值?我找不到这些编号的任何官方或非官方文档来源。
dtheodor

4
到目前为止,这些数字可能已经大不相同了(目前,我似乎无法为其寻找源头)。四年来发生了很多变化。众所周知,EC2在群集组中具有10Gbps互连。AWS曾经(在2007年)引用了250Mbps专用本地带宽的数字。当前,实例之间共享网络带宽,优先级根据实例类型(以及可能的因素,例如EBS优化)分配。实例大小至少部分决定与您共享多少其他实例。如果网络未使用,您的实例将获得更大的份额。
cyberx86

抱歉,这不是主题,但是我不知道该如何联系@ cyberx86,只是让您知道您网站的ssl证书已在一周前过期。很抱歉在这里评论,但找不到适合您的电子邮件地址。
凯文·利达

1
@KevinLyda谢谢。虽然我确实知道证书已经过期,但是该站点已有一段时间没有更新-因此这是一个很好的机会,可以使用LetsEncrypt迁移到自动续订。
cyberx86 '16

是的,我一直在使用它。非常容易编写脚本(尤其是与非官方客户一起编写脚本),并且可以在后台工作。
凯文·利达

0

数字似乎随着时间的推移而变化,并且随着不同实例类型的数量激增。但是很多人都发布了基准。我通过谷歌搜索获得了一些运气[instance category] ec2 network benchmark

例如,我想知道m4.xlarge实例的带宽,因此我搜索了ec2 m4 network benchmark。我从《华盛顿邮报》工程博客中找到了这个测试结果:

Type       Cost    Bandwidth Bandwidth Cost (1Gb/s) Bandwidth Cost EBS optimized
...
m4.xlarge  $0.252  791Mb/s   $0.320                 $0.320
...
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.