如何配置 Amazon RDS 数据库实例?

How are Amazon RDS Database Instances Provisioned?

我一直在考虑将一些数据库从自托管数据库实例(例如 MySQL 或 Linux 上的 PostgreSQL,裸机或 AWS 本身)移动到 Amazon RDS,但它是我不清楚创建数据库后一切将如何运行,是时候开始维护了。

例如,我必须选择将用于数据库的实例类型,我想这意味着一切的响应速度,并且有一个用于多可用区部署的选项,但它是不清楚我实际配置了多少这些类型的实例。 (据推测,多可用区部署至少需要两个实例)。

Failover的选项,这让我相信如果一个实例有问题我可以依靠服务来熬夜,但是还有一个为自动升级选择维护 windows 的部分,我觉得这很混乱。如果我正在管理例如两个实例 MySQL 设置,我会先升级一个实例,然后再升级另一个实例以避免停机。这不是 RDS 的行为方式吗?

RDS 宣传支持自动 "minor version upgrades"(是的,请),但没有说明 OS 升级。据推测,数据库引擎将 运行 在 Amazon Linux 或类似的东西上,并且会定期需要更新这些包。这一切都是自动发生的,还是我需要手动执行这些升级等?

使用 RDS 之类的东西的全部意义在于,该服务应该成为我不再需要担心的事情:我不必处理包维护、升级、故障转移或意外停机(只要当然,我付的钱已经够多了)。但是 RDS 实例的所有选项都让我怀疑 RDS 提供的优势超过 运行 我自己的一切。

任何有 AWS RDS 经验的人都可以评论他们在维护、升级和故障转移方面的经验吗?

这些问题与我们在计划使用 RDS 时遇到的问题相同。现在我们可以有效地将 AWS RDS 用于多个生产工作负载,让我尝试澄清您的疑问。希望这有帮助。

你的问题 1: 我必须选择将用于数据库的实例类型,我想这意味着一切的响应速度

回答:是的。这是为了定义数据库工作负载所需的容量(CPU、RAM 等)

您的问题 2: 有一个用于多可用区部署的选项,但不清楚我实际配置了多少此类实例。

答:多可用区部署是为了保证高可用性。 AZ(可用区)是 AWS 区域内的隔离位置,可以更好地防范灾难场景。因此,当我们选择多 AZ 部署时,RDS 会将您的数据库服务器的 2 个实例放置在您要配置的区域的 2 个可用区中。 这是由 RDS 自动完成的,我们不需要 setup/maintain 2 个服务器 separately/manually。 (注意:您的 VPC 应该在 2 个不同的 AZ 中的每一个中至少有 1 个子网以提供多 AZ 设置)

你的问题 3: 如果我正在管理,例如两个实例 MySQL 设置,我会先升级一个实例,然后再升级另一个实例以避免停机。这不是 RDS 的行为方式吗?

是的。如果您在设置 RDS 时启用自动升级(仅当您选择多 AZ 选项时)

,RDS 会自行完成,无需人工干预

您的问题 4: RDS 宣传支持自动 "minor version upgrades"(是的,请),但未提及任何有关 OS 升级的内容。

回答:RDS 不 expose/provide 任何 OS 访问我们。底层 OS 及其 upgrades/other 活动都在不影响其上托管的 RDS 服务的情况下完成。我们不必对 RDS 的 OS 做任何事情。所以我们可以忘记那部分。

您的问题 5:关于 AWS RDS 多可用区数据库的故障转移

我会分为两种情况。

案例 1: 在多 AZ RDS 实例完成的 maintenance/other 自动活动期间需要故障转移。

在这里,RDS 将自动一次对一个实例进行故障转移。它将首先将所有正在进行的流量移动到第二个实例,然后 upgrade/reboot 第一个实例,然后对第二个实例执行相同的操作。

案例 2: 手动期间需要故障转移 reboot/manually 触发在多 AZ RDS 实例上完成的操作。

在这种情况下,在重启期间,AWS RDS 会为您提供一个选项,让您select重启是否应该进行故障转移。