亚马逊正式发布关系型数据库 Amazon Aurora

  • 谢丽

2015 年 7 月 30 日

话题:数据库MySQL语言 & 开发架构

在去年的AWS re:Invent大会上,亚马逊宣布Amazon Aurora。Aurora 是一个关系型数据库,可以跨 3 个可用区域复制 6 份数据,其设计目标是提供高性能和高可用性(99.99%),并且存储可以轻松高效地扩展到 64TB。近日,AWS 首席传道士Jeff Barr宣布Amazon Aurora 正式发布,但目前只有美国东部(北弗吉尼亚)、美国西部(俄勒冈) 和欧洲(爱尔兰)等三个地区的用户可以使用。

关于 Amazon Aurora 的特性,Jeff 在先前的博文中已经阐述过。因此,这次他只介绍了该数据库的新特性:

  • 零宕机迁移:如果用户正在使用Amazon RDS for MySQL,那么借助 Amazon Aurora 的新特性,只需要很简单的操作(打开RDS 控制台,选中现有数据库实例,并从Instance Action菜单下选择Migrate Database)就可以实现零宕机迁移。如果数据库处于活动状态,则需要首先在实例的 DB 参数组中启用二进制日志(具体方法参见这里)。
  • 丰富的指标:每个 Amazon Aurora 实例都会向Amazon CloudWatch提报大量的指标。用户可以通过控制台查看,并根据需要设定预警值。
  • 简单快速的复制:每个 Amazon Aurora 实例最多可以有 15 个副本,用户只需几次点击即可完成。而且,得益于 Amazon Aurora 独特的架构,复制延迟通常只有 10 到 20 毫秒。
  • 性能提升 5 倍:在同一硬件上运行时,Amazon Aurora 的性价比是传统关系型数据库的 5 倍。不过,这不是说单个查询的速度快 5 倍,而是说 Amazon Aurora 能够处理的并发查询比其它产品多许多。Amazon Aurora 独特的高并发存储访问方式减少了数据存储争用,让它可以用一种非常高效的方式处理查询。也许,这可以解答人们先前的疑问

AWS 合作伙伴网络(APN)已经开始在他们的产品中测试 Amazon Aurora,包括TableauTalendAlfresco等。Amazon Aurora 已经可以用于生产环境,其计费方式如下:

  • 数据库实例——主实例和副本均以小时为单位计费。
  • 存储——每 GB 每月 0.10 美元,依据是数据库实际占用的存储字节数。
  • I/O——数据库发起的每百万次 I/O 请求 0.20 美元。

更多价格信息,请查看Amazon Aurora 定价页面

Aurora 发布的消息在 Hacker News 上引发了激烈的讨论。许多网友都对 Aurora 的技术架构感兴趣,比如 elktea 和 falcolas 就想知道“它是否是基于Galera(一个以 InnoDB 为基础构建的存储引擎,是 MySQL 和 MariaDB 集群实现的基础)?”,而 falcolas 猜测 Aurora 是基于 NDB 构建。对此,Redshift 总经理 awgupta 回复道:

Aurora 既不是基于 Galera,也不是基于 NDB。

你可以将 Aurora 看作一个单实例数据库……事务、锁、LSN 生成等都是在数据库节点完成的。我们会将日志记录向下推送到存储层,Aurora 存储负责从日志生成数据块。

因此,ACID 中的 ACI 都是在数据库层使用传统的技术实现的。而 D 则使用了分布式系统的技术……我们有一个生成 LSN 的头节点,提供一个单调逻辑时钟……

另外,谈到 Aurora 的性能,有网友对基准测试感兴趣,但苦于没能找到独立的第三方对 Aurora 进行基础测试的案例。对此,awgupta 回复说:

对于类似 TPC-C 这样的基准测试,你可以运行:1)CloudHarmony;2)Percona

我们发现,使用 CloudHarmony 加载大型数据集更简单,但我们两个都做了。

另外,他还建议网友阅读这篇文章。这有助于确保,他们配置的客户端有足够的网络吞吐量来运行一次完整的测试。

除了上述问题外,有许多网友对 Aurora 究竟是什么还存在疑问。Jeff 建议他们阅读他先前的博文。而关于 Aurora 的架构细节,网友 mathnode 则建议观看这段YouTube 视频

要了解更多关于 Amazon Aurora 的信息,请访问Amazon Aurora 官方网站或阅读Amazon Aurora 文档


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

数据库MySQL语言 & 开发架构