0Pricing
Cloud & IT Cert Prep · 课时

RDS 引擎与实例类别

比较 MySQL、PostgreSQL、MariaDB、Oracle、SQL Server 和 Aurora,并为您的工作负载选择合适的实例类别。

RDS 引擎与实例类别 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

Amazon RDS 数据库引擎简介

Amazon RDS 支持六种数据库引擎:MySQL、PostgreSQL、MariaDB、Oracle、Microsoft SQL Server 和 Amazon Aurora。每种引擎都是您已经熟悉的开源或商业数据库的完全托管版本。AWS 负责补丁、备份和故障转移,因此您可以专注于应用程序逻辑。

选择合适的引擎取决于现有应用程序的需求、许可成本以及各引擎提供的功能。Aurora 是 AWS 面向云原生环境打造的选项,专为性能和可用性而设计。

RDS 上的 MySQL 和 PostgreSQL

MySQL 是全球最流行的开源关系数据库,非常适合 Web 应用程序和内容管理系统。PostgreSQL 提供高级 SQL 合规性、强大的 JSONB 支持以及功能丰富的扩展生态系统,因此广泛用于分析和地理空间工作负载。

RDS 上的这两种引擎都支持自动备份、Multi-AZ 部署和只读副本。PostgreSQL 只读副本可以跨区域部署,而 MySQL 通过 Aurora MySQL 最多支持 15 个跨区域副本。

# Creating an RDS MySQL instance via CLI
aws rds create-db-instance \
  --db-instance-identifier mydb \
  --db-instance-class db.t3.micro \
  --engine mysql \
  --master-username admin \
  --master-user-password MyPass123! \
  --allocated-storage 20

MariaDB 及其使用场景

MariaDB 是由社区开发的 MySQL 分支,在网络协议层面与 MySQL 客户端完全兼容。它提供额外的存储引擎,在某些工作负载下性能更好,并采用开放的开发模式,不包含专有功能。

在 RDS 上,如果您希望避免 Oracle 的 MySQL 许可费用,或更偏好社区维护的分支,MariaDB 可以直接替代 MySQL。它支持与 MySQL 相同的自动备份、Multi-AZ 和只读副本功能。

RDS 上的 Oracle 和 SQL Server

RDS 上的Oracle 数据库支持 License Included(LI)和 Bring Your Own License(BYOL)两种模式。LI 将 Oracle SE2 许可证费用计入小时费率;BYOL 则允许您使用现有的 Enterprise Edition 许可证来获得分区和 Advanced Security 等功能。

RDS 上的Microsoft SQL Server同样提供 LI 版本(Express、Web、Standard、Enterprise)和 BYOL。两种引擎都支持通过同步镜像实现 Multi-AZ,但不像开源引擎那样支持只读副本。

Amazon Aurora:云原生引擎

Amazon Aurora 是同时兼容 MySQL 和 PostgreSQL 的云原生关系数据库。Aurora 使用分布式存储层,在三个可用区之间以六路方式自动复制数据,因此在相同硬件上可提供高达 MySQL 吞吐量的 5 倍和 PostgreSQL 吞吐量的 3 倍。

Aurora 的存储空间会以 10 GB 为增量自动增长,最高可达 128 TiB,从而无需手动预置存储。计算与存储分离后,Aurora Serverless 还可以自动扩展或缩减容量。

RDS 实例类系列

RDS 实例类遵循与 EC2 相同的命名约定,但前缀是 db.,而不是单独使用系列字母。主要系列包括:

  • db.t — 可突增性能,适合开发/测试且经济实惠(例如 db.t3.micro、db.t4g.small)
  • db.m — 通用型,CPU 与内存均衡(例如 db.m6g.large)
  • db.r — 内存优化型,适合大型缓存和内存表(例如 db.r6g.xlarge)
  • db.x — 超大内存,适用于 Oracle 和 SQL Server 的 SAP 工作负载

开发时选择 db.t,典型生产环境选择 db.m,对于工作集较大的数据库选择 db.r。

选择合适的实例类

选择 RDS 实例类需要分析工作负载的CPU 利用率、内存消耗、IOPS 需求和网络带宽。AWS Compute Optimizer 和 RDS Performance Insights 工具可以帮助确定当前实例是否配置过度或不足。

一种常见做法是先使用 db.t3 进行原型设计,负载稳定后迁移到 db.m6g,当查询受益于更大的缓冲池时,再升级到 db.r6g。基于 Graviton2 的实例(db.m6g、db.r6g)通常比同等的 x86 实例提供高达 35% 的性价比提升。

# List available DB instance classes for MySQL 8.0
aws rds describe-orderable-db-instance-options \
  --engine mysql \
  --engine-version 8.0 \
  --query 'OrderableDBInstanceOptions[].DBInstanceClass' \
  --output text | tr '\t' '\n' | sort -u | head -20

RDS 的存储选项

RDS 提供三种存储类型,底层都对应 EBS 卷:

  • gp2 / gp3 — 通用型 SSD;gp3 允许您独立预置 IOPS 和吞吐量,而无需为增加存储空间付费
  • io1 / io2 — 预置 IOPS SSD,适用于对延迟敏感且要求稳定亚毫秒级响应的 OLTP 数据库
  • st1 — 吞吐量优化型 HDD,仅适用于特定引擎和测试工作负载

对于大多数生产 RDS 部署,推荐默认使用 gp3,因为它无需额外费用即可提供 3,000 IOPS,并且可以独立于存储容量进行扩展。

扩展 RDS:垂直扩展与水平扩展

RDS 支持两个扩展维度。垂直扩展(更改实例类)需要短暂的停机时间,除非启用了 Multi-AZ——启用 Multi-AZ 后,故障转移可让调整大小期间的停机时间接近于零。您可以将修改安排在下一个维护时段,也可以立即应用。

水平扩展仅支持读取:您可以添加只读副本,将 SELECT 查询分发到主实例之外。只读副本使用异步复制,因此会产生少量复制延迟,您的应用程序必须能够容忍这种延迟。

# Modify an RDS instance class (apply immediately)
aws rds modify-db-instance \
  --db-instance-identifier mydb \
  --db-instance-class db.m6g.large \
  --apply-immediately

Aurora 与社区引擎:主要区别

在 Aurora 与社区版 MySQL/PostgreSQL 之间进行选择时,请考虑以下权衡:

  • Aurora:更高的吞吐量、自动六路复制、快速故障转移(约 30 秒)、无需手动管理存储,但每小时成本更高
  • MySQL/PostgreSQL:成本更低、社区扩展更丰富、支持 BYOL,并且运维工具更为熟悉

在考试场景中,如果题目强调高可用性、自动存储增长,或以开源价格获得接近商业数据库的性能,应优先选择 Aurora。如果首要目标是降低成本或与本地部署环境实现功能对等,则应选择社区引擎。

RDS 上的引擎版本升级

RDS 将次要版本升级(例如 MySQL 8.0.32 → 8.0.36)与主要版本升级(例如 MySQL 5.7 → 8.0)分开处理。启用 --auto-minor-version-upgrade 后,可以将次要版本升级设置为在维护时段自动应用。主要版本升级需要手动执行,并且可能需要进行应用程序兼容性测试。

请始终先在预发布环境中测试主要版本升级。升级前可以创建数据库快照,以便在出现问题时回滚。Aurora 集群支持就地进行主要版本升级,且中断时间极短。

# Enable auto minor version upgrade
aws rds modify-db-instance \
  --db-instance-identifier mydb \
  --auto-minor-version-upgrade \
  --apply-immediately

快速检查

测试您对本课 AWS Solutions Architect(SAA-C03)相关概念的理解。

课程回顾

本课您学习了:RDS 支持六种引擎(MySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Aurora);实例类与工作负载特征相对应(db.t 适用于开发/测试,db.m 适用于通用场景,db.r 适用于内存密集型场景);以及与社区引擎相比,Aurora 提供更高的吞吐量和自动存储扩展。接下来我们将学习用于实现高可用性的 Multi-AZ 部署和自动备份。

常见问题解答

「RDS 引擎与实例类别」课时是免费的吗?

是的 — 「RDS 引擎与实例类别」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「RDS 引擎与实例类别」这节课中我会学到什么?

比较 MySQL、PostgreSQL、MariaDB、Oracle、SQL Server 和 Aurora,并为您的工作负载选择合适的实例类别。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「RDS 引擎与实例类别」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. RDS 引擎与实例类别
  2. 多可用区与自动备份
  3. 用于读取扩展的只读副本
  4. RDS 安全性:加密与参数组
← 返回 Cloud & IT Cert Prep