迈出第一步
简介
Amazon Web Services(AWS)提供数量不断增加的专用数据库选项(目前超过 15 个),为不同数据模型提供支持。这些数据模型包括关系数据库、键值数据库、文档数据库、内存数据库、图形数据库、时间序列数据库、宽列数据库和分类账数据库。
选择正确的数据库或多个数据库,需要根据贵组织的要求做出一系列决策。本决策指南将帮助您提出正确问题、提供明确的实施路径,并帮助您从现有数据库迁移。
这段由 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 Database Migration Service 入门
- AWS Database Migration Service 高级概述
- 使用 AWS Schema Conversion Tool
- 针对您的工作负载选择正确的数据库和数据库迁移计划
除了在规划的前端制定迁移策略外,您还希望有办法从数据中获得见解。您可以使用 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 数据库可以简化您的工作,并使您的团队能够专注于它有可能带来独特价值的领域。
- 您需要无服务器数据库还是预置数据库:Amazon Aurora 为如何考虑这项选择提供了一个模型。 Amazon Aurora Serverless v2 适用于要求苛刻、高度可变的工作负载。例如,您的数据库使用量可能在短时间内很大,然后是长时间的轻度活动或根本没有活动。一些示例包括定期举办促销活动的零售、游戏或体育网站,以及在需要时生成报告的数据库。Aurora 预置集群适用于稳定的工作负载。借助预置集群,您可以选择具有预定义内存量、CPU 功率和 I/O 带宽的 Aurora 实例类。
-
数据库可靠性对于任何企业而言都至关重要。实现和维护数据库的可靠性及弹性,意味着要注意很多关键因素。这些因素包括备份和恢复、复制、失效转移和时间点故障恢复(PITR)的能力。
此外,对全球分布式应用程序/数据集的支持以及恢复时间目标(RTO)/恢复点目标(RPO)要求可能对您而言很重要。
-
考虑您的工作负载吞吐量是否可能超过单个计算节点的容量。然后考虑您对数据库支持事务高并发性(10,000 或以上)的潜在需求,以及数据库是否需要部署在多个地理区域。
-
确保安全性是 AWS 和您的共同责任。AWS 责任共担模式将此描述为云的安全性和云中的安全性。具体的安全性注意事项包括数据所有级别的数据保护、身份验证、合规性、数据安全、敏感数据的存储,以及对审计要求的支持。
选择
现在您已经了解评估数据库选项所依据的标准,并且已准备好选择适用于贵组织需求的 AWS 数据库。
此表突出显示了不同数据库针对哪些情况和数据类型进行了优化。可以使用它来帮助确定最适用于贵组织应用场景的数据库。
关系
AmazonRDS 提供七种关系数据库引擎以供选择,包括 Amazon Aurora MySQL 兼容版、Amazon Aurora PostgreSQL 兼容版、MySQL、MariaDB、PostgreSQL、Oracle 和 Microsoft SQL Server。
借助 Amazon RDS on AWS Outposts,您可以在本地环境中部署完全托管式数据库实例。
Amazon RDS 是一个托管服务的集合,旨在简化云中数据库的设置、操作和扩展。
Amazon RDS for SQL Server 可让用户在云中轻松设置、操作和扩展 SQL Server 部署。
Amazon RDS for Oracle 是一种完全托管式商用数据库,让用户能够在云中轻松设置、操作和扩展 Oracle 部署。
借助 Amazon RDS for PostgreSQL,您可以访问非常熟悉的 PostgreSQL 数据库引擎的功能。
Amazon RDS 让用户能够在云中更轻松地设置、操作和扩展 MariaDB 部署。
Amazon RDS 让用户能够在云中更轻松地设置、操作和扩展 MySQL 部署。
运行和管理在 MySQL 中创建但拥有 Aurora 引擎中额外功能的数据库。
运行和管理在 PostgreSQL 中创建但拥有 Aurora 引擎中额外功能的数据库。
Amazon Aurora 提供内置的安全性、连续的备份、无服务器计算、最高 15 个只读副本、自动多区域复制以及与其他 AWS 服务的集成。
Amazon Redshift 是一项完全托管的 PB 级数据仓库服务,针对速度、易用性和成本效益进行了优化。它旨在允许您使用现有的商业智能工具分析所有数据。
一种高性能、灵活、可扩展且无服务器的 NoSQL 数据库,旨在为键值和文档工作负载提供支持。
Amazon DocumentDB(与 MongoDB 兼容)
如果您需要完全托管式数据库服务来简化云中 MongoDB 兼容式数据库的设置、操作和扩展,请使用 Amazon DocumentDB(与 MongoDB 兼容)。
如果您需要可扩展、高度可用且兼容 Apache Cassandra 的托管式数据库服务,以便您使用该服务时无需预置、修补或管理服务器,也无需安装、维护或操作软件,请使用 Amazon Keyspaces(Apache Cassandra 兼容)。
如果您需要一种快速、可靠且完全托管的图形数据库服务,可帮助您轻松构建和运行使用高度互连数据集的应用程序,请选择 Neptune。Neptune 的核心是专门构建的高性能图形数据库引擎。
如果您需要快速、可扩展、完全托管、专门构建的时间序列数据库用于每天存储和分析数万亿个时间序列数据点,请使用 Amazon Timestream。它可通过将近期数据保留在内存中,并根据用户定义的策略将历史数据移至成本优化的存储层,来管理时间序列数据的生命周期。
Amazon Quantum Ledger Database(QLDB)
如果您需要一种完全托管式分类账数据库,且该数据库可提供受信的中央机构拥有的透明、不可变、能以加密方式验证的事务日志,请选择 Amazon QLDB。
使用
现在,您已经了解数据的形态、数据如何适应您的环境、支持您的应用场景,以及各项数据库服务针对哪些因素进行了优化。您应该能够选择哪项 AWS 数据库服务针对贵组织的需求进行了优化。
为了探索如何使用每项可用 AWS 数据库服务,以及了解有关各项服务的更多信息,我们提供了探索每项服务工作原理的途径。以下部分提供了深入学习文档、操作教程和资源的链接,以帮助您入门。
-
Amazon Aurora
-
Amazon DocumentDB
-
Amazon DynamoDB
-
Amazon ElastiCache
-
Amazon Keyspaces
-
Amazon MemoryDB
-
Amazon Neptune
-
Amazon QLDB
-
Amazon RDS
-
Amazon Timestream
-
Amazon Aurora
-
使用 Amazon Aurora 全球数据库
我们将帮助您开始使用 Aurora 全球数据库。本指南概述了搭载 Aurora MySQL 和 Aurora PostgreSQL 的 Aurora 全球数据库支持的引擎和 AWS 区域可用性。
从 Amazon RDS for MySQL 迁移到 Amazon Aurora MySQL
我们将向您展示如何在最短的停机时间内将任何应用程序的数据库从 Amazon RDS for MySQL 迁移到 Amazon Aurora MySQL。本教程不在免费套餐范围内,费用不到 1 美元。
创建无服务器消息处理应用程序
我们将向您展示如何使用 Amazon Aurora Serverless(PostgreSQL 兼容版)、Data API for Aurora Serverless、AWS Lambda 和 Amazon SNS 创建无服务器消息处理应用程序。
-
Amazon DocumentDB
-
Amazon DocumentDB 入门
我们仅需七个步骤即可帮助您开始使用 Amazon DocumentDB。本指南将使用 AWS Cloud9 直接从 AWS 管理控制台借助 MongoDB Shell 来连接和查询您的集群。
探索指南 »
使用 Amazon DocumentDB 设置文档数据库
本教程可帮助您开始使用 MongoDB Shell 从 AWS Cloud9 环境连接到 Amazon DocumentDB 集群,并运行一些查询。
使用 Amazon DocumentDB 的最佳实践
了解使用 Amazon DocumentDB(与 MongoDB 兼容)的最佳实践,以及使用它时的基本操作指导原则。
探索指南 »
-
Amazon DynamoDB
-
-
Amazon ElastiCache
-
Amazon ElastiCache 文档
探索全套 Amazon ElastiCache 文档,包括 ElastiCache for Redis 和 ElastiCache for Memcached 的用户指南,以及具体的 AWS CLI 和 API 参考资料。
Amazon ElastiCache for Redis 入门
了解如何使用 Amazon ElastiCache 控制台创建、删除、连接到 Redis(已禁用集群模式)集群,并授予其访问权限。
为在线应用程序构建快速会话存储
了解如何将 Amazon ElastiCache for Redis 用作分布式缓存来进行会话管理。您还将学习配置 ElastiCache 节点的最佳实践,以及如何处理应用程序中的会话。
设置 Redis 集群的可扩展性和高可用性
了解如何使用启用了 TLS 加密的 ElastiCache for Redis 版本 7.0 创建和配置 Redis 集群。在启用集群模式后,您的 Redis 集群将获得增强的可扩展性和高可用性。
-
Amazon Keyspaces
-
Amazon Keyspaces(Apache Cassandra 兼容)入门
本指南适用于刚刚接触 Apache Cassandra 和 Amazon Keyspaces(Apache Cassandra 兼容)的人员。它将引导您安装成功使用 Amazon Keyspaces 所需的所有程序和驱动程序。
使用 Amazon Keyspaces 运行 Apache Cassandra 工作负载
了解如何使用 Property Graph 和 W3C 的 RDF 创建集群及构建图形模型。了解如何使用 Apache TinkerPop Gremlin、SPARQL 编写查询,排除性能问题,以及如何与 AWS Glue 和 Elasticsearch 集成。
有关使用 Amazon Keyspaces 的新手课程
了解 Amazon Keyspaces 的优点、典型应用场景和技术概念。您可以通过提供的示例代码或 AWS 管理控制台中的交互式工具试用该服务。
-
Amazon MemoryDB
-
Amazon Neptune
-
Amazon QLDB
-
Amazon QLDB 入门
在 Amazon Quantum Ledger Database(Amazon QLDB)中,日志是数据库的核心。本指南简要概述了 Amazon QLDB 服务组件及其交互方式。
创建您的第一个 Amazon QLDB 分类账
我们将指导您完成创建第一个 Amazon QLDB 示例分类账的步骤,并在其中填充表格和示例数据。
将 Amazon QLDB 驱动程序与 AWS SDK 配合使用
了解如何将 Amazon QLDB 驱动程序与 AWS SDK 配合使用,以创建 QLDB 分类账,并在其中填充示例数据。该驱动程序使您的应用程序能够使用事务数据 API 与 QLDB 进行交互。
-
Amazon RDS
-
Amazon RDS 入门
我们将介绍如何使用 Amazon RDS 创建和连接到数据库实例。您将学会创建使用 MariaDB、MySQL、Microsoft SQL Server、Oracle 或 PostgreSQL 的数据库实例。
开始创建 MySQL 数据库实例
我们将向您展示如何使用 AWS 管理控制台创建 Amazon RDS MySQL 数据库实例,以及如何使用标准 MySQL 实用程序(如 MySQL Workbench)连接到数据库实例上的数据库。
探索指南 »
创建 Web 服务器和 Amazon RDS 数据库实例
了解如何使用 PHP 安装 Apache Web 服务器并创建 MySQL 数据库。该 Web 服务器使用 Amazon Linux 在 Amazon EC2 实例上运行,而 MySQL 数据库是 MySQL 数据库实例。
创建和连接到 MySQL 数据库
了解如何创建一个环境,以运行您的 MySQL 数据库、连接到该数据库,以及删除该数据库实例。我们将使用 Amazon RDS 执行此操作,在本教程中完成的所有操作均符合免费套餐条件。
-
Amazon Timestream