使用 Amazon Aurora Serverless v2
配置并连接到 Serverless MySQL 或 PostgreSQL 数据库
简介
在本教程中,您将了解如何配置并连接到 Amazon Aurora Serverless v2。
Amazon Aurora 是一项关系数据库服务,版本兼容 PostgreSQL 和 MySQL。它以极低的成本提供企业级数据库的性能和可用性。Aurora Serverless v2 是 Aurora 的一种按需自动扩展配置。借助 Aurora Serverless v2,您的数据库可根据应用程序的需求自动扩展或缩减容量,您只需按实际使用量付费,同时仍受益于 Aurora 的高可用性、规模和速度。
传统上,开展数据库管理工作时有大量不确定因素:预测未知且有时不稳定的计算和存储增长情况,以满足新应用程序的需求,管理多变的工作负载(如开发和测试数据库等),并保持大量数据库容量处于在线状态(即使这些容量的使用频率很低)。Aurora Serverless v2 可以消除这些不确定因素。因为 Aurora Serverless v2 可根据应用程序的需求增加或减少数据库存储和计算容量。当数据库处于活动状态时,您按秒为使用的数据库容量付费,您只需在 AWS 管理控制台中点击几下,即可在预置配置和无服务器配置之间进行迁移。
本教程不在免费套餐范围内。如果您按照教程中的步骤操作并在教程结束时删除相应资源,所需费用不超过 1 USD。
您将学到的内容
在本教程中,您将学习如何:
- 创建 Aurora Serverless v2 数据库集群
- 使用 AWS Cloud9 创建客户端环境
- 允许客户端网络访问 Aurora Serverless v2 数据库集群
- 连接到 Aurora Serverless v2 数据库集群
- 删除资源
实施
AWS 使用经验
新手
完成时间
35 分钟
所需费用
如果您按照教程中的步骤操作并在教程结束时删除资源,所需费用不超过 1 USD。
需要
AWS 账户
获取帮助
上次更新日期
2024 年 7 月 2 日
-
创建 Aurora Serverless v2 数据库集群
在此步骤中,您将导航到 Relational Database Service(RDS)控制台,并创建 Aurora Serverless v2 数据库集群。
1.登录 AWS 管理控制台,并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/。
2.在左侧导航栏中,选择数据库,然后选择创建数据库。
3.在创建数据库页面上,进行以下选择:
- 在选择数据库创建方法中,选择标准创建。
- 在引擎选项部分的引擎类型中,选择 Aurora(兼容 PostgreSQL)。
- 如果您更熟悉 MySQL,可以在此处选择 Aurora(兼容 MySQL)。在您运行客户端命令连接数据库之前,这两个数据库引擎的操作步骤是相同的。
- 在引擎版本部分的可用版本中,选择提供 Serverless v2 选项的数据库版本。
- 注意:
- 在发布时,该选项适用于 Aurora PostgreSQL 版本 13 及更高版本以及 Aurora MySQL 版本 3(兼容 MySQL 8.0)的所有可选项。
- 本教程选择了版本 15.4。
- 注意:
- 在模板中,选择开发/测试。
- 在设置部分的数据库集群标识符中,输入 MyClusterName。
- 在凭证管理部分,进行以下选择:
- 保留主用户名为默认值。
- 选择自主管理。
- 将主密码字段设置为您选择的值。记录用户名和密码以备日后使用。
- 在实例配置部分,选择 Serverless v2。
- 在最小 ACU 中,输入 0.5。
- 在最大 ACU 中,输入 8。
- 注意:每个 Aurora 容量单位(ACU)提供相当于约 2 千兆字节(GiB)的 RAM 以及相关的 CPU 和网络。0.5 到 8 个 ACU 的范围意味着集群中的每个 Serverless v2 数据库实例在空闲时可缩减至 1 GiB 的 RAM,繁忙时最多可以扩展到 16 GiB 的 RAM。在实际情况中,您可以选择最小和最大 ACU 值,使数据库能够在不超出预算限制的情况下,在工作负载最繁忙的时段进行扩展。
- 性能详情等高级功能使用集群的部分 ACU 来完成收集和显示数据所需的工作。开启此类功能时,您需要选择更高的最小 ACU,以确保该功能正常运行。有关更多信息,请参阅 Aurora 用户指南。
- 在可用性和持久性部分,保留默认值:请勿创建 Aurora 副本。
- 在连接部分,保留“连接”和“网络类型”的默认值。
- 在虚拟私有云(VPC) 列表中,选择创建新的 VPC。
- 在子网组列表中,选择创建新的数据库子网组。
- 对于公共访问单选按钮,保留默认值否。
- 在 VPC 安全组(防火墙)列表中,选择创建新的 VPC 安全组,并在新 VPC 安全组名称中输入 MyClusterGroup。
- 您将在后续步骤中修改此安全组,以允许数据库客户端的网络流量访问新的 Aurora Serverless 集群。
- 在可用区列表中保留默认值无首选项。
- 在监控部分,取消选中开启性能详情复选框。
- 如前所述,使用此功能要求您的最小 ACU 设置高于 0.5。
- 保留其余的默认选项并选择创建数据库。
4.数据库界面显示正在创建集群,等待状态变为“可用”。然后选择 myclustername 以显示集群信息。
5.在 myclustername 页面的连接与安全性部分中,将端点名称复制到“类型”栏下的写入器条目中。
- 此集群端点让您可以指定一致的连接字符串,即使您在集群中添加或删除数据库实例,或者将读取数据库实例提升为写入实例。
6.在 myclustername 页面上,选择 myclustername-instance-1。在连接与安全性选项卡的网络部分,复制 VPC 值,并在安全性部分,复制 VPC 安全组值。
专业提示:为方便导航,您可以为在此页面上看到的 VPC 和安全组打开新的浏览器选项卡。这样就可以在以后需要时检索这些标识符。
- 在选择数据库创建方法中,选择标准创建。
-
使用 AWS Cloud9 创建客户端环境
创建 MyClusterName 集群之后,您需要在同一 VPC 内创建数据库客户端。在此步骤中,您将创建 AWS Cloud9 环境作为数据库客户端。
1.登录 AWS 管理控制台,并通过以下网址打开 AWS Cloud9 控制台:https://console.aws.amazon.com/cloud9/。
2.在 AWS Cloud9 界面上,选择创建环境。
3.在创建环境页面上,进行以下更改:
- 在详细信息的名称部分,输入 MyCloud9Env。
- 在环境类型中,保留默认选择新建 EC2 实例。
- 在新建 EC2 实例部分,保留实例类型、平台和超时的默认选项。
- 在网络设置部分,保留“连接”的默认选择 AWS Systems Manager(SSM)。
- 通过这种连接方法,您将能够使用基于 Web 的界面,从而简化登录 Cloud9 系统的过程。
- 通过这种连接方法,您将能够使用基于 Web 的界面,从而简化登录 Cloud9 系统的过程。
- 展开 VPC 设置部分,使用下拉列表选择您在上一节中复制的 VPC。
4.然后选择创建。
5.创建新的 Cloud9 环境后,您可以在 Cloud9 IDE 下选择打开,在浏览器中试用 Cloud9 用户界面。
注意:您目前还无法连接到 Aurora 集群,将在本教程的下一节中执行此操作。
-
允许客户端网络访问 Aurora Serverless v2 集群
在此步骤中,您将启用从 Cloud9 环境到 Serverless v2 数据库集群的网络访问权限。要执行此操作,您需要将分配给 MyCloud9Env 的安全组添加为流量来源,以便分配给 Aurora 集群中数据库实例的安全组。
注意:安全组是用于控制网络流量的虚拟防火墙。
1.在新的浏览器选项卡中登录 AWS 管理控制台,并通过以下网址打开 VPC 控制台:https://console.aws.amazon.com/vpc/。
2.在 VPC 控制面板页面的左侧导航窗格中,在安全下,选择安全组。
3.找到以 aws-cloud9-MyCloud9Env 开头的安全组,选择安全组 ID 以打开详细信息页面。
4.在安全组详细信息页面上,复制安全组 ID。
5.在入站规则选项卡上,选择编辑入站规则。
6.在编辑入站规则页面上,选择添加规则。
7.在入站规则部分,进行以下更改:
- 在类型中,从下拉列表中选择 PostgreSQL。
- 如果您在上一步中选择了 MySQL 作为引擎,请在此处选择 MySQL/Aurora。
- 如果您在上一步中选择了 MySQL 作为引擎,请在此处选择 MySQL/Aurora。
- 在来源中,选择自定义,将您在上一步复制的安全组 ID 粘贴到输入字段中。
- 然后选择保存规则。
- 在类型中,从下拉列表中选择 PostgreSQL。
-
连接到 Aurora Serverless v2 数据库集群
在此步骤中,您将从 AWS Cloud9 环境访问 Aurora Serverless 数据库集群。
1.导航到 AWS Cloud9 控制台,然后打开 Cloud9 IDE 浏览器。
2.在 MyCloud9Env 的 bash 终端选项卡中,为您在创建集群时选择的引擎选项键入以下命令。
- 注意:
- 将命令中的值替换为主用户名和数据库端点。由于我们建议将主用户名保留为默认值,因此使用的值将是 postgres。
- 您可以在 RDS(myclustername)数据库控制面板中找到这些信息。
- 将命令中的值替换为主用户名和数据库端点。由于我们建议将主用户名保留为默认值,因此使用的值将是 postgres。
如果你选择了 Aurora(兼容 PostgreSQL),请使用以下命令:
sudo dnf update sudo dnf install postgresql15 -y psql -U [your Master username] -h [your Aurora cluster endpoint] postgres
如果您选择了 Aurora(兼容 MySQL),请使用以下命令:
mysql --user=[your master username] --password -h [your database endpoint]
3.出现提示时,输入主密码,然后按 Enter。
现在您应该已连接到 MyClusterName Aurora Serverless 数据库集群!
4.您可以使用已建立的连接向 Aurora Serverless 数据库集群发出 SQL 语句和客户端命令。
例如,如果您设置了与 PostgreSQL 兼容的 Aurora 集群,则可以通过将以下命令粘贴到在 MyCloud9Env bash 选项卡中运行的 psql 会话中,以显示服务器上的数据库:
\l
注意:如果您设置了与 MySQL 兼容的 Aurora 集群,则用于列出数据库的相应 mysql 命令为:
show databases;
5.通过粘贴以下 SQL 语句,可以显示 UTC 时区的当前日期和时间,以及 Aurora 集群中数据库引擎的版本。
注意:相同的语句适用于兼容 MySQL 和兼容 PostgreSQL 的 Aurora。
select now(); select version();
注意:如果运行的 SQL 语句需要的内存、CPU 或网络容量超过了集群当前的容量,写入数据库实例会进行扩展,以便有足够的资源来处理工作负载。此扩展操作不会中断您的连接、任何正在进行的事务或任何正在运行的 SQL 语句。
- 注意:
-
删除资源
在此步骤中,您将终止 Aurora 数据库集群和 AWS Cloud9 环境。
重要说明:清理当前未使用的资源可降低成本,是最佳做法。
1.在 Amazon RDS 控制台页面的左侧导航栏中选择数据库。
2.从集群列表中选择 myclustername-instance-1。
- 注意:如果您尚未记下 VPC ID 和安全组 ID,请选择实例名称以打开该实例的详细信息页面,并记录 VPC 和安全组的详细信息。
3.从操作菜单中选择删除。
4.出现提示时,在相应字段中键入删除我以确认删除。
- 如果您设置了多可用区集群或添加了任何读取器实例,使该集群包含多个数据库实例,请对集群中的每个数据库实例重复此步骤。
5.当集群中的所有数据库实例都处于正在删除状态时,选择 myclustername 集群,然后从操作菜单中选择删除。
- 您无需等到数据库实例实际被删除后再进行此操作。控制台页面上的集群项目代表您的数据库表和其他对象的存储空间。在删除集群之前,无论集群中有多少实例,其中的数据都将保持不变。
6.在确认页面上,取消选中创建最终快照复选框。
7.选中确认复选框以确认可以删除 Aurora 集群中的数据。
- 如果您在测试期间创建了任何想要保留的信息,则可以保留创建最终快照的选中状态。此操作让您之后可以在新的 Aurora 集群中检索数据。
8.然后,输入删除我以确认删除。
注意:在 AWS 管理控制台中显示 Aurora 集群已删除的确认信息之前,不要继续执行下一步。
删除 Aurora 集群后,您需要找到与 Aurora 集群关联的安全组。
9.导航到 VPC 控制面板并选择安全组页面。
10.选择 MyClusterGroup 安全组。然后,从操作菜单中选择删除安全组。
11.导航到 AWS Cloud9 控制台,从您的环境页面选择 MyCloud9Env,然后选择删除。
12.出现提示时,确认删除 MyCloud9Env。
13.返回 VPC 控制台,在左侧导航栏中,选择您的 VPC。
14.选择您为本教程创建的 VPC。然后,选择操作,选择删除 VPC。
- 如果您尚未完成 Cloud9 环境或 Aurora 集群的删除,则必须等到这些资源已删除后才能继续。
15.在文本字段中键入删除以确认删除 VPC。
- 注意:删除 VPC 的同时也会删除其他网络资源,例如 Cloud9 和 Aurora 安全组,否则这些资源将保留。
恭喜
恭喜! 您已经学会了如何创建、连接和删除 Aurora Serverless v2 数据库集群。