亚马逊AWS官方博客

为您的工作负载选择正确的数据库和数据库迁移计划

企业工作负载的托管方法已经发生结构性转变。各家公司正在迅速从本地数据中心迁移到基于云的服务。推动这种转变的因素就是在云端更快地创新的能力。您可以直接过渡到云,但这确实超出了常见的“直接迁移”方法。首先,您需要找到一家可提供数据存储和计算设施的云提供商。不过,借助拥有专用资源的提供商和支持创新的平台,您便能够 拓展 业务。各个公司正在使用更高级别的服务(例如, Amazon Web Services(AWS)提供的完全托管式数据库和无服务器计算)来充分利用其云采用之旅。在本博文中,我们将重点介绍企业应用程序的 数据库 层。我们将评估迁移到托管或专用数据库的理由。之后,我们将更详细地讨论您拥有的选择以及如何为您的工作负载实施正确的数据库迁移计划。

为什么要迁移到托管式数据库?

托管式数据库或专用数据库是由 AWS 提供的托管式服务,可让您专注于其他业务和技术优先事项。由于不同类型的数据库能够满足特定的需求,因此,应用程序中的数据库层绝不应是一种通用方法。根据您正在开发的应用程序的类型,您应研究适合您的业务和企业使用案例的托管选项。

数据库类型 使用案例 AWS 服务
关系 传统应用程序、企业资源规划(ERP,Enterprise Resource Planning)、客户关系管理(CRM,Customer Relationship Management)、电子商务
  • Amazon Aurora
  • Amazon RDS
  • Amazon Redshift
键值 高流量 Web 应用程序、电子商务系统、游戏应用程序
  • Amazon DynamoDB
内存 缓存、会话管理、游戏排行榜、地理空间应用程序
  • Amazon ElastiCache
  • Amazon MemoryDB for Redis
文档 内容管理、目录、用户配置文件
  • Amazon DocumentDB(兼容 MongoDB)
宽列 用于设备维护、实例集管理和路由优化的大规模工业应用程序
  • Amazon Keyspaces
图形 欺诈检测、社交网络、推荐引擎
  • Amazon Neptune
时间序列 物联网(IoT,Internet of Things)应用程序、DevOps、工业遥测
  • Amazon Timestream
分类账 记录系统、供应链、注册、银行事务
  • Amazon QLDB

表 1.由 AWS 托管的数据库

托管式数据库功能

可管理性。 作为一家公司,数据是您拥有的最重要且最有价值的资产。虽然数据仍是您的重要资产,但在数据库管理上花费时间并不是最佳的时间利用方式。托管式服务具有用于数据库管理的多个方面的内置可靠工具,可帮助您的数据库以最佳性能运行。

可用性和灾难恢复。 默认情况下,AWS 的大多数托管式数据库都是高度可用的。例如,Amazon Aurora 旨在提供 99.99% 的可用性,并跨三个可用区复制六个数据副本(图 1)。它会持续将您的数据备份到 Amazon S3。它可以透明地从物理存储故障中恢复;实例失效转移通常用时不超过 30 秒。

使用 Amazon Aurora 数据库集群跨三个可用区进行复制

图 1.使用 Amazon Aurora 数据库集群跨三个可用区进行复制

利用托管式数据库,您在创建高度可用的容错数据库方面拥有多种选择。或者,如果您选择在其他位置自行托管数据库,则必须制定自己的灾难恢复(DR,Disaster Recovery)策略。这需要细致的 DR 规划,并且在很大程度上依赖于持续监控解决方案。

弹性和敏捷性:云为扩展数据库提供了灵活性。您可以在几分钟内进行扩展,并根据需要增多和减少其他服务器和存储大小。它给容量规划带来了灵活性。您始终可以重新评估数据库层,以查看它是过度预置还是预置不足。

在 AWS 上自行管理的数据库

如果我不需要托管数据库,是否仍应使用 Amazon EC2 托管我的数据库?

在下面的一些场景中,您可能会发现将数据库托管在 Amazon EC2 实例上会很有用:

  • 您需要能够完全控制数据库,并获得对其底层操作系统、数据库安装和配置的访问权。
  • 您已准备好规划数据库的高可用性,并准备灾难恢复计划。
  • 您需要管理数据库,包括备份和恢复。您必须执行各种任务,例如修补操作系统和数据库、调整操作系统和数据库参数、管理安全性以及配置高可用性或复制。
  • 您需要使用托管式服务当前不支持的功能。
  • 您需要一个 AWS 托管式数据库服务不支持的特定数据库版本。
  • 您的数据库大小和性能需求超出托管式服务的限制。
  • 您希望避免使用可能与您的应用程序不兼容的自动软件补丁。
  • 您希望实现高于托管式服务的当前限制的 IOPS 和存储容量。

我是否能自定义底层操作系统和数据库环境?

Amazon RDS Custom 是一项托管式数据库服务,适用于需要自定义底层操作系统和数据库环境的应用程序。借助 Amazon RDS Custom,您可以访问托管式数据库引擎的底层 EC2 实例。您可以通过安全外壳(AWS Systems Manager 和 SSH)访问 EC2 实例,并进行自定义设置来满足您的应用程序需求。

选择要实施的迁移计划

云数据库迁移历程的第一步是确定要迁移到的数据库。对于关系数据库,请确定迁移策略。在大多数数据库迁移中,您可以选择更换主机、更换平台或重构。

对于关系数据库,请参阅有关选择迁移策略的 AWS Prescriptive Guidance

接下来,确定哪个数据库迁移计划最能满足您的需求。AWS 提供了许多选项来帮助您正确处理数据迁移,同时实现最短停机时间。以下是您可以考虑在云数据库采用历程中使用的数据库迁移计划:

1.AWS 提供的 AWS Database Migration Service(AWS DMS):AWS Database Migration Service(AWS DMS)是一种用于迁移数据库的自助服务选项。您可以使用 AWS DMS 在同类数据库类型之间进行迁移,例如从一个 MySQL 实例迁移到新的 MySQL 实例。您也可以在异构数据库类型之间使用 AWS DMS,例如从商业数据库(例如 Oracle)迁移到云原生关系数据库(例如 Aurora)。阅读有关迁移示例数据的教程:AWS Database Migration Service 分步演练

AWS DMS 提供最短停机时间,支持广泛使用的数据库,支持持续复制。它作为一项低成本服务提供,高度可靠。如果您正在寻找用于数据库迁移的端到端服务,可以考虑 AWS DMS。

2.使用 AWS Schema Conversion Tool(SCT)的 AWS Database Migration Service(DMS):如果您要在异构数据库之间进行迁移,请使用 AWS Schema Conversion Tool(SCT)。它将源数据库架构和数据库代码对象(如视图、存储过程和函数)转换为与目标数据库兼容的格式(图 2)。

使用 AWS Schema Conversion Tool 的支持的转换

图 2.使用 AWS Schema Conversion Tool 的支持的转换

对于异构迁移,可以考虑将 AWS DMS 与 AWS SCT 结合使用。

3.Database Freedom 计划:如果您是云计算新手,或者您的数据库迁移计划必须由行业专家评估和验证,请尝试 Database Freedom 计划。Database Freedom 是一项独特的计划,旨在帮助客户迁移到 AWS 数据库和分析服务。他们将提供技术建议、迁移支持和财务援助。

您可以使用 Database Freedom 计划的联系我们页面,与能够在云采用历程中为您提供帮助的专家取得联系。

4.AWS Professional Services 和合作伙伴:您可能拥有内部数据库专业知识,但需要跨不同应用层的端到端实施协助。从 AWS Professional Services 获得帮助,或者与经认证的 AWS 合作伙伴网络取得联系。AWS Database Migration Service 交付合作伙伴可帮助客户使用 AWS DMS 安全地将数据库迁移到 AWS,同时最大限度地减少应用程序的停机时间并遵循最佳实践。

结论

云的迁移历程是在不断发展的。要继续专注于创新,请在迁移历程中利用 AWS 托管式服务。

我希望本博文能帮助您考虑使用托管式数据库服务(如果可用),并有效地评估和选择适合您企业的数据库迁移计划。如有任何疑问,请随时与我们联系。我们非常乐意为您的云历程提供帮助。

祝您迁移顺利!

其他阅读资源

Nikhil Anand

Nikhil Anand

Nikhil 是 AWS 的解决方案架构师,在 AWS 的 DevOps 和计算产品/服务方面拥有广泛的背景。他是一名狂热的读者,热衷于探索不同的技术。工作之余,他喜欢参加体育运动,从不错过任何一个锻炼的机会。