亚马逊AWS官方博客
Aurora Serverless MySQL 正式推出
您可能听说过 Amazon Aurora,这是一种在云中自定义构建的与 MySQL 和 PostgreSQL 兼容的数据库。您可能还听说过无服务器,无服务器让您可以在不考虑实例的情况下构建并运行应用程序和服务。这是 AWS 技术发展过程中的两个组成部分,我们很高兴能参与其中。去年,我们在 AWS re:Invent 大会上发布了 Aurora 新功能 Aurora Serverless 的预览版本。今天,我很高兴地宣布 Aurora Serverless for Aurora MySQL 正式推出。Aurora Serverless 是一种按需自动扩展的无服务器 Aurora。您无需考虑实例或扩展,并且只需为使用的部分付费。
这种模式非常适合负载不可预知或需求较少的应用程序。我很高兴将向大家展示这种模式的工作原理。我们来看一下如何启动无服务器集群。
创建 Aurora Serverless 集群
首先,我将转到 Amazon Relational Database Service (RDS) 控制台并选择集群子控制台。然后在子控制台中,单击右上角的 Create database (创建数据库) 按钮,进入以下屏幕。
在屏幕上方选择我的引擎类型,然后单击“下一步”,目前仅支持 Aurora MySQL 5.6。
接下来就到有趣的部分了!我将容量类型指定为无服务器,然后所有的实例选项和配置选项都不显示了。我只需为我的集群命名,并设置一组主用户名/密码,然后单击“下一步”即可。
之后我可以在显示的屏幕中选择若干选项。我可以指定要使用的 Aurora 容量单位 (ACU) 的数量上限。容量单位是按秒计费的(最低 5 分钟),而且我的集群将在指定的 Aurora 容量单位的最小和最大数量之间自动扩展。自动扩展的规则和指标将由 Aurora Serverless 自动创建,其中将包括 CPU 利用率和连接次数。当 Aurora Serverless 检测到我的集群需要更多容量时,它将从暖资源池中获取容量以满足需求。因 Aurora 设计的特点是计算层与存储层分离,所以获取的新容量可在数秒内开始提供流量。
如果我的集群不再有任何活动,集群甚至可以自动缩减至零。这非常适合那些长时间不太使用或不用的开发数据库。当集群暂停时,我只需要支付基础存储费用。如果我想手动扩展或缩减,以预防流量激增的情况,可以通过单次 API 调用轻松实现。
最后,单击右下角的“Create database”(创建数据库),然后等待集群可用 – 这个过程很短。目前,我们仅支持有限数量的集群参数,并计划在根据客户反馈进行改进时提供更多自定义选项。
现在,与其他 RDS 数据库类似,该控制台可提供丰富的数据。
在该控制台中,我可以像连接任何其他 MySQL 数据库一样连接我的集群。我可以运行 sysbench
或 mysqlslap 等工具,
以生成一些负载并触发扩展事件,或者我也可以等待服务缩减和暂停。
如果我向下滚动或选择事件子控制台,可以看到几个正在发生的不同自动扩展事件,包括在某一时刻暂停实例。
该服务最大的优势是什么?当我写完这篇博文后,我无需记着还得关闭该服务器!当我准备再次使用它时,我只需发出连接请求,我的集群便会在数秒内开始响应。
Aurora Serverless 的工作原理
我想更深入地了解,为了启用此功能,后台是如何运行的。当您预配置 Aurora Serverless 数据库时,该服务会执行以下操作:
|
当集群需要自动扩展、缩减或在暂停后恢复时,Aurora 会从可用节点池中获取容量,并将其添加到请求路由器。这个过程几乎不费时间,而且由于节点之间共享存储,所以 Aurora 可在数秒内针对大多数工作负载扩展或缩减容量。该服务目前进行扩展和缩减时的自动扩展冷却时间分别为 1.5 分钟和 5 分钟。由于现有连接和会话状态都已转移至新节点,所以扩展操作对已连接的客户端和应用程序是透明的。暂停和恢复之间的唯一区别在于首次连接的延迟更高,通常约为 25 秒。
现已推出
Aurora Serverless for Aurora MySQL 现已在以下区域推出:美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈)、欧洲(爱尔兰)。如果您有兴趣详细了解 Aurora 引擎,可以查看详细设计资料。如果您有兴趣更深入地了解 Aurora Serverless 的工作原理,敬请关注未来的博文,了解更多详情!
我个人认为这是数据库发展过程中一个令人非常兴奋的节点,我迫不及待地想看看客户将使用该数据库创造出什么样的成果!