Amazon RDS Custom 架构 - Amazon Relational Database Service

Amazon RDS Custom 架构

Amazon RDS Custom 架构基于 Amazon RDS,且具有重要的区别。下图显示 RDS Custom 架构的主要组件。

RDS Custom 架构组件

VPC

与在 Amazon RDS 中一样,RDS Custom 数据库实例驻留在 Virtual Private Cloud(VPC)中。

RDS Custom 数据库实例组件

RDS Custom 数据库实例包含以下主要组件:

  • Amazon EC2 实例

  • 实例端点

  • Amazon EC2 实例上安装的操作系统

  • Amazon EBS 存储,其中包含任何其他文件系统

RDS Custom 自动化和监控

RDS Custom 具有在数据库实例之外运行的自动化软件。该软件与数据库实例上的代理以及整个 RDS Custom 环境中的其他组件通信。

RDS Custom 监控和恢复特征提供与 Amazon RDS 类似的功能。预设情况下,RDS Custom 处于完全自动化模式。自动化软件负有以下主要责任:

  • 收集指标并发送通知

  • 执行自动实例恢复

RDS Custom 自动化的一项重要责任是响应 Amazon EC2 实例的问题。由于各种原因,主机可能会受损或无法访问。RDS Custom 可以通过重新启动或替换 Amazon EC2 实例来解决这些问题。

Amazon RDS Custom 主机替换

如果 Amazon EC2 主机受损,RDS Custom 会尝试重新启动它。如果重新启动失败,RDS Custom 将使用 Amazon EC2 中包含的相同停止和开启特征。更换主机时,客户唯一可见的更改是新的公有 IP 地址。

停止并启动主机。

RDS Custom 会自动执行以下步骤,无需用户干预:

  1. 停止 Amazon EC2 主机。

    EC2 实例将正常关闭并停止运行。所有 Amazon EBS 卷保持连接至实例,而且其数据将保留下来。存储在实例存储卷(RDS Custom 上不支持)或主机 RAM 中的所有数据都将不复存在。

    有关更多信息,请参阅 Amazon EC2 用户指南中的停止和启动您的实例

  2. 启动 Amazon EC2 主机。

    EC2 实例将迁移到新的底层主机硬件。在某些情况下,RDS Custom 数据库实例将仍保留在原始主机上。

主机更换的影响

在 RDS Custom 中,您可以完全控制根设备卷和 Amazon EBS 存储卷。根卷可能包含您不想丢失的重要数据和配置。

RDS Custom for Oracle 会在操作后保留所有数据库和客户数据,包括根卷数据。无需用户干预。在 RDS Custom for SQL Server 上,数据库数据将会保留,但 C: 驱动器上的所有数据(包括操作系统和客户数据)都将丢失。

在完成更换之后,Amazon EC2 主机将拥有一个新的公有 IP 地址。主机会保留以下内容:

  • 实例 ID

  • 私有 IP 地址

  • 弹性 IP 地址

  • 实例元数据

  • 数据存储卷数据

  • 根卷数据(位于 RDS Custom for Oracle 上)

Amazon EC2 主机的最佳实践

Amazon EC2 主机更换特征涵盖了大多数 Amazon EC2 受损情况。我们建议您遵循以下最佳实践:

  • 在更改配置或操作系统之前,请备份数据。如果根卷或操作系统受到损坏,那么主机更换将无法修复这一问题。您唯一的选择是从数据库快照还原或采用时间点恢复。

  • 不要手动停止或终止物理 Amazon EC2 主机。这两种操作都会导致实例被置于 RDS Custom 支持外围之外。

  • (RDS Custom for SQL Server) 如果您将其他卷附加到 Amazon EC2 主机,请将其配置为在重新启动时重新装载。如果主机受损,RDS Custom 可能会自动停止和开启主机。

RDS Custom 支持外围

RDS Custom 提供了名为支持外围的额外监控功能。这项额外的监控功能可确保您的 RDS Custom 数据库实例使用受支持的 AWS 基础设施、操作系统和数据库。

支持外围检查您的数据库实例是否符合修复 RDS Custom for Oracle 中不支持的配置修复 RDS Custom for SQL Server 中不支持的配置中列出的要求。如果其中的任何要求未得到满足,则 RDS Custom 会认为数据库实例位于支持外围之外。

RDS Custom 不支持的配置

当您的数据库实例在支持外围之外时,RDS Custom 会将数据库实例状态更改为 unsupported-configuration 并发送事件通知。修复配置问题后,RDS Custom 会将数据库实例状态更改回 available

当数据库实例处于 unsupported-configuration 状态时,会出现如下情况:

  • 您的数据库可供访问。一种例外情况是当数据库实例处于 unsupported-configuration 时,因为数据库正在意外关闭。

  • 您无法修改数据库实例。

  • 您将无法生成数据库快照。

  • 不会创建自动备份。

  • 仅限 RDS Custom for SQL Server 数据库实例,如果底层 Amazon EC2 实例受损,RDS Custom 不会替换该实例。有关主机替换的更多信息,请参阅Amazon RDS Custom 主机替换

  • 您可以删除数据库实例,但大多数其他 RDS Custom API 操作都不可用。

  • 通过归档重做日志文件并将其上传到 Amazon S3,RDS Custom 可继续支持时间点故障恢复(PITR)。unsupported-configuration 状态下的 PITR 在以下方面有所不同:

    • PITR 可能需要花费较长时间,才能完全还原为新的 RDS Custom 数据库实例。发生这种情况,是因为当实例处于 unsupported-configuration 状态时,您不能自动或手动生成快照。

    • 在实例进入 unsupported-configuration 状态前,PITR 必须从最近生成的快照开始重播更多重做日志。

    • 在某些情况下,数据库实例处于 unsupported-configuration 状态,因为您所做的更改阻止了上传归档的重做日志文件。示例包括停止 EC2 实例、停止 RDS Custom 代理和分离 EBS 卷。在此类情况下,PITR 无法将数据库实例恢复到最近的可还原时间点。

对不支持的配置进行故障排除

RDS Custom 为 unsupported-configuration 状态提供故障排除指南。虽然有些指南同时适用于 RDS Custom for Oracle 和 RDS Custom for SQL Server,但其他指南取决于您的数据库引擎。有关特定于引擎的故障排除信息,请参阅以下主题:

Amazon S3

如果您使用 RDS Custom for Oracle,可以将安装媒体上传到用户创建的 Amazon S3 存储桶。RDS Custom for Oracle 使用此存储桶中的媒体创建自定义引擎版本 (CEV)。CEV 是数据库版本和 Amazon Machine Image (AMI) 的二进制卷快照。您可以从 CEV 中创建 RDS Custom 数据库实例。有关更多信息,请参阅 使用 Amazon RDS Custom for Oracle 的自定义引擎版本

RDS Custom for Oracle 和 RDS Custom for SQL Server 都会自动创建一个带有字符串 do-not-delete-rds-custom- 作为前缀的 Amazon S3 存储桶。RDS Custom 使用 do-not-delete-rds-custom- S3 存储桶存储以下类型的文件:

  • RDS Custom 创建的跟踪记录的 AWS CloudTrail 日志

  • 支持外围构件(请参阅RDS Custom 支持外围

  • 数据库恢复日志文件(仅 RDS Custom for Oracle)

  • 事务日志(仅 RDS Custom for SQL Server)

  • Custom 引擎版本构件(仅 RDS Custom for Oracle)

当您创建以下任一资源时,RDS Custom 会创建 do-not-delete-rds-custom- S3 存储桶:

  • 您的第一个适用于 RDS Custom for Oracle 的 CEV

  • 您的第一个适用于 RDS Custom for SQL Server 的数据库实例

RDS Custom 可为以下各项的每个组合创建一个存储桶:

  • AWS 账户 ID

  • 引擎类型(RDS Custom for Oracle 或 RDS Custom for SQL Server)

  • AWS 区域

例如,如果您在单个 AWS 区域中创建 RDS Custom for Oracle CEV,需要存在一个 do-not-delete-rds-custom- 存储桶。如果您创建多个 DS Custom for SQL Server 实例,并且它们驻留在不同的 AWS 区域中,需要每个 AWS 区域存在一个 do-not-delete-rds-custom- 存储桶。如果您在一个 AWS 区域中创建一个 RDS Custom for Oracle 实例和两个 RDS Custom for SQL Server 实例,需要存在两个 do-not-delete-rds-custom- 存储桶。

AWS CloudTrail

RDS Custom 会自动创建名称以 do-not-delete-rds-custom- 开头的 AWS CloudTrail 跟踪记录。RDS Custom 支持外围依赖于来自 CloudTrail 的事件来确定您的操作是否影响 RDS Custom 自动化。有关更多信息,请参阅 对不支持的配置进行故障排除

RDS Custom 会在您创建第一个数据库实例时创建跟踪记录。RDS Custom 会为以下各项的每个组合创建一条跟踪记录:

  • AWS 账户 ID

  • 引擎类型(RDS Custom for Oracle 或 RDS Custom for SQL Server)

  • AWS 区域

当您删除 RDS Custom 数据库实例时,不会自动删除此实例的 CloudTrail。在这种情况下,您的 AWS 账户继续为未删除的 CloudTrail 计费。RDS Custom 不负责删除此资源。要了解如何手动删除 CloudTrail,请参阅《AWS CloudTrail 用户指南》中的删除跟踪