课程
Amazon Web Services(AWS)提供了广泛的工具,用于在云中构建和管理应用程序。
对数据从业者而言,最实用的服务之一是 Amazon Relational Database Service(RDS),这是一种全托管方案,支持常见的数据库引擎,如 MySQL、PostgreSQL、MariaDB、Oracle 和 SQL Server。
无论您是刚起步、希望在不自管基础设施的情况下部署数据库,还是有经验的专业人士、想要深入优化性能与成本,RDS 都能让这一切更简单。
在本教程中,我将解释 RDS 的主要功能,并逐步展示如何开始使用。
什么是 AWS RDS?
AWS RDS 简化了在云中设置、运维和扩展关系型数据库的过程。与其手动管理基础设施、打补丁、备份和扩缩容,RDS 会自动化大部分工作,让您专注于应用与数据。
它支持多种数据库引擎,如 MySQL、PostgreSQL、Oracle、SQL Server 和 Amazon Aurora。您可以受益于以下功能:
- 自动备份与时间点恢复
- 通过多可用区(Multi-AZ)部署实现高可用
- 只读副本以支持读密集型负载
- 内置安全与监控工具
这些功能可让您自信地运行关键的生产工作负载,同时尽量减少人工干预。
设置 AWS RDS 实例
要开始使用 RDS,首先需要通过 AWS 控制台创建一个新实例。如果您还没有 AWS 账户,可以免费注册。
> 如需进一步了解更广泛的 AWS 生态,请查看 AWS 云技术与服务课程。
创建新的 RDS 实例
1. 在 AWS 搜索框中查找“RDS”,然后点击Aurora and RDS 服务。

2. 点击左侧菜单中的Databases 。

3. 点击右上角的Create database。

4. 选择Standard Create 以完全控制配置。

在Engine options 下,选择您偏好的数据库引擎。对大多数用例而言,PostgreSQL 是很好的选择。
5. 选择引擎后,配置其余选项以完成设置。
我们将依次讲解完成此步骤所需的其余设置。
引擎版本
引擎版本决定所选数据库引擎(如 PostgreSQL、MySQL)的具体版本。这会影响数据库的功能、性能和兼容性。

除非因特定原因(如应用兼容性)必须使用旧版本,否则请选择最新的稳定版本。AWS 通常会预选最新的主版本,比如PostgreSQL 17.2,对大多数用户而言这是安全的选择。
模板
模板会根据您的使用场景(生产、开发或免费层测试)为数据库实例提供预配置的设置。它们会影响默认配置,如性能、可用性和备份保留期。

- 如果您运行的是在线应用且需要高可用,请选择Production。
- 若用于内部开发或试验,请选择Dev/Test。
- 如果您符合条件且首次试用 RDS、希望避免费用,请选择Free Tier。
可用性与持久性
此项决定数据库如何处理故障并在可用区间分配流量。它会影响正常运行时间、冗余性和问题恢复速度。

- 对于高读取工作负载和最大韧性(两个可读副本),选择Multi-AZ DB cluster(3 个实例)。
- 对大多数生产环境,选择Multi-AZ DB instance(2 个实例),提供故障切换的备用实例,但不增加额外读取能力。
- 仅在开发/测试或非关键应用中选择Single-AZ,它不提供故障切换或冗余。
设置
此部分定义 DB 实例的标识以及凭证的处理方式。您将为实例命名、设置主用户名,并选择如何存储与加密密钥(密码)。

- 输入一个唯一的 DB 实例标识符(例如 app-name-db)。
- 设置一个主用户名(例如 postgres)。
- 选择Managed in AWS Secrets Manager 以安全地自动生成凭证。仅当您希望完全掌控密码时才选择自管。
- 如有需要,您也可以选择自定义 KMS 加密密钥,但默认选项对大多数用户已足够。
实例配置
此处定义分配给数据库的计算资源类型(CPU、内存、网络)。实例类型决定性能、可扩展性与成本。

- 对大多数用例,标准类型(m 系列)是不错的起点。
- 对于分析或大型内存内操作,选择内存优化(r 或 x 系列)。
- 若处于开发阶段或需要低成本配置,选择可突发(t 系列)。
- 示例:
db.m7g.large提供 2 个 vCPU 和 8 GiB 内存,适合中等负载。
存储配置
此部分控制数据库存储的类型、大小与性能。您可选择适用于通用场景或高性能工作负载的存储。

- 对低延迟、高吞吐的应用选择预置 IOPS(io2)。适用于 OLTP 或写入密集的系统。
- 根据预计数据量设置Allocated Storage(最少 100 GiB)。
- 配置预置 IOPS 以匹配性能需求(IOPS 与存储比应在 0.5 到 1,000 之间)。
连通性
此部分定义数据库如何与外界连接,包括网络设置、VPC、是否公网访问与安全组。

- 保持选择Don’t connect to an EC2 compute resource,除非您需要 EC2 访问。
- 大多数标准设置使用IPv4 即可。
- 谨慎选择您的VPC。创建后不可更改。
- 为确保安全与私有(推荐生产环境),选择Public access: No。
- 使用现有或新建的VPC 安全组管理访问。确保开放 5432(PostgreSQL)或 3306(MySQL)端口给需要的来源。
- 除非有自定义需求,可将证书颁发机构(Certificate Authority)保持默认。
数据库身份验证
此设置控制用户如何对数据库进行身份验证。您可以使用传统密码,或集成 AWS 的 IAM 或 Kerberos 以实现更高级的访问控制。

- 选择Password 身份验证以获得标准、简单的登录方式(新环境最常用)。
- 如果您希望通过 AWS IAM 角色与策略管理数据库访问,请选择IAM 身份验证。
- 仅当您需要与企业目录集成时使用Kerberos 身份验证。
监控
此部分借助 Database Insights、Enhanced Monitoring 和 DevOps Guru 等工具,为 RDS 实例启用性能与活动追踪。这些工具可帮助您发现性能瓶颈、分析负载并排查问题。
- 选择Database Insights – Advanced 以获得更深的可见性与更长的历史(15 个月)。如果对成本敏感,Standard 提供 7 天指标。
- 启用 Enhanced Monitoring 以 60 秒等精细粒度采集 OS 级别指标(如 CPU、内存)。
- 您可以启用DevOps Guru 获取智能告警,但这是可选项且单独计费。对生产环境很有价值,但对开发/测试并非必需。
配置数据库引擎设置
当您完成所有与基础设施相关的设置后,会进入名为Additional configuration(或随引擎/版本略有不同)的部分。在这里配置 RDS 数据库引擎的行为与能力。
通常您会配置以下内容:
1. 初始数据库名
这是在实例创建时自动创建的第一个数据库的名称。
- 您之后随时可以创建更多数据库。
- 如果留空,RDS 不会创建默认数据库。实例就绪后,您需要手动创建。
2. 数据库端口
每种数据库引擎都有标准的 TCP 端口:
- PostgreSQL:5342
- MySQL / MariaDB:3306
- Oracle:1521
- SQL Server:1433
除非有特定网络需求(例如应用需使用不同端口),否则请使用默认值。
3. 参数组
参数组类似数据库引擎的配置模板。它们定义影响行为与性能的底层设置。
例如,在 PostgreSQL 中,您可能会配置:
work_mem:内部排序操作使用的内存大小max_connections:数据库可接受的并发客户端连接数log_min_duration_statement:记录超过特定执行时间的查询
每种引擎都有可调参数集,AWS 提供默认组。您可使用默认组快速上手,或克隆并自定义以满足特定工作负载的调优需求。
4. 选项组
选项组允许为某些数据库引擎添加默认不可用的高级功能。
例如:
- Oracle:透明数据加密(TDE)、Oracle XML DB
- SQL Server:SQL Server Agent、全文检索
- MySQL/PostgreSQL:通常不需要选项组,除非要启用如审计插件等功能
若使用 PostgreSQL 或 MySQL 处理标准工作负载,一般无需关心选项组。但若使用 Oracle 或 SQL Server,请查阅文档以确保启用必要功能。
连接到 AWS RDS
当数据库实例启动并运行后,您可以通过多种方式连接。
1. 通过 AWS 控制台连接
AWS 为 MySQL 和 PostgreSQL 提供内置查询编辑器。进入您的实例,选择Query Editor,输入数据库凭证,即可直接在浏览器中运行 SQL 命令。
这非常适合进行快速检查或小规模查询,无需本地 SQL 客户端。

2. 从本地机器连接
要从本地客户端(如pgAdmin 或 MySQL Workbench)连接。
- 从 AWS 控制台复制端点
- 确保实例可公网上访问或可通过 VPC 触达
- 提供正确的:
- 主机(端点)
- 端口(5432 或 3306)
- 用户名和密码

请确保您本机的 IP 已加入数据库安全组的允许列表。
3. 安全与访问控制
对 RDS 实例的访问由安全组(Security Groups)控管。您需要:
- 在数据库端口(5432 或 3306)上允许入站访问
- 在 EC2 控制台中修改安全组
- 将访问限制到特定的 IP 或生产环境中的 VPC。
您还可以通过 Identity 与访问管理(IAM)角色与策略进一步增强访问控制。
管理与扩展 AWS RDS
当数据库正常运行后,您需要考虑如何在整个生命周期中进行维护、扩展和备份。AWS RDS 提供了内置功能,使这些任务更容易,无论您是在支持不断增长的应用,还是为意外故障做准备。
1. 扩展数据库实例
随着应用增长,您可能需要扩展数据库以满足需求。AWS RDS 支持两种扩展方式:纵向和横向。
纵向扩展是升级实例类型,以获得更多 CPU、内存和网络能力。这在单节点仍可承载的情况下应对负载增长非常有用。
对于读密集型应用,横向扩展更合适。您可以添加只读副本分散读取流量。这些副本在故障切换或迁移时也可提升为独立实例。
2. 配置多可用区以实现高可用
为提高容错能力并减少停机,您可以启用 Multi-AZ 部署。此配置会在不同可用区创建一个备用副本,并通过同步复制与主实例保持一致。
如果主实例发生故障,RDS 会自动切换到备用实例,无需您采取任何操作。由于数据库端点保持不变,您的应用无需重新连接或重新配置。
对于需要高可用的生产系统,强烈建议启用 Multi-AZ。
3. 自动化备份与快照
RDS 便于设置自动与手动备份。自动备份默认启用,可在指定保留期内(1 至 35 天)将数据库恢复到任意时间点。
除自动备份外,您也可以执行手动快照。在进行重大更改(如架构更新或引擎升级)前尤为有用。快照可无限期保留,并在需要时用于启动新实例。
在关键部署前安排快照是个好习惯,可作为安全保障。
AWS RDS 的高级功能
除基础功能外,AWS RDS 还提供一系列高级功能,旨在提升性能、安全与运维效率。这些工具有助于监控数据库健康状况、管理维护流程并落实安全最佳实践,对于运行生产级系统至关重要。
1. 使用 Amazon CloudWatch 进行性能监控
RDS 原生集成Amazon CloudWatch,可跟踪关键性能指标,如 CPU 使用率、磁盘 I/O、存储空间与数据库连接数。这些指标实时可用,且可用于设置告警或仪表板。
CloudWatch 也在 AWS S3 与 EFS 的工作流中被大量使用,详见 Datacamp 的AWS 存储教程。
若需更深入的洞察,您可以启用Performance Insights,它可可视化展示一段时间内的查询性能。此工具有助于识别缓慢或资源密集的查询、发现数据库负载趋势并排查瓶颈。结合查询调优与索引策略,在压力之下优化数据库性能非常有效。
2. RDS 维护与打补丁
AWS 负责 RDS 实例的软件补丁与维护。您可以定义维护窗口,在此期间应用更新。若发布关键补丁,AWS 可立即安装,或您也可以选择暂缓。
您可在 RDS 控制台查看所有计划与历史维护事件。保持数据库最新,意味着无需手动管理更新,也能获得最新的性能改进、错误修复与安全补丁。
3. 加密与安全最佳实践
RDS 支持静态与传输中加密。静态加密由 AWS Key Management Service(KMS)处理,并可在实例创建时启用。对于传输中的数据,RDS 支持客户端与数据库之间的 SSL/TLS 连接。
为进一步加强安全,考虑启用 IAM 身份验证以获取短期数据库凭证,替代硬编码用户名与密码。同样建议为所有 AWS 用户启用多重身份验证(MFA),以最小权限原则配置 IAM 策略,并使用 AWS CloudTrail 记录所有访问。这些最佳实践有助于确保数据受保护且可审计。
成本管理与优化
成本管理是使用AWS 服务的关键组成部分,RDS 也不例外。尽管它是全托管服务,但根据配置不同,RDS 的费用可能会快速增加。尽早理解成本结构并采取优化策略,有助于随着使用量增长仍能控制在预算内。
1. 了解 AWS RDS 定价
RDS 成本基于以下因素:
- 实例类型与使用小时数
- 存储大小与类型(
gp3或io1) - 备份保留期与快照存储
- 数据传输(尤其跨区域或跨可用区)
使用 AWS Pricing Calculator 进行成本预估与建模。
如果您在准备认证考试,理解定价是AWS Cloud Practitioner(CLF-C02)学习路径中的关键部分。
2. 成本优化最佳实践
有多种方式可以降低或控制 RDS 成本。若您运行的是长期的生产数据库,考虑购买预留实例(Reserved Instances),以一或三年承诺换取显著低于按需的折扣。
为避免过度预置,启用存储自动扩展,使分配空间仅在需要时增长。对于很少访问但必须保留的数据,可将旧备份或导出转移至 S3 或 Glacier,这些是成本更低的存储选项。
您还可以借助AWS Trusted Advisor 监控资源使用情况,它能标记未充分利用的实例并建议规格调整。结合 AWS Cost Explorer 与预算告警,跟踪您的使用模式,并在接近支出上限时获得通知。
排查 AWS RDS 问题
即便是像 RDS 这样的全托管服务,也可能出现从连通性问题到性能下降等各类状况。了解排查方向与应对方法,有助于快速解决问题、将对应用的影响降至最低。
1. 识别并解决连接问题
连接问题往往由网络设置配置不当引起。最常见的原因包括安全组规则缺失或错误,例如端口未开放或 IP 范围受限。另一常见问题是在不同环境间切换时使用了错误的端点或端口号。
您还应检查 DNS 解析问题,特别是当应用运行在不同的 VPC 或区域时。使用 ping 或 telnet 等工具可验证基础连通性。若仍未解决,RDS 控制台提供的引擎日志往往能提供线索;留意身份验证失败或超时等信息以定位根因。
2. 排查性能问题
当性能开始下降时,采取结构化的方法很重要。首先通过数据库的参数组设置启用查询日志,帮助识别执行时间超预期的查询。
随后利用Performance Insights 可视化查询负载、等待事件与用户活动。这些洞察常常揭示索引问题、低效查询结构或高并发。小改动(如添加索引或重写复杂连接)往往能带来明显收益。
若调优无效,考虑升级实例类型或添加只读副本以水平扩展。务必先在预发布环境测试性能变更,再应用到生产。
3. 处理故障切换与恢复
在Multi-AZ 部署中,RDS 会自动处理故障切换。如果主实例不可用,AWS 会将备用提升为主实例并更新 DNS 记录,通常在几分钟内完成。此过程对应用无感,您无需手动干预。
对于 Single-AZ 实例,故障切换并非自动完成。发生故障时,您需要从最近的快照手动恢复数据库。为缩短恢复时间,建议设置 CloudWatch 告警与 SNS 通知,以便在问题出现时第一时间获知,迅速响应、将停机时间降至最低。
结论
Amazon RDS 让您无需配置基础设施或处理手动维护,即可轻松在云中部署、管理与扩展关系型数据库。凭借多引擎支持、自动备份、高可用与性能监控工具,RDS 适用于从兴趣项目到关键业务应用的各类场景。
本教程提供了入门所需的实践步骤与基础知识。
如果您准备进一步探索,AWS Cloud Practitioner(CLF-C02)学习路径是迈向认证与云专业能力的理想下一步。
FAQs
我可以将现有的本地数据库迁移到 AWS RDS 吗?
可以。AWS 提供 AWS Database Migration Service(DMS)等工具,帮助您将本地或其他云上的数据库以最小停机时间迁移到 RDS。您可以迁移架构和实时数据。
Amazon RDS 与 Aurora 有何区别?
Amazon Aurora 是在 RDS 体系下提供的、针对云优化的 MySQL 与 PostgreSQL 版本。它为更高的性能与可用性而设计,通常可比标准 RDS MySQL 提供 2–5 倍的吞吐量。
如何按计划自动停止或启动 RDS 实例?
您可以使用 AWS Lambda 和 EventBridge(原 CloudWatch Events)自动化实例操作。这对于在非工作时间关闭开发/测试数据库以节省成本非常有用。
如果达到 RDS 存储上限会怎样?
如果启用了存储自动扩展,RDS 将自动增加已分配存储。若未启用,实例可能会出现故障或性能下降。务必监控存储使用并配置告警。
RDS 能像 Aurora Serverless 那样以无服务器方式使用吗?
传统 RDS 实例并非无服务器,但 Aurora Serverless 提供了该能力。它会根据需求自动伸缩计算能力,适合不可预测或不频繁使用的工作负载。

