亚马逊AWS官方博客

新增功能 – AWS DMS Serverless:自动预置和扩展迁移和数据复制的容量



如今,大量数据不断产生,各个组织正在向云迁移,以利用完全托管的数据库服务的安全性、可靠性和性能。为了促进数据库和分析迁移,您可以使用 AWS Database Migration Service(AWS DMS)。AWS DMS 于 2016 年首次推出,提供了一个简单的迁移过程,可自动执行数据库迁移项目,从而节省时间、资源和金钱。

尽管您只需在控制台中单击几下即可开始 AWS DMS 迁移,但在迁移之前,您仍然需要进行研究和规划以确定所需的容量。提前知道如何正确扩展容量可能很困难,尤其是在同时迁移许多工作负载或持续复制数据时。最重要的是,您还需要持续监控使用情况并手动扩展容量以确保最佳性能。

推出 AWS DMS Serverless
今天,我很高兴向大家介绍 AWS DMS Serverless,这是 AWS DMS 中一个新的无服务器选项,可以自动设置、扩展和管理迁移资源,使您的数据库迁移更简单、更具成本效益。

以下是 AWS DMS Serverless 工作原理的快速预览:

AWS DMS Serverless 消除了在确定所需计算资源和处理确保高性能、不间断迁移所需的运营负担方面的猜测工作。该服务对迁移执行自动容量预置、扩展和容量优化,使您能够在最少的监督下快速开始迁移。

发布时,AWS DMS Serverless 支持 Microsoft SQL Server、PostgreSQL、MySQL 和 Oracle 作为数据来源。至于数据目标,AWS DMS Serverless 支持各种数据库和分析服务,包括 Amazon AuroraAmazon Relational Database Service(Amazon RDS)Amazon Simple Storage Service(Amazon S3)Amazon RedshiftAmazon DynamoDB 等。AWS DMS Serverless 会继续增加对新数据来源和目标的支持。访问支持的引擎版本以保持更新。

由于 AWS DMS Serverless 支持各种来源和目标,因此许多场景成为可能。您可以使用 AWS DMS Serverless 迁移数据库,通过将正在进行的数据复制同步到可能来自多个不同数据来源的数据湖(例如 Amazon S3)或数据仓库(例如 Amazon Redshift),帮助构建现代数据策略。

AWS DMS Serverless 的工作原理
我将向大家展示如何开始使用 AWS DMS Serverless。在这篇文章中,我将我的数据从在 PostgreSQL 上运行的源数据库迁移到在 Amazon RDS 上运行的目标 MySQL 数据库。以下屏幕截图显示了我的源数据库中的虚拟数据:

至于目标,我已经建立了一个在 Amazon RDS 中运行的 MySQL 数据库。以下屏幕截图显示了我的目标数据库:

AWS DMS Serverless 入门与当前的 AWS DMS 类似。AWS DMS Serverless 要求我完成设置任务,例如创建虚拟私有云(VPC)来定义源和目标端点。如果这是您第一次使用 AWS DMS,您可以通过访问 AWS Database Migration Service 的先决条件了解更多信息。

要连接到数据存储,AWS DMS 需要源和目标数据存储的端点。端点提供所有必要的信息,包括我的数据存储的连接、数据存储类型和位置。下图显示了我为目标数据库创建的端点:

完成端点设置后,我可以通过选择 Serverless replications(无服务器复制)页面上的 Create replication(创建复制)按钮来开始创建复制。复制是 AWS DMS Serverless 中引入的一个新概念,用于抽象我们在标准 AWS DMS 中通常拥有的实例和任务。此外,每次复制的容量资源都是独立管理的。

Create replication(创建复制)页面上,我需要定义一些配置。首先定义 Name(名称),然后指定 Source database endpoint(源数据库端点)和 Target database endpoint(目标数据库端点)。如果您找不到端点,请确保选择的是 AWS DMS Serverless 支持的数据库引擎

之后,我需要指定 Replication type(复制类型)。AWS DMS Serverless 中提供三种类型的复制:

  • Full load(完全加载) – 如果我需要迁移源数据库中的所有现有数据。
  • Change data capture (CDC) [更改数据捕获(CDC)] – 如果我必须将数据更改从源数据库复制到目标数据库。
  • Full load and change data capture (CDC) [完全加载和更改数据捕获(CDC)] – 如果我需要迁移现有数据并将数据更改从源数据库复制到目标数据库。

在本例中,我选择了 Full load and change data capture (CDC) [完全加载和更改数据捕获(CDC)],因为我需要迁移现有数据并持续更新目标数据库以反应源数据库上的持续更改。

Settings(设置)部分中,我还可以使用 Amazon CloudWatch 启用日志记录,这样我就可以更轻松地监控一段时间内的复制进度。

与标准 AWS DMS 一样,在 AWS DMS Serverless 中,我还可以在 Table mappings(表映射)中配置 Selection rules(选择规则),以定义我需要从源数据存储的表列中复制的筛选条件。

如果我需要重命名架构或表或者为架构或表添加前缀或后缀,我也可以使用 Transformation rules(转换规则)。

Capacity(容量)部分,我可以通过定义最小和最大 DCU (DMS capacity units) [DCU(DMS 容量单位)] 来设置执行复制所需的容量范围。最小 DCU 设置是可选的,因为 AWS DMS Serverless 根据对复制工作负载的评测确定最小 DCU。在复制过程中,AWS DMS 使用此范围根据 CPU 利用率、连接和可用内存扩展和缩减。

设置最大容量允许您通过确保 AWS DMS Serverless 消耗的资源不会超过您的预算来管理成本。定义最大 DCU 时,请确保选择合理的容量,以便 AWS DMS Serverless 可以处理大量突发的数据交易量。如果流量减少,AWS DMS Serverless 会再次缩减容量,您只需为所需的容量付费。如果要更改最小和最大 DCU 设置,则必须先停止复制过程,进行更改,然后再次运行复制。

配置完复制后,我选择 Create replication(创建复制)。

创建复制后,我可以查看复制的更多详细信息,然后通过选择 Start(开始)开始该过程。

在我的复制运行大约 40 分钟后,我可以在 Monitoring(监控)选项卡中监控复制进度。AWS DMS Serverless 还有一项名为 Capacity utilization(容量利用率)的 CloudWatch 指标,该指标表示根据定义的最小和最大 DCU 范围运行复制的容量使用情况。以下屏幕截图显示了 CloudWatch 指标图表中的容量扩展。

复制过程完成后,我看到容量开始减少。这表明,除了 AWS DMS Serverless 成功扩展到所需容量外,还可以在我定义的范围内缩减。

最后,我需要做的就是验证我的数据是否已成功复制到目标数据存储中。我需要连接到目标,运行选择查询,然后检查是否已成功从源复制了所有数据。

现已推出
AWS DMS Serverless 现已在所有提供标准 AWS DMS 的商业区域推出,您可以立即开始使用。有关优点、应用场景、入门方法和定价详细信息的更多信息,请参阅 AWS DMS Serverless

祝您迁移顺利!
Donnie