使用 Amazon Aurora 创建高可用性

数据库集群

在此教程中,您将了解如何配置 Amazon Aurora 集群来创建高可用性数据库。高可用性数据库由跨多个可用区复制的计算节点组成,可提高读取可扩展性并改善故障转移保护。 

Amazon Aurora 是一种关系数据库服务,具有与 MySQL 和 PostgreSQL 兼容的版本,该服务以极低的价格提供企业级数据库的性能和可用性。对于大多数生产工作负载,您需要设置高可用性数据库。

默认情况下,Amazon Aurora 集群只拥有一个执行读取/写入操作的主计算实例。通过在集群中添加一个或多个 Aurora 副本,您将获得数据库集群的读取可扩展性和高可用性。如果集群中的主实例发生故障,Aurora 会将现有副本自动提升为新的主实例。

一般情况下,您需要在与主实例不同的可用区 (AZ) 创建 Aurora 副本。以此方式,当主可用区的基础设施出现问题时,您的数据库可以将故障快速转移到其他可用区的副本。

在存储层,Aurora 使用会以六种方式在三个可用区间复制您的数据来对其进行保护。然而,如果您没有将 Aurora 副本添加到集群中,当发生故障时,您必须等到 Aurora 为您创建新的替换主实例,此过程可能需要更长时间。

本教程将使用兼容 MySQL 的 Amazon Aurora。您将通过 Amazon RDS 管理控制台创建 Aurora 集群,添加 Aurora 副本,测试故障转移情况,然后再终止教程环境。

本教程不支持免费套餐,如果您按照教程中的步骤操作并在教程结束时终止相应资源,所需费用将不超过 1 USD。

关于本教程
时间 10 分钟                                           
费用 低于 1 USD
使用案例 数据库
产品 Amazon Aurora、Amazon RDS
受众 数据库管理员、开发人员
级别 中级
上次更新日期 2019 年 4 月 12 日

1.注册 AWS

您需要一个 AWS 账户才能按照本教程操作。通过选择“注册 AWS”来注册账户。 

已拥有账户? 登录您的账户

第 2 步 - 进入 Amazon RDS 控制台

Amazon Aurora 是与 MySQL 和 PostgreSQL 兼容的关系数据库,专为云而打造。它是 Amazon Relational Database Service (Amazon RDS) 的引擎。在此步骤中,您将进入 Amazon RDS 控制台。

打开 AWS 管理控制台,以便使本分步指南处于打开状态。此屏幕加载后,请输入您的用户名和密码以便开始操作。选择服务 > RDS 以进入 RDS 管理控制台。

第 3 步 - 创建 Amazon Aurora 集群

在此步骤中,您将创建一个 Amazon Aurora 集群,该集群由一个 Aurora 数据库实例组成。

a.在 Amazon RDS 控制台的右上角,选择要在其中创建数据库实例的区域,然后选择创建数据库

b.在“选择引擎”页面上,选择 Amazon Aurora。 然后,选择您想要的版本和下一步

c.  现在将配置您的数据库。保留容量类型和数据库引擎版本的默认设置。在数据库实例类上,您将选择数据库实例的计算和内存容量。Amazon Aurora 按实例类型按小时收费,在此教程中,选择 db.t2.small (1 vCPU, 2 GiB RAM) 来保持较低的成本。

在多可用区部署下,当 Amazon Aurora 将多可用区部署提供为默认选项时,选择,此教程将带您逐步了解如何在您选择的可用区间创建副本。 

d.  输入您的数据库实例标识符的名称、主用户名和密码。选择下一步

e.  Amazon RDS 有很多高级配置选项。在此教程中,保留默认配置并选择创建数据库

根据数据库实例类的不同,数据库实例可能需要高达几分钟时间才可用。选择查看数据库实例详细信息。 

f.新的 Aurora 数据库实例会显示在 RDS 控制台上的数据库列表中。数据库实例的状态将一直为正在创建,直到该实例可供使用且状态更改为可用。如果状态在几分钟内未改变,请刷新页面。

第 4 步 - 创建 Aurora 副本以获得高可用性

默认情况下,每个 Amazon Aurora 实例均具有强大的数据保护。您可以通过在一个 AWS 区域内的不同可用区 (AZ) 中添加只读副本来提高计算可用性。对于数据库集群在一个区域内跨越的可用区,最多可以跨这些可用区分布 15 个 Aurora 副本。 

a.  在 Amazon RDS 控制台中,Aurora 集群中的主(写入器)实例将列在数据库中。选择实例名称并记下网络下的可用区。

b.选择集群的单选按钮并通过选择操作 > 添加读取器来创建 Aurora 副本。

c.从主数据库实例中选择另一个可用区。对于实例规格,选择与主实例类似的实例类(在本示例中为 db.t2.small),因此,当发生故障转移时,我们将不会看到数据库执行情况的任何变化。在设置下,为 Aurora 只读副本数据库实例输入唯一的名称。

选择添加读取器

d.在数据库列表中,我们看到读取器角色正在创建新副本。向右滚动,直到您看到多可用区属性,现在,您将看到 2 个可用区,表示集群分布在两个可用区中(在计算层)。 

您已成功实现计算层的高可用性。接下来,我们将测试数据库故障转移过程。

第 5 步 - 设置数据库集群以进行故障转移

要提高高可用性,您可以将 Aurora 副本用作故障转移目标。如果主实例故障,则 Aurora 副本会提升为主实例。副本可用于获得读取可扩展性和可用性。在此步骤中,您将设置用于故障转移的 Aurora 副本优先顺序。

 

a.  选择您的读取器数据库实例旁的单选按钮,然后选择修改

b.  在故障转移期间,Amazon RDS 会将优先级最高(从 0 级开始)的副本提升为新的主实例。在本示例中,我们没有任何现有副本,因此我们将副本设置为最高优先级。在故障转移下,选择 0 级

如果同一优先级分层中的 2 个或更多副本出现冲突,Amazon RDS 会将大小相同的副本提升为主实例。

选择继续,然后修改数据库实例

第 6 步 - 测试数据库故障转移

a.  选择目标实例上的单选按钮。然后选择操作 > 故障转移。这将导致副本提升为新的主(或写入器)实例,旧的主(或写入器)实例成为新的只读副本。

 

b.选择故障转移

c.完成故障转移所需的时间取决于故障转移时的数据库活动量,但通常低于 60 秒。您可以在 日志与事件 > 最近的事件下监控故障转移过程。

在使用终端节点的情况下,故障转移对应用程序是透明的。虽然集群和读取器终端节点被用作数据库的 DNS,但实例连接将保持相同,并且会自动使用新的数据库实例。 

7.终止资源

在此步骤中,您将终止 Aurora 数据库集群和环境。

重要说明:终止当前未在使用的资源可降低成本,是最佳实践。不终止资源将产生费用。

a.选择您的 Amazon Aurora 集群名称进行终止,然后单击集群名称以显示所有集群实例的列表。选择读取器角色数据库实例上的单选按钮,然后选择操作 > 删除

 

b.输入短语 delete me 并选择删除以确认您的删除。我们将看到“状态”更改为正在删除


c.使用写入器数据库实例重复步骤 6a-b。作为最佳实践,系统将要求您在删除前拍摄最后一次快照。由于这是您的测试数据库集群,请取消选中创建最终快照选项并选择确认。输入 delete me,然后选择删除。此步骤将删除 Aurora 集群,包括存储和所有的自动化数据库备份。

恭喜

您已了解如何使用 AWS 管理控制台设置具有高可用性的 Amazon Aurora 数据库集群。现在,您可以将 Amazon Aurora 的高可用性、性能和持久性用于您的关键应用程序。

本教程对您是否有帮助?

谢谢
请告知我们您喜欢什么。
关闭
很抱歉让您失望了
是否存在过时、令人困惑或不准确的内容? 请向我们提供反馈,帮助我们改进本教程。
关闭