亚马逊 S3:何时/为什么使用?

29

所以,我有一台专用服务器。我托管了大约十几个小站点。

对于我的图像和静态文件托管,使用S3(或Mosso)是否有真正的好处?我的服务器已经有足够的磁盘空间,还是我完全没有领会使用S3的重点?

我不停地读到这个多么好又便宜,然后问自己“为什么我不用这个”,但答案总是“为什么要用呢?”

14个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
35

如果您的服务器提供的存储空间和带宽已经足够满足您的需求,而且您已经在运行中,那么您已经在做适合自己的最简单的事情,并且这也是您应该始终开始的地方。

  • 当您的存储或带宽需求增长超出您当前解决方案的范围时,S3比升级当前解决方案更便宜。
  • 如果您因故障转移/性能原因而转移到多个专用服务器解决方案,并且希望能够将您的资产存储在单个共享位置中。
  • 如果您的带宽需求高度变化(这样您就可以在没有流量时避免每月费用)[感谢评论区中的Jim]。

5
同意,如果您的带宽需求变化很大(这样您就可以在没有流量时避免月费),那么这也是有用的。 - Jiaaro
1
谢谢,Jim。这是一个非常好的观点,我已经把它加入到我的答案中了。 - Adam Alexander
@Jiaaro 你仍然需要支付存储费用 :) - Ja͢ck

24
如果您的整个网站仅在一台机器上运行,并且该机器足以处理您的网站,那么恭喜您,图像不是需要解决的瓶颈问题。现在先忘记S3。 然而,随着您的服务器变得更加繁忙,您将希望服务器花费所有时间做服务器工作。传输静态内容,如平坦的HTML文件和图像,是一个简单而愚蠢的工作,在它们上面浪费宝贵的主动连接、带宽和CPU循环是不好的。通过切换到S3,您的服务器可以专注于做重要的事情,也就是您的程序实际上要做的事情。 S3还有分布式的好处,并且与您的服务器相比,连接速度更快,这意味着图像将更快地显示在客户端的机器上,这是一个额外的好处。 S3也备份了数据,这意味着它是存储几乎任何私人数据的不错选择,除了您想向其他人提供的内容(尽管不要混淆这两者之间的权限设置 - 实际上,您可能需要完全使用单独的账户)。 S3也是无限的,这意味着如果您想让用户上传文件到您的网站(配置文件图片、附件等),S3是一个很好的选择,这样您就不必担心服务器是否会耗尽磁盘空间(在这里强制发出 $$$ 警告)。 但正如我在开头所说,如果您的设置只有一台服务器和少量用户,则所有这些都并不重要。它只是像任何其他工具一样,并且可能不是您现在需要的东西。

13
谢谢你的称赞。我甚至还没有阅读你的帖子。:p - Randolpho
26
以下是我在最近几分钟内的感受记录: “嘿,我得到了一个+1!心情好转++” “嘿,有人喜欢我的用户名!心情再次好转++” “人们只因为我的用户名而喜欢我,而不是我的才智。情绪下降-- :(” “我在想这是否就是有吸引力的女性所感受到的感觉。心情思考中(setMood(contemplative))。” - Brandon Yarbrough
2
值得注意的是,S3存储桶不能有嵌套文件夹,因此每个存储桶都具有平面文件结构。此外,存储桶名称需要在整个亚马逊网络服务中唯一(我认为这部分很糟糕)。如果要移动文件,请准备好这些限制。 - Jaymie Thomas
4
尽管如此,你可以有名称看起来像文件夹层次结构的存储桶。例如,“工作”,“工作/特殊客户”,“工作/特殊客户/Acme”。这不是一个真正的层次结构,但你可以花点力气将其视为一个层次结构。 - Brandon Yarbrough
1
S3的延迟相当糟糕(约500毫秒),因此实际上您可能看不到更快的图像。 - Brendan Long

5

这只是一个数字问题:对于一组文件的特定流量,您可以计算在S3上托管这些文件会花费多少钱,您应该能够为当前提供商做同样的计算。如果S3的数字更低,那么您就有了理由。

另一个好处是,S3的规模几乎与流量成正比,您只需支付实际使用的费用,而大多数提供商无论实际流量有多少都收取固定费用,有些提供商如果您超出了包含在固定费用中的最大流量,他们会让您付出高昂的代价。

更好的速度和可用性可能是额外的好处。

基本上,如果您有一个可能会产生非常不同流量的网站,那么使用S3来存储其图像和其他静态文件意味着如果您遭受Slashdot效应的打击,该网站保持可达性的机会更大,您也更有可能避免因超额流量费用而产生的不愉快惊喜。


4
亚马逊S3的优点是可靠性、可扩展性、速度和成本。以下是每个方面的信息。 可靠性:亚马逊在多个数据中心存储您的数据。如果发生灾难,一个数据中心被破坏,您的内容仍将从第二个数据中心提供服务。您上传到亚马逊的数据极不可能会丢失。 可扩展性:如果您的网站变得受欢迎并有数百万人访问该网站,您的网络服务器将无法处理这样的负载。相比之下,当您将文件上传到亚马逊时,它们存储在多个位置。如果您的内容负载增加,您的文件会自动复制到更多的服务器,因此您的文件始终可用。 速度:亚马逊有一个名为CloudFront的服务,与Amazon S3配合使用。当您在S3内容上激活CloudFront时,您的内容将移动到边缘位置。这些是使您的内容可用于高速传输的服务器。 成本:使用亚马逊S3,您只需支付您使用的费用。如果您有几个文件很少有流量,则每月只需支付几分钱。 SprightlySoft的一篇博客文章提供更多亚马逊S3的优点。请访问http://sprightlysoft.com/blog/?p=8阅读。

1

很多人不会遇到这个问题,但如果你(和你的Web服务器)位于澳大利亚(即互联网第三世界),你会遇到一个问题,那就是S3没有地理上靠近的位置,这意味着你的图像和其他静态内容的延迟会更高。可扩展性:是。速度快吗:不是。


1
如果你在托管高流量站点,则自己托管图像的带宽成本(以及延迟问题)将使S3和其他服务(如Akamai)变得有吸引力。对于低流量站点,这可能不是一个问题。

1

如果您的基本托管计划提供足够的空间/带宽,我认为没有理由使用S3。当您的文件传输量足够大,需要从提供商购买存储/带宽附加组件时,S3可能是一个可行的替代方案。但是,如果我每月支付$X并且没有使用所有存储空间,则没有任何好处。

另一方面,如果您的容量规划要求您在未来超出提供商的限制,那么从一开始就使用S3可能是一个不错的解决方案,这样您就不必从多个位置提供文件服务。


1
我赞同提到“冗余”的观点 - 您可以指望存储在S3中的任何内容都会分发到多个数据中心,并且对于任何具有功能网络连接的人来说,始终非常容易访问。 成本可能是另一个因素:S3的数据传输速率相当有竞争力。 速度是最后一个因素:您可以从S3非常快地访问数据。但这更多地涉及非浏览器可视图像之外的数据。

1
对于小型网站来说,S3或Mosso可能不太适合作为图像托管的选择,但如果您有任何视频文件(.wmv、.flv等)或大型下载(应用程序分发等),我仍然建议将它们放在S3或Mosso上,以避免潜在的带宽峰值,如果由于某种奇怪的原因,您的内容变得非常受欢迎。

嗨,我有很多视频文件,想要使用S3。我只需要创建一个存储桶并将我的视频文件放入其中,然后如何在我的网站上访问这些视频?S3会提供链接吗?如果这个问题不合法,请告诉我如何在这种情况下继续进行。 - FosterZ

1

你写道:

我的服务器有足够的磁盘空间,难道我完全没有理解S3的重点吗?

如果你在服务器上拥有的是一次写入、少于一次读取的内容(例如灾难恢复备份,希望永远不需要读取),那么你并没有错过什么,因为传输时间并不重要。S3的重点是交付速度。

首先,S3会在地理上分布你的内容。最终用户从中受益,因为路径更短。

其次,S3可以作为BitTorrent种子,这不仅节省了你的带宽,而且意味着你最受欢迎的内容将被更快地分发,因为它可以利用临时群体。 AWS讨论论坛上有关于S3支持BitTorrent协议的报告是“非常非常零散的”。我自己没有测试过。


创建S3存储桶(即“文件夹”)时,您可以选择将其存储在美国(更便宜)或欧洲(略微更昂贵)。我认为,为了实现真正的最近地理分布,您还必须注册CloudFront帐户。这样,它就会始终向用户提供距离他们最近的位置的内容。@Ronn Lixx:如果您决定将文件放在S3上,那么您不必担心速度问题,我敢肯定它足够快。我知道我的文件也是如此!CloudFront仅在涉及大量真正全球流量(例如实时视频)时才会发挥作用。 - Jaymie Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,