亚马逊AWS官方博客

Amazon Aurora PostgreSQL Serverless – 现已正式推出

数据库通常是软件架构中最关键的部分,而管理数据库,尤其是关系数据库,从来就不是一件轻松的事。为此,我们创建了自动扩展版本的 Amazon AuroraAmazon Aurora Serverless,该服务可以根据您的应用程序工作负载自动启动、关闭、扩大或缩小。

MySQL 兼容版本的 Aurora Serverless 已推出了一段时间。今天,我很荣幸的宣布,PostgreSQL 兼容版 Aurora Serverless 正式发布。

在继续讨论细节之前,我想借此机会对 Amazon Aurora 开发团队表示祝贺,他们刚刚荣获了 2019 年美国计算机协会 (ACM) 数据管理专业委员会 (SIGMOD) 系统奖

使用 Aurora Serverless 创建数据库时,您可以设置最小和最大容量。您的客户端应用程序将透明地连接到代理队列,从而将工作负载路由到自动扩展的资源池中。由于资源已“预热”并且可随时添加以处理您的请求,扩展速度很快。

 

在 Aurora 管理存储的方式方面,Aurora Serverless 没有变化。存储层与数据库所用的计算资源无关。无需提前预置存储。最低存储量为 10GB,且根据数据库的使用情况,Amazon Aurora 存储可以按 10GB 的增量自动增长到最高 64 TB,且对数据库性能没有影响。

创建 Aurora Serverless PostgreSQL 数据库
我们来启动一个 Aurora Serverless PostgreSQL 数据库,来看看它在运行时的自动可扩展性。 从 Amazon RDS 控制台中,选择将 Amazon Aurora 作为引擎来创建数据库。Aurora serverless 目前与 PostgreSQL 10.5 版兼容。选择该版本后,无服务器选项将变得可用。

我为新的数据库集群提供一个标识符、选择主用户名,并让 Amazon RDS 为我生成密码。我将能够在数据库创建期间检索我的凭证。

现在,我可以为我的数据库选择最小和最大容量(以 Aurora 容量单位 (ACU) 为单位),并且在其他扩展配置中,我选择在进入非活动状态 5 分钟后暂停计算容量。 Aurora Serverless 将根据我的设置自动创建 CPU 利用率阈值、连接和可用内存的扩展规则。

在数据库上测试一些负载
为了在数据库上生成一些负载,我在 EC2 实例上使用 sysbenchsysbench 上捆绑了几个 Lua 脚本,可以帮助生成在线事务处理 (OLTP) 工作负载:

  • 第一个脚本 parallel_prepare.lua 可为 24 个表中的每个表生成 100,000 行。
  • 第二个脚本 oltp.lua 使用 64 个工作线程根据这些数据生成工作负载。

通过使用这些脚本,我开始在我的数据库集群中生成负载。从 RDS 控制台监控选项卡提供的这张图中可以看到,无服务器数据库容量会根据我的需求增长和缩小。此图中显示的指标是数据库集群所用的 ACU 数量。首先,它会向上扩展以适应 sysbench 工作负载。而当我停止负载生成器时,它会缩小,然后暂停。

现已推出
Aurora Serverless PostgreSQL 现已在美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈)、欧洲(爱尔兰)和亚太地区(东京)区域推出。使用 Aurora Serverless,您只需在数据库处于使用状态时,为您使用的数据库容量按秒付费,并支付常规的 Aurora 存储费用。

有关 Amazon Aurora 的详细信息,我建议您阅读这篇很棒的博文,它解释了 Amazon Aurora 的创建原因和创建方式:

Amazon Aurora 冉冉升起:我们是如何设计原生云关系数据库的

在生产中使用关系数据库从未如此简单过。我迫不及待的想要看看你们会用它来做什么!