在去年的 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,包括 Tableau 、 Talend 、 Alfresco 等。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 读者交流群)。
评论