[AWS] 6. AWS 基础:RDS(关系型数据库服务)+ Amazon Aurora + ElastiCache

发布: (2026年1月15日 GMT+8 11:20)
8 min read
原文: Dev.to

I’m happy to translate the article for you, but I need the text you’d like translated. Could you please paste the content (or the portion you want translated) here? I’ll keep the source line, formatting, markdown, and any code blocks exactly as you request.

什么是 Amazon RDS?

  • RDS = 关系数据库服务 – 一项完全托管的数据库服务,使用 SQL 作为查询语言。
  • 让您能够在 AWS 云中创建、运行和扩展关系型数据库,而无需处理底层基础设施。

支持的引擎

引擎备注
PostgreSQL
MySQL
MariaDB
Oracle
Microsoft SQL Server
IBM DB2
Aurora (AWS‑proprietary)与 PostgreSQL 与 MySQL 驱动兼容

核心托管服务功能

  • 自动化供应与操作系统补丁
  • 持续备份时间点恢复 (PITR)
  • 监控仪表板 (CloudWatch)
  • 只读副本 – 提升读取性能
  • 多可用区部署 – 灾难恢复 (DR)
  • 维护窗口 用于升级
  • 垂直与水平扩展
  • 基于 EBS 的存储

注意: 您无法直接 SSH 进入标准 RDS 实例。

存储自动扩展

  • RDS 可以在可用空间低于阈值时 动态增加存储
  • 最大存储阈值 必须设置(上限)。
  • 当满足 所有 条件时,自动扩展触发:
    1. 可用存储低于定义的阈值。

网络费用: AZ 之间的数据传输会产生费用,但 同区域 副本流量是免费的。

Multi‑AZ (Synchronous) Replication

  • 提供一个 单一 DNS 名称,可自动故障转移到备用实例。
  • 提高可用性;无需更改应用程序。
  • 不用于扩展读取。
  • 可与只读副本结合用于灾难恢复(DR)。

Zero‑Downtime Modification

  1. 在控制台中点击 Modify
  2. RDS 会创建快照。
  3. 在不同的可用区恢复一个新数据库。
  4. 同步两个实例。

RDS Custom 与 标准 RDS

特性RDS (Standard)RDS Custom
操作系统和数据库管理完全由 AWS 托管由 AWS 托管 并且 完全管理员访问
自定义受限(参数组、选项组)完整的操作系统和数据库配置,支持 SSH/SSM 访问
使用场景典型的生产工作负载需要操作系统级补丁、自定义二进制文件或特殊数据库配置

提示: 在自定义之前请先停用自动化模式;先创建快照。

Amazon Aurora

  • 专有、云优化 引擎(兼容 PostgreSQL 与 MySQL)。
  • 声称在 RDS 上 MySQL 性能提升 ,PostgreSQL 性能提升
  • 存储 自动以 10 GB 为增量扩展,最高可达 256 TB
  • 最多 15 个只读副本,复制延迟低于 10 ms。
  • 瞬时故障转移(原生高可用)。

架构要点

  • 6 份 数据分布在 3 个可用区
    • 写入时保留 4 份副本
    • 读取时保留 3 份副本
  • 点对点复制 → 自我修复。
  • 数据在数百个卷上条带化存储。

功能

  • 自动故障转移

提示: 即使是已停止的 RDS 实例也会产生存储费用。如果您计划长时间停止实例,请 快照并恢复,而不是保持停止状态。

还原备份

RDS / Aurora 备份 → 新数据库实例

  1. 为您的 本地 数据库创建备份。
  2. 将备份存储在 Amazon S3(对象存储)上。
  3. 将备份文件恢复到运行 MySQL 的 新 RDS 实例 上。

Aurora 集群 → 新集群(从 S3)

  1. 使用 Percona XtraBackup(或其他工具)备份本地数据库。
  2. 将备份文件存储在 Amazon S3 上。
  3. 将文件恢复到运行 MySQL 的 新 Aurora 集群 上。

克隆现有 Aurora DB 集群

  • 比快照 & 恢复更快,因为它使用 写时复制 协议。
  • 新集群最初共享相同的数据卷(没有数据复制)。
  • 当新集群被更新时,会分配额外存储并复制数据,使两个集群独立。
  • 使用场景: 从生产环境创建 “预演” 数据库,而不影响生产工作负载。

加密

静态加密

  • 数据库主实例和副本使用 AWS KMS 加密(必须在创建时定义)。
  • 如果主实例 未加密,则只读副本 无法加密
  • 对已有未加密的数据库进行加密:
    1. 创建 DB 快照
    2. 恢复 快照并启用加密。

传输中加密

  • TLS 默认 已启用;客户端请使用 AWS TLS 根证书

身份验证与访问控制

  • IAM 身份验证: 使用 IAM 角色代替传统的用户名/密码。
  • 安全组: 控制对 RDS/Aurora 实例的网络访问。
  • SSH 访问:RDS Custom 外不可用。

审计与监控

  • 启用 审计日志 并将其转发到 CloudWatch Logs 以实现更长的保留期限。

RDS Proxy

  • 完全托管的 RDS/Aurora 数据库代理。
  • 优势:
    • 对数据库连接进行池化和共享,降低 CPU/RAM 负载和连接超时。
    • 无服务器、自动扩展、高可用(多可用区)。
    • 将故障转移时间缩短最多 66 %
  • 支持的数据库:
    • RDS(MySQL、PostgreSQL、MariaDB、MSSQL Server)
    • Aurora(MySQL、PostgreSQL)
  • 大多数应用无需更改代码。
  • 强制使用 IAM 身份验证,并在 AWS Secrets Manager 中安全存储凭证。
  • 永不公开访问——只能在 VPC 内部访问。

托管缓存:ElastiCache

服务用途关键特性
ElastiCache托管 Redis 或 Memcached- 内存中高性能缓存
- 降低主数据库的负载
- 帮助使应用程序无状态化
AWS responsibilities操作系统维护、打补丁、优化、设置、监控、故障恢复、备份
Application impact需要代码更改以集成缓存层
IAM supportRedis 的 IAM 身份验证(Memcached 不支持)

ElastiCache 的 IAM 策略

  • 用于 AWS API 级别的安全(例如,创建/修改集群)。

Redis

  • AUTH: 在创建 Redis 集群时设置密码/令牌,以提供额外的安全层(除了安全组之外)。
  • Encryption in transit: 支持 SSL/TLS

常见用例

  • 游戏排行榜: 使用 Sorted Sets 实现唯一、有序的元素以及实时排名。

Memcached

  • 支持基于 SASL 的身份验证(高级)。

缓存策略

策略描述
懒加载在读取时缓存数据;缓存的数据可能会变得陈旧。
写直通写入时同时更新缓存和底层数据库,防止数据陈旧。
会话存储使用 TTL(生存时间)特性存储临时会话数据。

引用: “计算机科学中只有两件难事:缓存失效和命名。”

重要端口

服务端口
FTP21
SSH / SFTP22
HTTP80
HTTPS443
PostgreSQL (RDS)5432
MySQL / MariaDB (RDS)3306
Oracle (RDS)1521
Microsoft SQL Server (RDS)1433
Aurora (PostgreSQL‑compatible)5432
Aurora (MySQL‑compatible)3306

你不需要记住每个数字;只需能够区分“重要”端口(例如,HTTPS 443)和“RDS 数据库”端口(例如,PostgreSQL 5432)。

Back to Blog

相关文章

阅读更多 »