# AWS 的惊人规模及其对云的未来意味着什么

> 原文： [http://highscalability.com/blog/2015/1/12/the-stunning-scale-of-aws-and-what-it-means-for-the-future-o.html](http://highscalability.com/blog/2015/1/12/the-stunning-scale-of-aws-and-what-it-means-for-the-future-o.html)

![](img/9507f1ccc471853c743c9069de138100.png)

[James Hamilton](http://www.mvdirona.com/jrh/work/) ，亚马逊副总裁兼杰出工程师，以及[博主](http://perspectives.mvdirona.com/)长期从事有趣的话题，在 [AWS 上进行了热情洋溢的演讲：](https://reinvent.awsevents.com/) [AWS 创新规模](https://www.youtube.com/watch?v=JIQETrFC_SQ) 上的 Invent 2014 。 他显然为他们正在做的工作感到自豪，这表明了。

James 分享了有关 AWS 的一些惊人数据：

*   1 百万活跃客户
*   所有其他 14 个云提供商的总和是 AWS 总容量的 1/5（2013 年 Gartner 估计）
*   2014 年发布了 449 种新服务和主要功能
*   作为一家年收入达 7 亿美元的企业（2004 年），AWS 每天都会增加足够的新服务器容量来支持亚马逊的全球所有基础架构。
*   S3 的数据传输同比增长 132％
*   数据中心的网络容量为 102Tbps。

演讲的主题是云是一个不同的世界。 这是一个特殊的环境，允许 AWS 大规模地做伟大的事情，而您做不到的事情，这就是为什么从内部 x86 服务器到公共云的过渡正以惊人的速度发生的原因。 公有云具有如此众多的规模驱动优势，这是无法停止的过渡。 云将以您无法开始与有限资源，通才装备，膨胀的软件堆栈，缓慢的供应链和过时的创新范式匹配的速度，变得越来越可靠，功能更多，价格更低。

至少是 PR 消息。 但是您可以说的关于亚马逊的一件事就是他们正在生活。 他们使它成为现实。 因此，一个健康的怀疑是健康的，但推断命运的界限也是明智的。

AWS 拥​​有命运决定权的多变之一是资源。 在拥有一百万个客户的情况下，他们有足够的规模来保持扩展和改善的动力。 利润没有被提取出来，金钱被重新投资了。 这也许是规模最重要的优势。

但是没有聪明人的钱简直就是浪费。 亚马逊希望您知道他们有聪明人。 我们听说过 Google 和 Facebook 如何建立自己的设备，亚马逊也是如此。 他们构建了自己的网络设备，网络软件，机架，并且与 Intel 合作获得了比市场上更快的处理器版本的处理器。 关键是他们对环境一无所知，并且可以控制一切，因此他们可以制造出更简单的设备来实现自己想要的功能，从而最终变得更便宜，更可靠。

完全控制允许将质量指标内置到所有内容中。 指标推动系统各个部分的质量不断提高，这就是为什么在创新步伐加快的情况下，AWS 变得更加可靠的原因。 大量可操作的数据转化为知识是规模的另一个巨大优势。

AWS 不能做的另一件事是可用区架构本身。 每个可用区都是其自己的数据中心，一个区域内的可用区非常靠近。 这减少了消息传递延迟，这意味着可以在 AZ 之间同步复制状态，与冗余数据中心相距甚远的典型方法相比，这可以大大提高可用性。

这是一次充满信息的演讲，而且……实在太夸张了。 演讲的真正元主题是亚马逊如何有意识地利用规模来获得竞争优势。 对于亚马逊来说，扩展规模不仅是要花的钱，如果您知道如何扩展规模，它就是一种资源。

这是詹姆斯·汉密尔顿令人难以置信的谈话的掩饰...

## 对话中的所有内容都具有规模

*   当 AWS 成为年收入 7B 的企业（2004 年）时，每天都会增加足够的新服务器容量来支持 Amazon 的所有全球基础架构。

*   一年 365 天，组件制造商必须与服务器和存储制造商联系，服务器和存储制造商必须生产齿轮并将其推入物流渠道，必须将其从物流渠道转移到正确的数据中心 ，它必须到达装货平台，人们必须在那里将机架轮到 DC 中的正确位置，必须有电源，散热，网络连接，必须加载应用堆栈，必须进行测试 ，它必须发布给客户。

*   S3 使用率：数据传输量同比增长 132％； EC2 使用量：使用量同比增长 99％； AWS 的整体业务：超过一百万的活跃客户。

*   所有其他 14 个云提供商的总和是 AWS 总容量的 1/5（Gartner 在 2013 年估计）

*   拥有超过一百万的客户，这意味着您处于一个丰富的生态系统中。 您可以选择软件供应商，如果您以前遇到过别人可能遇到的问题，则可以更快地完成工作。

*   如此高的增长速度意味着亚马逊拥有资源，可以通过增加其提供的服务的广度和深度来继续进行再投资和创新。

*   通常，经济效益要好得多时，例如从大型机到 UNIX 服务器，然后从 UNIX 服务器到 x86 服务器，就会发生大的转变。 这些过渡通常需要 10 年以上的时间。 x86 本地迁移到云的不同之处在于它发生的速度。 云迁移的速度是具有很高的经济价值的功能，而且采用的摩擦也很低。 您不需要软件，不需要硬件，就可以做到。

## 联网中存在较大的成本问题

*   联网是整个行业的红色预警情况。 这是一场完美的风暴。

*   **问题 1** ：相对于所有其他设备的成本，网络成本正在不断上升。 这是反摩尔定律。 所有其他设备的成本都在下降，随着时间的流逝，网络变得越来越昂贵。 每月相对费用：服务器：57％； 网络设备：8％； 功率分配和冷却：18％； 功率：13％; 其他：4％。

*   **问题 2** ：在网络变得越来越昂贵的同时，网络与计算的比率也在上升。 部分原因是摩尔定律在服务器上仍在起作用，并且计算密度也在不断提高。 部分原因是，随着计算成本的下降，执行的高级分析数量将增加，并且分析需要占用大量网络资源。 解决使用大量服务器的大问题需要大量的网络。 网络流量已向东西方向移动，而不是传统的 [南北方向](http://highscalability.com/blog/2012/9/4/changing-architectures-new-datacenter-networks-will-set-your.html) 。

*   5 年前，Amazon 的解决方案是数据驱动的并且是激进的：**他们根据自己的网络设计**构建。 建立了特殊路由器。 雇用了一个团队来构建协议栈，一直到顶部。 他们自己将所有这些都部署在了网络中。 全球所有服务都在此设备上运行。

    *   **这种策略原来便宜得多**。 仅网络设备的支持合同就花费了数千万美元。

    *   **可用性提高了**。 改进的来源是简单性。 AWS 试图解决的问题比企业齿轮要解决的问题更简单。 企业设备必须遵守许多未使用的复杂规范，只会使系统更加脆弱。 仅实现所需的功能就意味着可以简化系统，从而提高可用性。 任何取胜的方法都是取胜的好方法。

    *   **指标**的聚宝盆。 他们衡量一切。 规则是，如果客户在使用他们的系统时体验不好，他们的指标必须显示出来。 这意味着指标一直在提高，因为客户问题推动了指标的提高。 一旦有了可以准确反映客户体验的指标，就可以设定目标，以使系统变得更好。 每周都会进行改进，以使事情变得更好。 如果代码起步不好，那么随着时间的推移它就会变得更好。

    *   **可测试性**。 他们的装备更好，因为他们进行了更好的测试。 企业级设备很难进行大规模测试。 他们创建了一个耗资 4000 万美元的测试平台，其中包含 8000 台服务器（3 兆瓦）。 但是由于这是云，他们有效地租用了几个月的服务器，因此价格相对便宜。

## 从最上层到网络接口卡的逐层网络解释

### AWS 全球网络骨干

*   全球 11 个 AWS 区域。 根据与客户的接近程度或所需的管辖范围选择要使用的那些。

*   专用光纤链路将大多数主要区域互连。 这样可以避免所有容量规划问题（Amazon 可以进行更好的容量规划），对等问题以及在公共链接上发生的缓冲问题。 因此，运行自己的网络速度更快，更可靠，更便宜且延迟更短。

### 示例 AWS 区域（美国东部（（弗吉尼亚北部））

*   所有区域至少都有两个可用区。 美国东部有五个可用区。

*   冗余路径通向运输中心。

*   每个区域都有冗余的运输中心。 转运中心将专用链接连接到其他 AWS 区域，将专用链接连接到 AWS Direct Connect 客户，并通过对等和付费转接连接到 Internet。

*   如果一个可用区发生故障，所有其他可用区继续工作。

*   可用区之间的城域 DWDM 链接

*   区域中有 82,864 根纤维束

*   AZ 间隔小于 2ms，通常间隔小于 1ms。 从等待时间的角度来看，它们在几公里之内非常接近。 相隔足够远以确保安全，相隔足够远以获得良好的延迟。

*   可用区之间的峰值流量为 25Tbps

*   AWS 提供可用区，因为：

    *   使用单个加固的数据中心，您将获得的最佳可靠性约为 [99.9％](http://en.wikipedia.org/wiki/High_availability) 。 高可靠性要求在两个数据中心中运行。 传统上，数据中心的多样性来自相距很远的两个数据中心，因为保持数据中心相互靠近的成本效益不高。 这意味着更长的等待时间。 LA 到 NEW 是往返 74ms。 提交给 SSD 的时间为 1 到 2 毫秒。 您不能等待 70 毫秒以上的时间才能提交交易。 这意味着应用程序在本地提交，然后复制到第二个数据中心。 在故障情况下，这种设计会在故障转移期间丢失数据。 尽管真正的故障很少发生，例如建筑物烧毁，但瞬态故障更常​​见，例如负载平衡器问题。 那么，您是否会在 3 分钟内对您的连接进行故障转移？ 不可以，因为数据将丢失，并且需要很长时间才能从其他来源恢复该数据。 因此，您将失去常见事件的可用性。

    *   可用区间隔为毫秒，因此您可以同时提交两个可用区。 这意味着，如果您进行故障转移，则由于数据复制是同步的，客户将无法得知。 它是不可见的。 很难为该模型编写代码，因此您不会为所有事情做到这一点。 对于某些应用程序，对多可用区故障的担心也可能会阻止您使用多个可用区，但是对于其余应用程序，这是一个非常强大的模型。 成本更高，但是它为 AWS 提供了某些优势。

### 示例 AWS 可用区

*   可用区始终是完全独立的建筑物中的数据中心。

*   亚马逊拥有 28 多个数据中心。 加号表示 AZ 中有更多数据中心，作为扩展 AZ 能力的一种方式。 在可用区中添加了更多数据中心以扩展可用区的容量。 否则，即使您不想这样做，也将不得不将应用程序划分为多个可用区。

*   一些可用区具有相当大的数据中心大小。

*   AZ 中的 DC 间隔小于 1/4 毫秒。

### 示例数据中心

*   AWS 数据中心故意不是巨大的。 单个数据中心的功率为 25-30 兆瓦，具有 50,000-80,000 台服务器

*   数据中心规模的回报减少。 随着您构建的规模越来越大，数据中心扩展的优势下降了。 早期的优势是巨大的。 后来的优势很小。 从 2000 机架增加到 2500 机架要好一些。 一个很小的数据中心太昂贵了。 真正的大型数据中心仅比机架中型数据中心贵一点。

*   数据中心越大，风险越大。 爆炸半径如果出现问题并破坏了数据中心，则损失太大。

*   到数据中心的网络容量为 102Tbps。

### 机架示例，服务器& NIC

*   唯一重要的延迟是连接两端的软件延迟。 发送消息时，两个服务器之间的延迟：

    *   您的应用->来宾操作系统->虚拟机管理程序-> NIC：延迟为毫秒

    *   通过网卡：延迟为微秒

    *   光纤上的：等待时间为纳秒

*   SR-IOV（ [单根 I / O 虚拟化](http://www.redbooks.ibm.com/abstracts/redp5065.html?Open) ）允许 NIC 在硬件网卡中提供虚拟化。 每个来宾都有自己的网卡。 好处是>平均延迟减少 2 倍，>延迟抖动增加 10 倍。 这意味着离群值下降到原来的 1/10。 SR-IOV 现在正在新的实例类型上部署，并且最终将在任何地方使用。 困难的部分不是添加 SR-IOV，而是添加了隔离，计量，DDoS 保护以及容量限制，这使得 SR-IOV 在云环境中很有用。

## AWS Custom Server &存储设计

*   负面情况的成本不高，因此可以取消昂贵的不需要的保护。 服务器是针对其功能而设计的，而不是针对一般用户。 亚马逊确切地知道服务器将在什么环境中运行，他们会确切地知道何时出现问题，因此可以在设计时减少工程空间。 对于他们来说，服务器故障的代价并不是很大。 它们已经在现场，并且非常擅长更换硬盘等。因此，企业设备中的许多注意事项都是不必要的。

*   **可以用力推动处理器**。 他们知道散热要求，影响机械设计，他们只是设计好的服务器，因此可以从服务器中获得更多性能。 尽管与英特尔亚马逊的合作关系使处理器的运行速度比在公开市场上购买的处理器要快。

*   例如，他们自己的储物架设计。 它重达一吨，宽 19 英寸，可容纳 864 个磁盘驱动器。 对于某些工作负载而言，这是一款出色的改变游戏规则的设计，可帮助他们在某些地区获得更高的价格。

## 电源基础架构

*   亚马逊已经设计并建造了自己的变电站。 它只节省一点钱，但是他们可以更快地构建它们。 公用事业公司不习惯应对 AWS 的增长速度，因此他们不得不自己建立。

*   3 个 100％碳中和地区：美国西部（俄勒冈州），AWS GovCloud（美国），欧盟（法兰克福）

## 创新的快节奏

*   2014 年发布了 449 个新服务和主要功能。2008 年为 24 个，2009 年为 48 个，2010 年为 61 个，2011 年为 82 个，2012 年为 159 个，2013 年为 280 个。

*   随着创新步伐的加快，AWS 变得越来越可靠。 他们的目标是向客户提供与实现这种创新速度和高质量相同的工具。

## 相关文章

*   在[黑客新闻](https://news.ycombinator.com/item?id=8875549)上/在 [reddit](http://www.reddit.com/r/programming/comments/2s6nf6/the_stunning_scale_of_aws_and_what_it_means_for/) 上

*   James Hamilton 的 [博客](http://perspectives.mvdirona.com/) 以及其他 [讨论和幻灯片](http://mvdirona.com/jrh/work/)

*   [深入了解 AWS 的大规模规模](http://www.enterprisetech.com/2014/11/14/rare-peek-massive-scale-aws/) 和 [，有关黑客新闻](https://news.ycombinator.com/item?id=8643248) / [on reddit](http://www.reddit.com/r/programming/comments/2n5p8c/a_rare_peek_into_the_massive_scale_of_aws/)

*   [十亿个数据包生命中的一天](https://www.youtube.com/watch?v=Zd5hsL-JNY4)

*   [亚马逊如何以及为什么进入云计算业务？](http://www.quora.com/How-and-why-did-Amazon-get-into-the-cloud-computing-business)

轻微错字。 “到数据中心的 10Tbps 网络容量。” 它应显示为“到数据中心的 102Tbps 网络容量”。 参考：https：//www.youtube.com/watch？v = JIQETrFC_SQ（26:40）

更正，谢谢乔尔

还有“每周 365 天零件制造商”-我认为应该是“一年 365 天” ...？

已更正，谢谢 Krys。 我读了十遍，每次都错过了。

只是澄清一下，Gartner 的确切报价是：“ AWS 是压倒性的市场领导者，使用的计算能力是其他 14 家提供商的总和的五倍多”，并且在 2013 年。情况可能已经发生变化。 自 2013 年以来，随着 Azure 和 App Engine 的增长，

来源： [http://www.theregister.co.uk/2013/08/19/amazon_gartner_magic_quadrant/](http://www.theregister.co.uk/2013/08/19/amazon_gartner_magic_quadrant/)

“ spunk”是在池塘的这一侧具有完全不同含义的单词之一。 也许要避免:)

关于“快速创新步伐”的注释很有趣，因为尽管 AWS 每周发布新功能（有时还发布服务），但我们发现所发布的内容缺乏质量。

我们不断有大量的公开支持案例，其中发现了我们使用的服务中的错误。 让 AWS 确认问题的存在通常很痛苦，然后要花几周甚至几个月才能解决问题。 有时这些问题似乎很关键，有时很烦人。

如果我们不订阅他们的支持产品，我不确定如何获得答案。

很多时候，即使我不得不承认该部分是值得商—的，功能似乎也没有经过深思熟虑，这可能是过早发布，经常发布的情况。

最重要的是，我宁愿看到不太快速的创新，而将重点放在提供稳定的基础架构服务上。 稳定地说，我并不是在指 EC2 的普遍可用性（我同意这要好得多），而是要提供更多的质量保证和更快的错误修复时间。

精彩演讲的精彩文章。 感谢您编写它，它给了我时间慢慢进行所有操作，总的来说，这真是令人印象深刻:)

嘿，您可能希望对本文进行快速的复制编辑，因为其中有很多语言/语法故障，使您分心。 除此之外，还不错的文章。 在公开发布它并从 reddit 之类的站点进行链接之前，只需确保您已经通过了一个不错的复制编辑器。

你能举个乔纳森的例子吗？ 这比一般的批评更有帮助。 文本特意简短且断断续续，以供快速浏览，这是一种样式选择，它不是典型的文章格式，因此为简洁起见，经常会忽略语法。 在我的网站上只有我一个人，所以我成为了自己的副本编辑器，所以有时我会犯错。

如今，您自己的专用服务器 8GB RAM 2TB 磁盘的价格每月不到 30 美元，而类似的 Amazon 机器则要贵 6 倍。 除了超成功的创业公司的微不足道的优势（可能需要在一小时内购买 100 台机器）外，没有任何优势。

这很令人着迷，但我也对许多普通用户的成本效益表示怀疑。 我有客户在亚马逊上花费数万美元，并在亚马逊之上构建服务，这些服务可以复制到机架中拥有的设备成本的十分之一。 这些是有利可图的服务，具有可观但可预测的流量，并且并没有疯狂增长。 甚至那个 Facebook 游戏公司都说他们在亚马逊上发布，但是一旦游戏达到可预测的增长曲线，他们就会转向拥有的便宜基础设施。 现在，您可以在低功耗但完全适合典型 Web 工作负载的商品消费硬件上使用开源资源构建类似 AWS 和 Heroku 的私有功能……甚至还可以获取每个节点都被视为一次性使用的 HA 功能。 如果正确地构建自己的东西，则可以通过这些公共云服务节省大量资金。

> >如果正确构建架构，则可以通过这些公共云服务节省大量资金。

是的，不是，如果您像迅猛发展一样，并且/或者计算需求出现非常不可预测的高峰和下降，那么除非您想拥有数十台或数百台服务器，否则您可能无法以更低的价格或足够快的速度进行调整 ，未充分利用大量时间，因此您有足够的能力来满足这些需求。

另一方面，如果您的工作负载处于稳定状态，则只要没有问题，就可以节省一些钱。 只要确保您正在比较苹果之间。 不要将您拥有的 10 个服务器放在一个区域内的数据中心中，与在全球范围内分布在具有独立电源，冗余连接路径的多可用性区域中的 10 台服务器相同，如果架构正确， 可以在几分钟内将容量翻倍，翻倍或翻倍。