什么是 Amazon Relational Database Service (Amazon RDS)? - Amazon Relational Database Service

什么是 Amazon Relational Database Service (Amazon RDS)?

Amazon Relational Database Service (Amazon RDS) 是一项 Web 服务,让用户能够在 AWS Cloud 云中更轻松地设置、操作和扩展关系数据库。可为用户提供一个经济有效、容量可调的符合行业标准的关系数据库,并承担常见的数据库管理任务。

注意

本指南涵盖 Amazon Aurora 以外的 Amazon RDS 数据库引擎。有关使用 Amazon Aurora 的更多信息,请参阅 Amazon Aurora 用户指南

如果不熟悉 AWS 产品和服务,请使用以下资源了解更多信息:

Amazon RDS 的优势

Amazon RDS 是一项托管式数据库服务。它负责大多数管理任务。通过消除繁琐的手动过程,Amazon RDS 使您可以专注于应用程序和用户。

与非完全托管式数据库部署相比,Amazon RDS 具有以下主要优势:

  • 您可以使用您已熟悉的数据库引擎:IBM Db2、MariaDB、Microsoft SQL Server、MySQL、Oracle Database 和 PostgreSQL。

  • Amazon RDS 可以管理备份、软件修补、自动故障检测和恢复。

  • 您可以开启自动备份,也可以手动创建您自己的备份快照。您可以使用这些备份还原数据库。Amazon RDS 还原过程将可靠且高效地工作。

  • 可以通过主数据库实例和在发生问题时可向其执行失效转移操作的同步辅助数据库实例来实现高可用性。您还可以使用只读副本扩展读取。

  • 除了保证数据库包的安全外,还可以使用 AWS Identity and Access Management(IAM)定义用户和权限来控制访问权限。您还可以将数据库置于 Virtual Private Cloud (VPC) 中,这样有助于保护数据库。

与 Amazon EC2 和本地部署的职责比较

我们建议使用 Amazon RDS 作为大多数关系数据库部署的默认选择。以下替代方法的缺点是会让您花更多的时间来管理软件和硬件:

本地部署

购买本地服务器时,您会一并获得 CPU、内存、存储和 IOPS。您对服务器、操作系统和数据库软件承担全部责任。

Amazon EC2

Amazon Elastic Compute Cloud (Amazon EC2) 在 AWS Cloud 中提供可扩展的计算容量。与本地服务器不同,CPU、内存、存储和 IOPS 是分开的,因此您可以独立扩展它们。AWS 管理硬件层,这消除了管理本地数据库服务器的一些负担。

在 Amazon EC2 上运行数据库的缺点是更容易出现用户错误。例如,手动更新操作系统或数据库软件时,可能会意外导致应用程序停机。您可能会花几个小时来检查每一项更改,以识别和修复问题。

下表比较了本地数据库、Amazon EC2 和 Amazon RDS 的管理模型。

功能

本地管理

Amazon EC2 管理

Amazon RDS 管理

应用程序优化

客户

客户

客户

扩展

客户

客户

AWS

高可用性

客户

客户

AWS

数据库备份

客户

客户

AWS

数据库软件修补

客户

客户

AWS

数据库软件安装

客户

客户

AWS

操作系统 (OS) 修补

客户

客户

AWS

操作系统安装

客户

客户

AWS

服务器维护

客户

AWS

AWS

硬件生命周期

客户

AWS

AWS

电源、网络和冷却

客户

AWS

AWS

Amazon RDS 责任共担模式

Amazon RDS 负责托管数据库实例和数据库集群的软件组件和基础设施。您负责查询优化,这是调整 SQL 查询以提高性能的过程。查询性能高度依赖于数据库设计、数据大小、数据分布、应用程序工作负载和查询模式,这些可能会有很大差异。监控和优化是您自己的 RDS 数据库所拥有的高度个性化流程。您可以使用 Amazon RDS 性能详情和其他工具来识别有问题的查询。

Amazon RDS 数据库实例

数据库实例 是在 AWS Cloud 中运行的独立数据库环境。Amazon RDS 的基本构建基块是数据库实例。您的数据库实例可以包含一个或多个由用户创建的数据库。下图显示了包含两个可用区的虚拟私有云(VPC),每个可用区包含两个数据库实例。

显示一个跨两个可用区的 VPC。每个可用区托管两个数据库实例。

可以使用与处理独立数据库实例时所用的相同工具和应用程序来访问您的数据库实例。您可以使用 AWS Command Line Interface(AWS CLI)、Amazon RDS API 或 AWS Management Console创建和修改数据库实例。

Amazon RDS 应用程序架构:示例

下图显示了将 Amazon RDS 数据库实例用于数据库存储的动态网站的典型用例:

显示包含一个 VPC 的区域,其中包含两个可用区。每个可用区都包含一个应用程序服务器和一个数据库实例。弹性负载均衡器将用户请求转发到应用程序服务器。

上述架构的主要组件如下所述:

Elastic Load Balancing

AWS 通过弹性负载均衡来路由用户流量。负载均衡器跨多个计算资源 (如虚拟服务器) 分布工作负载。在此示例用例中,弹性负载均衡器将客户端请求转发到应用程序服务器。

应用程序服务器

应用程序服务器与 RDS 数据库实例进行交互。AWS 中的应用程序服务器通常托管在 EC2 实例上,这些实例提供可扩展的计算容量。应用程序服务器位于同一虚拟私有云(VPC)内具有不同可用区(AZ)的公有子网中。

RDS 数据库实例

EC2 应用程序服务器与 RDS 数据库实例进行交互。数据库实例位于同一虚拟私有云(VPC)内不同可用区(AZ)的私有子网中。由于子网是私有的,因此不允许来自互联网的请求。

主数据库实例会复制到另一个称为只读副本的数据库实例。这两个数据库实例都位于 VPC 内的私有子网中,这意味着互联网用户无法直接访问它们。

数据库引擎

数据库引擎是在数据库实例上运行的特定关系数据库软件。Amazon RDS 支持以下数据库引擎:

每个数据库引擎均有自己支持的功能,并且每个版本的数据库引擎可能包括特定的功能。对 Amazon RDS 功能的支持因 AWS 区域和每个数据库引擎的特定版本而异。要查看不同引擎版本和区域的功能支持,请参阅 Amazon RDS 中受 AWS 区域和数据库引擎支持的功能

此外,每个数据库引擎在数据库参数组中均有一组参数,用于控制其管理的数据库的行为。有关参数组的更多信息,请参阅 Amazon RDS 的参数组

数据库实例类

数据库实例类确定数据库实例的计算和内存容量。数据库实例类由数据库实例类类型和大小共同组成。Amazon RDS 支持以下实例类类型,其中星号(*)表示代别、可选属性和大小:

  • 通用型 – db.m*

  • 内存优化型 – db.z*、db.x*、db.r*

  • 计算优化型 – db.c*

  • 可突增性能 – db.t*

每种实例类提供不同的计算、内存和存储功能。例如,db.m7g 是由 AWS Graviton3 处理器提供支持的第 7 代通用型数据库实例类类型。创建数据库实例时,可以指定数据库实例类,例如 db.m7g.2xlarge,其中 2xlarge 是大小。有关不同实例类的硬件规格的更多信息,请参阅数据库实例类的硬件规格

您可以选择最能满足您需求的数据库实例类。如果您的需求随时间推移而变化,则可以更改数据库实例类。例如,可以将 db.m7g.2xlarge 实例纵向扩展到 db.m7g.4xlarge。有关更多信息,请参阅 数据库实例类

注意

有关数据库实例类的定价信息,请查看 Amazon RDS 产品页的定价部分。

数据库实例存储

Amazon EBS 提供块级别的持久存储卷,您可将这些卷附加到正在运行的实例。数据库实例存储有以下类型:

  • 通用型 (SSD)

    这种经济高效的存储类型非常适合在中等规模的数据库实例上运行的各种工作负载。通用型存储最适合开发和测试环境。

  • 预置 IOPS (PIOPS)

    此存储类型旨在满足 I/O 密集型工作负载(尤其是数据库工作负载)的需求,此类工作负载需要低 I/O 延迟和一致的 I/O 吞吐量。预调配 IOPS 存储最适合生产环境。

  • 磁介质

    Amazon RDS 支持磁性存储以实现向后兼容。建议您采用通用型 SSD 或预调配 IOPS SSD 来满足所有新存储需求。

存储类型在性能特点和价格上有所不同。您可以根据数据库的需求定制存储性能和成本。

每个数据库实例都具有最小和最大存储要求,具体取决于存储类型和其支持的数据库引擎。重要的是要有足够的存储空间,这样数据库才有增长的空间。此外,足够的存储空间可确保数据库引擎的功能有空间写入内容或日志条目。有关更多信息,请参阅 Amazon RDS 数据库实例存储

Amazon Virtual Private Cloud(Amazon VPC)中的数据库实例

您可以使用 Amazon Virtual Private Cloud (Amazon VPC) 服务,在虚拟私有云 (VPC) 上运行数据库实例。使用 VPC 时,您的虚拟联网环境完全由您控制。您可以选择自己的 IP 地址范围、创建子网以及配置路由和访问控制列表。

无论是否在 VPC 中运行,Amazon RDS 的基本功能都是相同的。Amazon RDS 可以管理备份、软件修补、自动故障检测和恢复。在 VPC 中运行数据库实例没有额外费用。有关将 Amazon VPC 与 RDS 结合使用的更多信息,请参阅Amazon VPC 和 Amazon RDS

Amazon RDS 使用网络时间协议(NTP)来同步数据库实例上的时间。

AWS 区域 和可用区

Amazon 云计算资源安置在世界不同地区 (例如:北美、欧洲或亚洲) 的高度可用的数据中心设施内。每个数据中心位置称为一个 AWS 区域。借助 Amazon RDS,可以在多个区域中创建数据库实例。

以下场景显示了一个区域中的 RDS 数据库实例,该实例异步复制到另一个区域中的备用数据库实例。如果一个区域变为不可用,则另一个区域中的实例仍然可用。

跨区域只读副本配置

可用区

每个 AWS 区域包含很多称为可用区或 AZ 的不同位置。每个可用区设计为可隔离其他可用区的故障。每个可用区都设计为向同一 AWS 区域中的其他可用区提供低成本、低延迟的网络连接。通过启动独立可用区内的数据库实例,可以保护应用程序不受单一位置故障的影响。有关更多信息,请参阅 区域、可用区和 Local Zones

多可用区部署

您可以在多个可用区运行数据库实例,此选项称为多可用区部署。当您选择此选项时,Amazon 会自动在不同的可用区中预置和维护一个或多个辅助备用数据库实例。主数据库实例可跨可用区复制到每个备用数据库实例。

多可用区部署提供以下优势:

  • 提供数据冗余和失效转移支持

  • 消除 I/O 冻结

  • 最大限度地减少系统备份期间的延迟峰值

  • 在辅助数据库实例上提供读取流量(仅限多可用区数据库集群部署)

下图描绘了一个多可用区数据库实例部署,其中 Amazon RDS 会自动在不同可用区中预置和维护一个同步备用副本。副本数据库不提供读取流量。

多可用区实例部署的高可用性场景

下图描绘了一个多可用区数据库集群部署,此部署在同一个 AWS 区域的三个独立可用区中有一个写入器数据库实例和两个读取器数据库实例。所有三个数据库实例都可以提供读取流量。

多可用区集群部署的高可用性场景

有关更多信息,请参阅 配置和管理 Amazon RDS 的多可用区部署

使用安全组控制访问权限

安全组 通过支持访问您指定的 IP 地址范围或 Amazon EC2 实例,控制对数据库实例的访问权限。您可以将安全组应用于一个或多个数据库实例。

VPC 中数据库实例的一种常见用途是与同一 VPC 中的应用程序服务器共享数据。以下示例使用 VPC 安全组 ec2-rds-x 来定义使用客户端应用程序的 IP 地址作为源的入站规则。应用程序服务器属于此安全组。名为 rds-ec2-x 的第二个安全组指定 ec2-rds-x 作为源并连接到 RDS 数据库实例。根据安全组规则,客户端应用程序不能直接访问数据库实例,但 EC2 实例可以访问数据库实例。

VPC 中的数据库实例和 EC2 实例

有关安全组的更多信息,请参阅 Amazon RDS 中的安全性

Amazon RDS 监控

监控是保持 Amazon RDS 和其它 AWS 解决方案的可靠性、可用性和性能的重要方面。AWS 提供各种监控工具来监控 Amazon RDS、在出现错误时进行报告并适时自动采取措施。

可以使用各种自动和手动工具跟踪数据库实例的性能和运行状况:

Amazon RDS 数据库实例状态和建议

通过使用 Amazon RDS 控制台、AWS CLI 或 RDS API,查看有关实例的当前状态的详细信息。还可以对有关数据库资源(例如数据库实例、只读副本和数据库参数组)的自动建议做出响应。有关更多信息,请参阅 来自 Amazon RDS 的建议

Amazon RDS 的 Amazon CloudWatch 指标

您可以使用 Amazon CloudWatch 服务监控数据库实例的性能和运行状况。在 Amazon RDS 控制台中显示 CloudWatch 的性能图表。Amazon RDS 每分钟自动向 CloudWatch 发送一次每个活动数据库的指标。对于 CloudWatch 中的 Amazon RDS 指标,您不会获得额外费用。

使用 Amazon CloudWatch 警报,可以在特定时间段内监控单个 Amazon RDS 指标。然后,您可以根据相对于您设置的阈值的指标值来执行一个或多个操作。有关更多信息,请参阅 使用 Amazon CloudWatch 监控 Amazon RDS 指标

Amazon RDS 性能详情和操作系统监控

性能详情可评测数据库上的负载,并确定执行操作的时间和位置。有关更多信息,请参阅 在 Amazon RDS 上使用性能详情监控数据库负载。Amazon RDS 增强监控实时查看操作系统的指标。有关更多信息,请参阅 使用增强监控来监控操作系统指标

集成 AWS 服务

Amazon RDS 与 Amazon EventBridge、Amazon CloudWatch Logs 和 Amazon DevOps Guru 相集成。有关更多信息,请参阅 监控 Amazon RDS 实例中的指标

Amazon RDS 的用户界面

可以通过多种方式与 Amazon RDS 进行交互。

AWS Management Console

AWS Management Console是一个基于 Web 的简单用户界面。您可以从控制台中管理数据库实例,而无需进行任何编程。要访问 Amazon RDS 控制台,请登录AWS Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

RDS 控制台的主页。左侧面板包含控制面板、数据库等的链接。中央面板列出了数据库实例等资源。

命令行界面

您可以使用 AWS Command Line Interface(AWS CLI)以交互方式访问 Amazon RDS API。要安装 AWS CLI,请参阅安装 AWS 命令行界面。要开始使用适用于 RDS 的 AWS CLI,请参阅适用于 Amazon RDS 的 AWS Command Line Interface 参考

Amazon RDS API

如果您是一名开发人员,则可以使用 API 以编程方式访问 Amazon RDS。有关更多信息,请参阅 Amazon RDS API 参考

对于应用程序开发,我们建议使用 AWS 软件开发工具包 (SDK) 之一。AWS 软件开发工具包可处理低级详细信息(如身份验证、重试逻辑和错误处理),让您可以将注意力放在应用程序逻辑上。AWS软件开发工具包适用于各种语言。有关更多信息,请参阅用于 Amazon Web Services 的工具

AWS还提供了库、示例代码、教程和其他资源来帮助您更轻松地入门。有关更多信息,请参阅示例代码和库

Amazon RDS 如何收费

在使用 Amazon RDS 时,可以选择使用按需数据库实例或预留数据库实例。有关更多信息,请参阅“Amazon RDS 的数据库实例计费”。

有关 Amazon RDS 定价信息,请参阅 Amazon RDS 产品页

接下来做什么?

上一节为您介绍了 RDS 提供的基本基础设施组件。您下一步该做什么?

开始使用

根据 开始使用 Amazon RDS 中的说明创建数据库实例。

特定于数据库引擎的主题

您可以在以下部分中查看特定数据库引擎的特定信息: