为您的迁移选择正确的Amazon DMS 复制实例 - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为您的迁移选择正确的Amazon DMS 复制实例

Amazon DMS在 Amazon EC2 实例上创建复制实例。 Amazon DMS目前支持复制实例的 T2、T3、C4、C5、R4 和 R5 Amazon EC2 实例类:

  • T2 实例是具爆发能力的实例,此类实例具有基准水平的 CPU 性能,并能够爆发到基准之上。基准性能和突增能力由 CPU 积分控制。T2 实例以设定的速率持续获得 CPU 积分,具体取决于实例大小。它们在空闲时累积 CPU 积分,在处于活动状态时消耗 CPU 积分。

    T2 实例非常适合各种通用用途工作负载。其中包括微服务、低延迟交互式应用程序、中小型数据库、虚拟桌面、开发、构建和暂存环境、代码存储库以及产品原型。

  • T3 实例是下一代突发式通用实例类型。这种类型提供基准水平的 CPU 性能,并能够根据需要随时突增 CPU 使用率。T3 实例兼顾了计算、内存和网络资源,专为中等 CPU 使用中等、偶尔遇到峰值的应用程序而设计。当工作负载运行在基准阈值以下时,T3 实例会累积 CPU 积分。每获得一个 CPU 核心性能一分钟。

    T3 实例可以随时可按需可实例可随时可连增性能所需的unlimited时间。有关unlimited模式的更多信息,请参阅可实例使用无限模式

  • C4 实例针对计算密集型工作负载进行了优化,以较低的每计算比率提供极具成本效益的高性能。它们可显著提高每秒数据包数 (PPS) 性能、减小网络抖动和减少网络延迟。 Amazon DMS也可能占用 CPU 资源,尤其是在执行异构迁移和复制(例如从 Oracle 迁移到 PostgreSQL)时。针对这些情况,C4 实例是理想选择。

  • C5 实例是下一代实例类型,可为运行高级计算密集型工作负载提供经济高效的高性能,且每计算比率较低。这包括高性能 Web 服务器、高性能计算 (HPC)、批处理、广告服务、高度可扩展的多人游戏和视频编码等工作负载。其他工作负载 C5 实例适合包括科学建模、分布式分析以及机器和深度学习推理。C5 实例可选择英特尔和 AMD 的处理器。

  • R4 实例针对内存密集型工作负载进行内存优化。正在使用的高吞吐量事务系统的迁移或复制Amazon DMS也会消耗大量 CPU 和内存。与前一代实例类型相比,R4 实例每个 vCPU 包含的内存更多。

  • R5 实例是 Amazon EC2 下一代内存优化型实例类型。R5 实例非常适合内存密集型应用程序,例如高性能数据库、分布式 Web 级内存中数据库、实时大数据分析和其他企业级应用程序。正在使用的高吞吐量事务系统的迁移或复制Amazon DMS也会消耗大量 CPU 和内存。

每个复制实例都有特定的内存和 vCPU 配置。下表显示了各复制实例类型的配置。有关定价的信息,请参阅Amazon Database Migration Service服务定价页面

复制实例类型

vCPU

内存 (GiB)

通用

dms.t2.micro

1

1

dms.t2.small

1

2

dms.t2.medium

2

4

dms.t2.large

2

8

dms.t3.micro

2

1

dms.t3.small

2

2

dms.t3.medium

2

4

dms.t3.large

2

8

计算优化

dms.c4.large

2

3.75

dms.c4.xlarge

4

7.5

dms.c4.2xlarge

8

15

dms.c4.4xlarge

16

30

dms.c5.large

2

4

dms.c5.xlarge

4

8

dms.c5.2xlarge

8

16

dms.c5.4xlarge

16

32

dms.c5.9xlarge

36

72

dms.c5.12xlarge

48

96

dms.c5.18xlarge

72

144

dms.c5.24xlarge

96

192

内存优化

dms.r4.large

2

15.25

dms.r4.xlarge

4

30.5

dms.r4.2xlarge

8

61

dms.r4.4xlarge

16

122

dms.r4.8xlarge

32

244

dms.r5.large

2

16

dms.r5.xlarge

4

32

dms.r5.2xlarge

8

64

dms.r5.4xlarge

16

128

dms.r5.8xlarge

32

256

dms.r5.12xlarge

48

384

dms.r5.16xlarge

64

512

dms.r5.24xlarge

96

768

决定使用哪个实例类

为了帮助确定哪种复制实例类可能最适合您,让我们看一下Amazon DMS使用的变更数据捕获 (CDC) 流程。

假设您运行的是完全加载加 CDC 任务(批量加载加持续复制)。在这种情况下,任务有自己的 SQLite 存储库来存储元数据和其他信息。在Amazon DMS开始满载之前,会执行以下步骤:

  • Amazon DMS开始从源引擎的事务日志中捕获正在迁移的表的更改(我们称之为缓存的更改)。完全加载完成后,将收集这些缓存的更改并将其应用于目标中。根据缓存更改的量,可以直接从内存中应用这些更改,最初在内存中收集更改,并一直收集到设定的阈值。或者可以从磁盘应用它们,当更改无法保存在内存中时,就会在磁盘中写入更改。

  • 应用缓存的更改后,默认情况下Amazon DMS会在目标实例上启动事务应用进程。

在应用的缓存更改阶段和正在进行的复制阶段,Amazon DMS使用两个流缓冲区,一个用于传入和传出数据。 Amazon DMS还使用了一个称为分拣器的重要组件,它是另一个内存缓冲区。下面是排序器组件的两个重要用法 (还有其他用法):

  • 它跟踪所有事务并确保只将相关事务转发至传出缓冲区。

  • 它确保按照与源中相同的提交顺序转发事务。

如您所见,在此架构中,我们为 CDC 提供了三个重要的内存缓冲区Amazon DMS。如果任何缓冲区遇到内存压力,迁移可能会出现导致故障的性能问题。

当您将具有高每秒事务数 (TPS) 的繁重工作负载插入此架构时,您会发现 R5 实例提供的额外内存很有用。您可以使用 R5 实例在内存中保存大量事务,并防止正在进行的复制期间出现内存压力问题。

可实例使用无限模式

配置为的可突增性能实例(如 T3 实例)可以承受所需的任何时段的高 CPU 利用率。unlimited每小时实例价格可以自动涵盖所有 CPU 使用率峰值。如果在滚动 24 小时或实例生命周期(以较短者为准)内实例的平均 CPU 利用率等于或低于基准,则会这样做。

对于绝大多数通用型工作负载,配置为的实例可unlimited提供足够的性能,而不会收取任何额外的费用。如果实例长时间以较高的 CPU 利用率运行,可能会按每 vCPU 小时的固定费率收取额外的费用。有关 T3 实例定价的信息,请参阅中的 “T3 CPU 积分” Amazon Database Migration Service

有关 T3 实例unlimited模式的更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的具爆发能力的实例的无限模式

重要

如果您使用Amazon免费套餐优惠下的dms.t3.micro实例并在unlimited模式下使用该实例,则可能会收取费用。特别是,如果您在滚动 24 小时内的平均利用率超过实例的基准利用率,则可能需要支付相应费用。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的基准利用率

T3 实例默认情况下作为 unlimited 启动。如果滚动 24 小时内的平均 CPU 使用率超过基准,将会产生超额积分费用。在某些情况下,您可以模式启动 T3 Spot 实例unlimited并计划立即短时间使用它们。如果您这样做没有空闲时间来累积 CPU 积分,则会产生超额分费用。建议您以标准模式启动 T3 Spot 实例,以避免支付更高的费用。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的剩余积分可能会产生费用、T3 竞价型实例和突发性能实例的标准模式