双云记:Amazon vs. Google

  • Robert Aboukhalil
  • 大愚若智

2017 年 3 月 21 日

话题:Google语言 & 开发架构

本文最初发布于Robert Aboukhalil 的博客,经原作者授权由 InfoQ 中文站翻译并分享。

近些年,AWS 的服务已逐渐成为云供应商的事实标准。但是本文会告诉你,除了随大流,其实很有必要认真研究一下 Google Cloud。

在为多个项目同时使用过 Amazon Web Services(AWS)和 Google Cloud Platform(GCP)后,我将通过本文介绍这两家服务的重要差异,主要涉及价格、云产品、实例的配置,以及免费试用。

Google Cloud 以价格取胜

在计算和存储成本方面,Google 云是当之无愧的冠军。例如一个 2 CPU/8 GB 内存的实例,AWS 的每月成本为 69 美元,GCP 仅 52 美元(便宜了 25%)。在云存储成本方面,GCP 的区域存储成本仅为每 GB 每月 2 美分,而 AWS 为每 GB 每月 2.3 美分。此外 GCP 还提供了一种“多区域”云存储选项,该选项可将数据自动复制到多个区域,成本为每 GB 每月 2.6 美分。更详细的计算可参照AWS 成本计算器GCP 成本计算器

除了价格更低,GCP 还提供了更好的成本结构。与 AWS 按小时付费的模式不同,GCP 提供了按分钟付费的模式,最小收费区间为 10 分钟。如果要通过云服务运行一些耗时非常短的即席分析,这一点将显得很重要,而 AWS 取上限按照小时收费的方式会导致成本增加。例如某个分析工作共耗时 2.01 小时,GCP 将按照 2.01 小时来收取计算费用,而 AWS 会按照 3 小时来收取。

此外对于长期使用的用户,GCP 提供了更简单的折扣方式:AWS 要求用户必须将实例预留很长时间,而随着实例使用时间逐渐变长,GCP 会自动提供价格折扣,无需提前预留。如果预留的实例可以满足需求,GCP 还可针对预留实例提供更高的折扣

AWS 以市场份额和服务取胜

在用户接受度方面,AWS 是毋庸置疑的市场领导者,拿下了几乎半数的基础架构即服务(IaaS)市场。借助先发优势和接近 5 年的领先时间,AWS 提供了更丰富的云产品和选项。作为对比,GCP 是这一领域的新手,虽然也提供了类似的解决方案,但依然有些落后。

举例来说,如果需要一套全托管式的云端 SQL 解决方案,GCP 可提供托管的 MySQL 解决方案(以及上周刚发布,处于 Beta 阶段的 PostgreSQL),而 AWS 还可为 Aurora、MariaDB、Oracle 以及 Microsoft SQL Server 提供支持。另一个例子,AWS 提供了一种名为 AWS Lambda 的“无服务器”计算产品,用户无需建立专门负责接受请求的实例,即可随时运行代码。虽然 GCP 提供了类似的产品(Google Cloud Functions),但最近才刚进入 Beta 阶段,距离生产环境中的应用为时尚早。

在全球可访问性方面,AWS 在全球布局了更多数据中心。最重要的是,如果你要在中国开展自己的业务,虽然可以从中国大陆访问 GCP 实例,但无法访问托管在 Google Cloud Storage(类似于 Amazon S3)中的数据。

Google Cloud 以实例配置取胜

在大规模实例方面,AWS 无疑是冠军。GCP 实例最大规模可达64 CPU/416 GB 内存,而 AWS 可提供最高128 CPU 以及令人惊叹的 2 TB 内存实例!

话虽如此,GCP 在实例的配置方面显得更灵活。除了与 AWS 一样提供预配置的实例类型,GCP 还可让用户自行定制要使用的 CPU 和内存数量。例如,n1-standard-1类型的实例包含 1 CPU 和 3.75 GB 内存,但你可以选择让这个实例使用 1 CPU 的同时,为其灵活地分配 1.75 GB、4.25 GB,或 5 GB 内存。毕竟如果可用实例类型已经可以满足计算方面的需求,那么此时进一步的定制就可以帮你大幅节约费用。

随后,如果需要频繁进行大数量多批次的即席分析,可以考虑这两家提供的更便宜的临时实例。你可能已经对 AWS 的 Spot 实例很熟悉了,这种模式下,你可以对自己愿意为一个实例的运行所支付的金额进行竞价(费率比非 Spot 实例的费率低很多),如果市场价格超出你的报价,将无法继续再使用该实例(AWS 还提供了Spot block,这种模式下需要提前指定需要使用该实例的时长)。GCP 也有类似的服务,但并未采取竞价模式,他们的这种服务叫做可抢占(Preemptible)实例。这类计算机可 24 小时运行,但如果需要这些计算资源,Google 可随时终止其运行。实例被抢占后,GCP 会运行用户预定义的关机脚本,借此为用户留出了 30 秒时间,可供用户保存分析工作的当前状态。无竞价模式的优势在于,抢占实例的启动过程可以轻松实现自动化,价格更可预测,相比 GCP 的常规定价可节约最高 80%!

Google Cloud 以免费试用取胜

AWS 非常慷慨地提供了 1 年免费试用。试用服务已远远超出用户熟悉和体验该服务的需求,其中包含一个小型 1 CPU/1 GB 内存,30GB 磁盘存储的实例每月 750 小时的运行时间,一个类似规模的托管数据库实例(例如 MySQL)每月 750 小时的运行时间,以及 5 GB 云存储(足够小型 Web 服务器连续不间断运行一整年)。但这才仅仅是开始:AWS 免费试用还免费提供了大量其他产品,详情可参阅AWS 网站上的完整清单。

直到上周,Google Cloud 还只能提供有效期 60 天,总金额 300 美元的试用额度,这样的内容看着不像是试用,更像是一次性的 300 美元折扣。目前 GCP 已将 300 美元试用额度的有效期延长到 12 个月,并增加了一个不限制时间的免费层。例如,用户可以免费获得一个 0.2 CPU/0.6 GB 内存,带 30 GB 磁盘存储和 5 GB 云存储的实例。如果这个服务能够持续下去,用户将能通过 GCP 永久免费运行小型网站(这个问题打算在另一篇博客文章中介绍)。详情请访问GCP 网站

GCP 试用能够获胜的另一个原因在于,他们所用的“额度”模型更适合新接触云计算的用户,因为可以迫使用户不断思考不同服务的成本,哪怕试用过程中也要思考。在我看来,这种方式可以在使用结束后避免用户看到实际账单后产生大吃一惊的感觉。

总结

总的来说,AWS 无疑提供了更多云产品,但老实说,除非你的应用程序真的需要,否则在云的选择方面更适合使用“少即是多”的思路。对于新接触云计算的用户,相对更少,更统一的选项也可以大幅降低学习成本。

就我而言,Google Cloud 直观的界面,更低的成本,更灵活的计算选项,按分钟付费的模式,以及可抢占的实例使得 Google Cloud Platform 比 AWS 体现出更大的吸引力。

因此如果需要开始一个新的项目,强烈建议认真考虑一下 Google 的云平台

注意:本文的对比已包含 2017 年 3 月 8-10 日举办的 Google Cloud Next 2017 大会上最新公布的消息

阅读英文原文A Tale of Two Clouds: Amazon vs. Google


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

Google语言 & 开发架构