识别 AWS 数据库服务
Source: Dev.to
识别 AWS 数据库服务
在 AWS 生态系统中,有大量的托管数据库服务可供选择。了解每种服务的特性、使用场景以及限制,对于构建可扩展且高效的应用至关重要。下面列出了常见的 AWS 数据库服务,并对它们的主要功能进行简要说明。
关系型数据库
| 服务 | 简介 | 适用场景 |
|---|---|---|
| Amazon RDS | 完全托管的关系型数据库引擎,支持 MySQL、PostgreSQL、MariaDB、Oracle 和 SQL Server。 | 传统业务系统、需要熟悉的 SQL 语法、事务性工作负载。 |
| Amazon Aurora | 与 MySQL 和 PostgreSQL 兼容的高性能、可自动扩展的关系型数据库。提供更高的吞吐量和更低的延迟。 | 高并发读写、需要高可用性和自动故障转移的关键业务。 |
| Amazon Redshift | 完全托管的列式数据仓库,专为大规模分析查询而设计。 | 数据分析、BI 报表、复杂的 OLAP 查询。 |
| Amazon RDS on VMware | 在本地 VMware 环境中运行的 RDS,提供与云端相同的管理功能。 | 需要在本地保留数据但仍想使用 RDS 管理功能的企业。 |
NoSQL 数据库
| 服务 | 简介 | 适用场景 |
|---|---|---|
| Amazon DynamoDB | 完全托管的键值和文档数据库,提供单毫秒延迟和自动水平扩展。 | 高吞吐量的实时应用、会话存储、物联网数据。 |
| Amazon DocumentDB (with MongoDB compatibility) | 与 MongoDB API 兼容的文档数据库,托管在 AWS 上。 | 需要 MongoDB 生态系统但想要托管服务的用户。 |
| Amazon Keyspaces (for Apache Cassandra) | 与 Apache Cassandra 兼容的托管宽列存储。 | 大规模分布式写入、需要跨区域复制的场景。 |
| Amazon Neptune | 完全托管的图数据库,支持 Gremlin 和 SPARQL。 | 推荐系统、社交网络、知识图谱。 |
| Amazon QLDB (Quantum Ledger Database) | 受监管的账本数据库,提供不可篡改的历史记录。 | 金融交易、供应链审计、合规日志。 |
| Amazon Timestream | 为时间序列数据优化的托管数据库。 | IoT 传感器数据、监控指标、实时分析。 |
缓存与内存存储
| 服务 | 简介 | 适用场景 |
|---|---|---|
| Amazon ElastiCache | 托管的 Redis 和 Memcached,提供低延迟的内存缓存。 | 会话缓存、排行榜、热点数据加速。 |
| Amazon MemoryDB for Redis | 完全托管的 Redis 兼容内存数据库,提供持久化和多可用区复制。 | 对数据持久性有要求的实时应用。 |
数据迁移与同步
| 服务 | 简介 | 适用场景 |
|---|---|---|
| AWS Database Migration Service (DMS) | 支持将本地或云端数据库迁移到 AWS,支持同构和异构迁移。 | 数据中心迁移、灾备复制、持续同步。 |
| AWS Schema Conversion Tool (SCT) | 将数据库模式从一种引擎转换为另一种引擎(如 Oracle → Aurora)。 | 异构迁移前的模式转换。 |
选择数据库时的关键考虑因素
-
数据模型
- 关系型(表格) → RDS、Aurora
- 文档/键值 → DynamoDB、DocumentDB
- 图形 → Neptune
- 宽列 → Keyspaces
- 时间序列 → Timestream
-
一致性需求
- 强一致性 → Aurora、RDS、Neptune
- 最终一致性 → DynamoDB(可配置)
-
吞吐量与延迟
- 单毫秒延迟 → DynamoDB、ElastiCache
- 大规模并发读写 → Aurora、Redshift(并行查询)
-
可扩展性
- 自动水平扩展 → DynamoDB、Aurora Serverless、Keyspaces
- 手动垂直扩展 → RDS(更改实例规格)
-
成本模型
- 按需计费 → 大多数托管服务
- 预留实例或容量套餐 → RDS、Aurora、Redshift
-
合规与安全
- 加密、审计、访问控制 → 所有服务均支持 IAM、KMS、VPC Endpoints。
- 账本不可篡改 → QLDB
小结
AWS 提供了从传统关系型数据库到现代 NoSQL、图数据库以及专用时间序列和账本数据库的完整套件。通过对业务需求(如数据模型、一致性、吞吐量、成本和合规)进行评估,您可以快速定位最适合的服务并在 AWS 上实现可靠、可扩展的存储解决方案。
考试指南:云从业者 – 领域 3:云技术与服务
任务陈述 3.4 – 识别 AWS 数据库选项并将其匹配到相应场景。
在 EC2 上使用数据库 vs 托管数据库的时机
在 Amazon EC2 上自托管数据库
您自行安装并管理数据库软件。需要负责的内容包括:
- 操作系统和数据库的补丁更新
- 备份与恢复
- 高可用性配置
- 扩展和维护任务
在以下情况下使用 EC2 托管的数据库:
- 需要对操作系统/数据库配置拥有完整控制权。
- 需要使用托管服务不支持的数据库引擎或配置。
- 特殊的合规性或工具要求必须自行管理。
AWS 托管数据库
AWS 处理许多运维任务,提供:
- 降低管理开销(补丁、备份、维护)
- 内置高可用性选项
- 更简便的扩展和监控
- 更快的价值实现时间
在以下情况下使用托管数据库:
- 想要将日常数据库管理工作交给 AWS。
- 需要内置的可靠性功能,而无需自行构建全部内容。
关系服务 (SQL)
Amazon RDS
一种托管的关系数据库服务,支持多种常见引擎(例如 MySQL、PostgreSQL、MariaDB、Oracle、SQL Server)。
在以下情况下使用 Amazon RDS:
- 您需要具备标准 SQL 功能的托管关系数据库。
- 您希望对常见引擎进行简化的运维操作。
Amazon Aurora
一种面向云环境优化的高性能关系数据库,旨在实现可伸缩性和高可用性。
在以下情况下使用 Amazon Aurora:
- 您需要更高的性能和云原生特性。
- 您需要为可伸缩性和容错性而构建的托管关系数据库。
NoSQL Service
Amazon DynamoDB
完全托管、无服务器的 NoSQL 数据库,提供大规模低延迟的读写。支持键值和文档数据模型。
在以下情况下使用 Amazon DynamoDB:
- 需要在大规模下实现低延迟访问。
- 数据模型为键值或文档风格。
- 想要使用无需管理服务器的 NoSQL 服务。
In‑Memory / Caching Service
Amazon ElastiCache
一种托管的内存数据存储(Redis 或 Memcached),常用于缓存、会话存储、排行榜以及加速读密集型工作负载。
在以下情况下使用 Amazon ElastiCache:
- 需要缓存以减轻数据库负载。
- 需要对频繁请求的数据进行极快访问。
- 对性能敏感的工作负载需要内存存储。
数据库迁移工具
AWS Database Migration Service (DMS)
在最小停机时间下促进数据库之间的数据迁移,支持持续复制。
在以下情况下使用 AWS DMS:
- 您需要将数据从一个数据库迁移到另一个数据库。
- 在迁移过程中降低停机时间是首要任务。
AWS Schema Conversion Tool (SCT)
在不同数据库引擎之间迁移时帮助转换数据库模式和代码,尤其是从商业/遗留系统迁移到 AWS 支持的目标。
在以下情况下使用 AWS SCT:
- 源数据库和目标数据库引擎不同,需要进行模式/代码转换。
- 您需要帮助转换表、索引、存储过程等。
摘要
| 类别 | AWS 服务 |
|---|---|
| 自行管理(EC2) | 最大控制,最大运营责任 |
| 托管数据库 | 降低运维开销(补丁、备份、高可用) |
| 关系型(SQL) | Amazon RDS,Amazon Aurora |
| NoSQL | Amazon DynamoDB |
| 内存 / 缓存 | Amazon ElastiCache |
| 迁移 | AWS DMS(数据迁移/复制),AWS SCT(模式和代码转换) |