简介

Amazon Web Services(AWS)提供数量不断增加的专用数据库选项(目前超过 15 个),为不同数据模型提供支持。这些数据模型包括关系数据库、键值数据库、文档数据库、内存数据库、图形数据库、时间序列数据库、宽列数据库和分类账数据库。

选择正确的数据库或多个数据库,需要根据贵组织的要求做出一系列决策。本决策指南将帮助您提出正确问题、提供明确的实施路径,并帮助您从现有数据库迁移。

Current Time 0:00
/
Duration Time 0:00
Loaded: 0%
Progress: 0%
Stream TypeLIVE
Remaining Time -0:00
 
1x

这段由 AWS 开发者倡导者 Ricardo Ferreira 制作的时长六分半钟的视频解释了选择 AWS 数据库背后的基础知识,并深入介绍了本决策指南其余部分中可供您使用的概念、标准和选择。

阅读时间

20 分钟

用途

帮助确定哪种 AWS 数据库最适用于贵组织。

级别

新手

上次更新日期

2023 年 9 月 11 日

了解

数据库是重要的后端系统,用于存储任何类型的应用程序的数据。无论是小型移动应用程序,还是具有互联网规模和实时要求的企业应用程序,它们都需要使用数据库。

本决策指南旨在帮助您了解可供选择的范围,建立适合您选择数据库的标准,为您提供有关每种数据库独特属性的详细信息,然后让您更深入地了解每种数据库提供的功能。

用户使用数据库构建哪些类型的应用程序?

  • 互联网规模的应用程序:分布在全球的互联网规模应用程序,在数百个 TB 的数据上每秒处理上百万请求。这些数据库会自动扩展和缩减,以满足高峰工作负载的需求。
  • 实时应用程序:缓存、会话存储、游戏排行榜、约车服务、广告定位和实时分析等实时应用程序需要微秒级延迟和高吞吐量来支持每秒数百万个请求。
  • 开源应用程序:客户更喜欢开源数据库,因为它们的成本低、由社区支持开发和支持及大型的工具和扩展生态系统。
  • 企业应用程序:企业应用程序用于管理核心业务流程,如销售、账单、客户服务、人力资源和业务线流程,如连锁酒店的预订系统或保险公司的风险管理系统。这些应用程序需要快速、可扩展、安全、可用且可靠的数据库。

注意:本指南重点介绍适用于联机事务处理(OLTP)应用程序的数据库。如果您主要需要快速高效地存储和分析海量数据(通常由联机分析处理(OLAP)系统应用程序满足要求),AWS 提供了 Amazon Redshift,它是一项基于云的完全托管式数据仓库服务,专门用于处理大规模分析工作负载。 

AWS OLTP 数据库分为两个高级类别:关系数据库和非关系数据库。

  • AWS 关系数据库系列包括 Amazon RDS 和 Amazon Aurora 的七种热门引擎(兼容 MySQL 的 Amazon Aurora、兼容 PostgreSQL 的 Amazon Aurora、MySQL、MariaDB、PostgreSQL、Oracle 和 SQL Server),以及一个使用 AWS Outposts 上的 Amazon RDS 进行本地部署的选项。
  • 非关系数据库选项专为那些对键值、文档、缓存、内存、图形、时间序列、宽列和分类账数据库具有特定需求的用户而设计。

我们将在本指南的“选择”部分中详细探讨所有这些内容。

数据库迁移

在决定您要使用哪种数据库服务来处理数据之前,您可能需要花点时间考虑如何迁移现有数据库。

最佳数据库迁移策略可帮助您充分利用 AWS Cloud。这涉及到迁移您的应用程序,以使用专门构建的、以云为中心的数据库。它也不会将您绑定到您在本地使用的相同数据库。考虑对应用程序进行现代化改造,并选择最适用于您的应用程序工作流要求的数据库。

例如,如果您选择先转移应用程序,然后再对其进行转换,则可能会决定先 直接迁移您的数据库。当您完全处于 AWS Cloud 中时,即可开始对应用程序进行现代化改造。此策略可以帮助您快速退出当前的本地环境,然后专注于现代化。
 
上图显示了如何使用 AWS Database Migration Service 将数据移至 Amazon Aurora。

以下资源可以帮助您制定迁移策略:

除了在规划的前端制定迁移策略外,您还希望有办法从数据中获得见解。您可以使用 Amazon Redshift。它是一项快速、完全托管式 PB 级数据仓库服务,您可以使用该服务利用现有商业智能工具高效分析所有数据。它针对范围从数百 GB 到 PB 或以上的数据集进行了优化。

考虑

您正考虑在 AWS 上托管数据库。这可能是为了支持新建项目/试点项目,以此作为云迁移之旅的第一步,或者您可能希望在尽可能减少中断的情况下迁移现有工作负载。或者,您可能想将工作负载移植到托管的 AWS 服务,甚至将其重构为完全云原生。

无论您的目标是什么,考虑正确的问题都将有助于您更轻松地做出数据库决策。以下是需要考虑的关键标准摘要。

  • 在选择数据库时,首要考虑因素是您的业务目标。推动贵组织变革的战略方向是什么? 正如 AWS 的 7 个 R 中建议的那样,考虑您是否希望重新架构或重构现有工作负载、移至新平台以摆脱商用许可证承诺、在不做任何更改的情况下将现有数据库和数据的主机更换到云以利用云功能,或者立即采取行动转向托管式数据库策略。

  • 您可以选择更换主机策略,以更快部署到云端,同时减少数据迁移难题。在一个或多个 EC2 实例上安装数据库引擎软件、迁移您的数据并管理该数据库实例,就像在本地一样。或者,您可以选择更换平台策略,将本地关系数据库迁移到完全托管的 Amazon RDS 实例。

    最后,您可以借此机会利用专门构建的 NoSQL 数据库,例如与 MongoDB 兼容的 Amazon DynamoDB 和 Amazon DocumentDB,将工作负载重构为云原生。而且,如果您想转向无服务器部署以消除基础设施管理和容量规划的负担,AWS 为其许多数据库提供了无服务器产品,例如 Amazon Aurora Serverless 和 Amazon Neptune 无服务器(图形数据库)。

  • 您是否需要针对特定目的构建数据库? 正如您之前所了解的,一刀切型整体式数据库时代已经一去不返。现在,选择针对特定任务或应用场景进行优化的专用数据库更为常见。

    AWS 可以提供广泛而深入的专用数据库产品组合,支持不同数据模型。借助这些数据库,您可以构建数据驱动、高度可扩展的分布式应用程序。选择正确的专用数据库(针对您需要执行的任务进行优化)将加快开发和部署速度。

  • 任何数据库选择的核心都包括您需要存储、检索、分析和处理的数据的特征。这包括您的数据模型(是关系、结构化还是半结构化、使用高度互联的数据集,还是时间序列模型?)、数据访问(您需要如何访问数据?)、您在多大程度上需要实时数据,以及是否存在需要考虑的特定数据记录大小。

  • 您的主要运营注意事项完全在于您的数据将存放在何处以及如何对其进行管理。您需要做出的两个关键选择包括:

    • 数据库是自托管式还是完全托管式:此处的核心问题是您的团队将在哪里为企业提供最大价值? 如果数据库是自托管式的,则您将负责数据库能够提供的真正差异化价值(通过您在架构设计、查询构造和查询优化方面的工作),并负责数据库的日常维护、监控和修补。选择完全托管式 AWS 数据库可以简化您的工作,并使您的团队能够专注于它有可能带来独特价值的领域。

    • 您需要无服务器数据库还是预置数据库:Amazon Aurora 为如何考虑这项选择提供了一个模型。 Amazon Aurora Serverless v2 适用于要求苛刻、高度可变的工作负载。例如,您的数据库使用量可能在短时间内很大,然后是长时间的轻度活动或根本没有活动。一些示例包括定期举办促销活动的零售、游戏或体育网站,以及在需要时生成报告的数据库。Aurora 预置集群适用于稳定的工作负载。借助预置集群,您可以选择具有预定义内存量、CPU 功率和 I/O 带宽的 Aurora 实例类。
  • 数据库可靠性对于任何企业而言都至关重要。实现和维护数据库的可靠性及弹性,意味着要注意很多关键因素。这些因素包括备份和恢复、复制、失效转移和时间点故障恢复(PITR)的能力。
     
    此外,对全球分布式应用程序/数据集的支持以及恢复时间目标(RTO)/恢复点目标(RPO)要求可能对您而言很重要。

  • 考虑您的工作负载吞吐量是否可能超过单个计算节点的容量。然后考虑您对数据库支持事务高并发性(10,000 或以上)的潜在需求,以及数据库是否需要部署在多个地理区域。
     
    如果您的工作负载需要极高的读取性能,并且响应时间以微秒而不是个位数毫秒为衡量单位,则可能需要考虑在使用数据库的同时使用内存中缓存解决方案,或者使用支持内存中数据访问的数据库。
  • 确保安全性是 AWS 和您的共同责任。AWS 责任共担模式将此描述为云的安全性和云中的安全性。具体的安全性注意事项包括数据所有级别的数据保护、身份验证、合规性、数据安全、敏感数据的存储,以及对审计要求的支持。

选择

现在您已经了解评估数据库选项所依据的标准,并且已准备好选择适用于贵组织需求的 AWS 数据库。

此表突出显示了不同数据库针对哪些情况和数据类型进行了优化。可以使用它来帮助确定最适用于贵组织应用场景的数据库。

数据库系列
您何时会使用服务?
服务针对什么因素进行了优化?
相关的数据库引擎或服务
在迁移本地关系工作负载或者工作负载具有临时查询模式时使用。
针对存储在表、行和列中的结构化数据进行了优化。该型数据库支持通过联接进行复杂的临时查询。
用于会话存储或购物车等工作负载。键值数据库可以扩展到大量数据和极大量的状态变化,同时通过分布式处理和存储为数百万并发用户提供服务。
针对快速访问极大量结构化、半结构化或非结构化数据进行了优化,具有很高的读取和写入吞吐量。
在您需要缓存层来提高读取性能时使用。
针对需要亚毫秒级数据访问的应用程序进行了优化。
在您希望跨文档字段存储具有丰富查询功能的 JSON 文档时使用。
已进行优化,可将半结构化数据存储为 JSON 文档。
在您需要迁移本地 Cassandra 工作负载,或者需要为要求个位数毫秒级延迟的应用程序在高速下处理数据时使用。
针对需要大量读取/写入和高吞吐量以及低延迟和线性可扩展性的工作负载进行了优化。
适用于欺诈检测、推荐引擎和航空网络等应用场景。
经过优化,专门用于存储和导航关系。
在您拥有大量时间序列数据,且这些数据可能具有多种来源,如物联网(IoT)数据、应用程序指标和资产追踪时使用。
针对存储和查询随时间变化的数据进行了优化。
在贵组织必须与其他实体(企业、客户)通信,并且需要一种相互验证和相互信任的方法时使用。
针对维护完整且可验证的数据库更改历史记录进行了优化。

使用

现在,您已经了解数据的形态、数据如何适应您的环境、支持您的应用场景,以及各项数据库服务针对哪些因素进行了优化。您应该能够选择哪项 AWS 数据库服务针对贵组织的需求进行了优化。

为了探索如何使用每项可用 AWS 数据库服务,以及了解有关各项服务的更多信息,我们提供了探索每项服务工作原理的途径。以下部分提供了深入学习文档、操作教程和资源的链接,以帮助您入门。

  • Amazon Aurora
  • Amazon Aurora

    Amazon Aurora 入门

    我们概述了 Aurora 入门的基础知识。本指南包括教程,并且涵盖更高级的 Aurora 概念和程序,如不同类型的端点,以及扩展和缩减 Aurora 集群的方法。

    探索指南 »

    Amazon Aurora

    创建高可用性数据库

    了解如何配置 Amazon Aurora 集群来创建高可用性数据库。这种数据库由跨多个可用区复制的计算节点组成,可提高读取可扩展性并改善失效转移保护。

    开始使用教程 »

    Amazon Aurora

    使用 Amazon Aurora 全球数据库

    我们将帮助您开始使用 Aurora 全球数据库。本指南概述了搭载 Aurora MySQL 和 Aurora PostgreSQL 的 Aurora 全球数据库支持的引擎和 AWS 区域可用性。

    探索指南 »

    Amazon Aurora

    从 Amazon RDS for MySQL 迁移到 Amazon Aurora MySQL
     
    我们将向您展示如何在最短的停机时间内将任何应用程序的数据库从 Amazon RDS for MySQL 迁移到 Amazon Aurora MySQL。本教程不在免费套餐范围内,费用不到 1 美元。

    开始使用教程 »

    AWS Database Migration Service

    创建无服务器消息处理应用程序


    我们将向您展示如何使用 Amazon Aurora Serverless(PostgreSQL 兼容版)、Data API for Aurora Serverless、AWS Lambda 和 Amazon SNS 创建无服务器消息处理应用程序。

    开始使用教程 »

  • Amazon DocumentDB
  • Amazon DynamoDB

    Amazon DocumentDB 入门

    我们仅需七个步骤即可帮助您开始使用 Amazon DocumentDB。本指南将使用 AWS Cloud9 直接从 AWS 管理控制台借助 MongoDB Shell 来连接和查询您的集群。

    探索指南 »

    Amazon DynamoDB

    使用 Amazon DocumentDB 设置文档数据库
     

    本教程可帮助您开始使用 MongoDB Shell 从 AWS Cloud9 环境连接到 Amazon DocumentDB 集群,并运行一些查询。

    开始使用教程 »

    Amazon DynamoDB

    使用 Amazon DocumentDB 的最佳实践
     

    了解使用 Amazon DocumentDB(与 MongoDB 兼容)的最佳实践,以及使用它时的基本操作指导原则。

    探索指南 »

    Amazon DynamoDB

    从 MongoDB 迁移到 Amazon DocumentDB
     

    了解如何将现有的自主管理型 MongoDB 数据库迁移到 Amazon DocumentDB(与 MongoDB 兼容)上的完全托管式数据库。

    开始使用教程 »

    Amazon DynamoDB

    评测 MongoDB 的兼容性
     

    使用 Amazon DocumentDB 兼容性工具,通过使用应用程序的源代码或 MongoDB 服务器配置文件日志,帮助您评测 MongoDB 应用程序的兼容性。

    使用工具 »

  • Amazon DynamoDB
  • AWS Database Migration Service

    Amazon DynamoDB 入门


    我们将帮助您入门并了解有关 Amazon DynamoDB 的更多信息。本指南包括操作教程和基本概念。

    探索指南 »

    AWS Database Migration Service

    DynamoDB 和 AWS SDK 入门


    我们将帮助您开始使用 Amazon DynamoDB 和 AWS SDK。本指南包括操作教程,将向您展示如何在 DynamoDB 中运行代码示例。
    探索指南 »

    AWS Database Migration Service

    使用 Amazon DynamoDB 创建和查询 NoSQL 表

    了解如何使用 Amazon DynamoDB 控制台创建简单的表、添加数据、扫描和查询数据、删除数据以及删除表。

    开始使用教程 »

    AWS Database Migration Service

    创建 Amazon DynamoDB 表

    我们将向您展示如何创建 DynamoDB 表,并使用该表来存储和检索数据。本教程将使用一个线上书店应用程序作为指导示例。

    开始使用教程 »

  • Amazon ElastiCache
  • AWS Database Migration Service

    Amazon ElastiCache 文档
     

    探索全套 Amazon ElastiCache 文档,包括 ElastiCache for Redis 和 ElastiCache for Memcached 的用户指南,以及具体的 AWS CLI 和 API 参考资料。

    探索指南 »

    AWS Database Migration Service

    Amazon ElastiCache for Redis 入门
     

    了解如何使用 Amazon ElastiCache 控制台创建、删除、连接到 Redis(已禁用集群模式)集群,并授予其访问权限。


    探索指南 »

    AWS Database Migration Service

    为在线应用程序构建快速会话存储
     

    了解如何将 Amazon ElastiCache for Redis 用作分布式缓存来进行会话管理。您还将学习配置 ElastiCache 节点的最佳实践,以及如何处理应用程序中的会话。

    开始使用教程 »

    AWS Database Migration Service

    设置 Redis 集群的可扩展性和高可用性

    了解如何使用启用了 TLS 加密的 ElastiCache for Redis 版本 7.0 创建和配置 Redis 集群。在启用集群模式后,您的 Redis 集群将获得增强的可扩展性和高可用性。

    开始使用教程 »

  • Amazon Keyspaces
  • AWS Database Migration Service

    Amazon Keyspaces(Apache Cassandra 兼容)入门

    本指南适用于刚刚接触 Apache Cassandra 和 Amazon Keyspaces(Apache Cassandra 兼容)的人员。它将引导您安装成功使用 Amazon Keyspaces 所需的所有程序和驱动程序。

    探索指南 »

    AWS Database Migration Service

    使用 Amazon Keyspaces 运行 Apache Cassandra 工作负载

    了解如何使用 Property Graph 和 W3C 的 RDF 创建集群及构建图形模型。了解如何使用 Apache TinkerPop Gremlin、SPARQL 编写查询,排除性能问题,以及如何与 AWS Glue 和 Elasticsearch 集成。

    观看视频 »

    AWS Database Migration Service

    有关使用 Amazon Keyspaces 的新手课程

    了解 Amazon Keyspaces 的优点、典型应用场景和技术概念。您可以通过提供的示例代码或 AWS 管理控制台中的交互式工具试用该服务。


    参加课程(需要登录)»

  • Amazon MemoryDB
  • AWS Database Migration Service

    Amazon MemoryDB 入门


    我们将指导您完成使用 MemoryDB 管理控制台创建、删除、连接到 MemoryDB 集群,并授予其访问权限的步骤。

    使用指南 »

    AWS Database Migration Service

    开始使用 Amazon MemoryDB


    了解如何简化架构并将 MemoryDB 用作单一的主数据库,而不是在持久数据库前使用低延迟缓存。

    阅读博客 »

    AWS Database Migration Service

    将适用于 Redis 的 Amazon MemoryDB 与基于 Java 的 AWS Lambda 集成

    我们将讨论适用于 Redis 的 Amazon MemoryDB 数据存储的一些常见应用场景,该数据存储旨在提供耐久性,以及更快的读取和写入速度。

    阅读博客 »

  • Amazon Neptune
  • Amazon Aurora

    Amazon Neptune 入门


    我们将帮助您开始使用 Amazon Neptune,它是一项完全托管式图形数据库服务。本指南将向您展示如何创建 Neptune 数据库。

    探索指南 »

    Amazon Aurora

    使用 Amazon Neptune 构建欺诈检测服务

    我们将引导您完成创建 Neptune 数据库、设计数据模型以及在您的应用程序中使用该数据库的步骤。

    探索指南 »

    Amazon Aurora

    使用 Amazon Neptune 构建推荐引擎

    我们将向您展示如何使用 Amazon Neptune 为多人游戏应用程序构建好友推荐引擎。

    探索指南 »

  • Amazon QLDB
  • Amazon DynamoDB

    Amazon QLDB 入门

    在 Amazon Quantum Ledger Database(Amazon QLDB)中,日志是数据库的核心。本指南简要概述了 Amazon QLDB 服务组件及其交互方式。

    探索指南 »

    Amazon DynamoDB

    创建您的第一个 Amazon QLDB 分类账

    我们将指导您完成创建第一个 Amazon QLDB 示例分类账的步骤,并在其中填充表格和示例数据。

    开始使用教程 »

    Amazon DynamoDB

    将 Amazon QLDB 驱动程序与 AWS SDK 配合使用

    了解如何将 Amazon QLDB 驱动程序与 AWS SDK 配合使用,以创建 QLDB 分类账,并在其中填充示例数据。该驱动程序使您的应用程序能够使用事务数据 API 与 QLDB 进行交互。

    开始使用教程 »

  • Amazon RDS
  • AWS Database Migration Service

    Amazon RDS 入门

    我们将介绍如何使用 Amazon RDS 创建和连接到数据库实例。您将学会创建使用 MariaDB、MySQL、Microsoft SQL Server、Oracle 或 PostgreSQL 的数据库实例。

    探索指南 »

    AWS Database Migration Service

    开始创建 MySQL 数据库实例

    我们将向您展示如何使用 AWS 管理控制台创建 Amazon RDS MySQL 数据库实例,以及如何使用标准 MySQL 实用程序(如 MySQL Workbench)连接到数据库实例上的数据库。
    探索指南 »

    AWS Database Migration Service

    创建 Web 服务器和 Amazon RDS 数据库实例

    了解如何使用 PHP 安装 Apache Web 服务器并创建 MySQL 数据库。该 Web 服务器使用 Amazon Linux 在 Amazon EC2 实例上运行,而 MySQL 数据库是 MySQL 数据库实例。

    探索指南 »

    AWS Database Migration Service

    创建和连接到 MySQL 数据库

    了解如何创建一个环境,以运行您的 MySQL 数据库、连接到该数据库,以及删除该数据库实例。我们将使用 Amazon RDS 执行此操作,在本教程中完成的所有操作均符合免费套餐条件。

    开始使用教程 »

  • Amazon Timestream
  • AWS Database Migration Service

    Amazon Timestream 入门

    我们将帮助您开始使用 Amazon Timestream。本指南提供了有关设置功能齐全的示例应用程序的说明。

    探索指南 »

    AWS Database Migration Service

    使用 Amazon Timestream 的最佳实践

    我们将探索最佳实践,包括与数据建模、安全性、配置、数据摄取、查询、客户端应用程序和受支持的集成有关的最佳实践。

    探索指南 »

    AWS Database Migration Service

    使用 AWS SDK 访问 Amazon Timestream

    了解如何通过您选择的语言,使用 AWS SDK 访问 Amazon Timestream:Java、Go、Python、Node.js 或 .NET。

    探索指南 »

探索

架构图

探索参考架构图,以帮助您在 AWS 上开发、扩展和测试数据库。

探索架构图 »

 

白皮书

探索白皮书以帮助您入门、学习最佳实践,以及迁移您的数据库。

探索白皮书 »

 

AWS 解决方案

探索经过审查的解决方案和架构指南,了解数据库的常见应用场景。

探索解决方案 »

 

其他资源

此页内容对您是否有帮助?