为您的迁移选择正确的 AWS DMS 复制实例 - AWS 数据库迁移服务

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

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

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

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

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

  • T3 实例是下一代可突增性能通用实例类型。此类型提供基准级别的 CPU 性能,并能够根据需要随时突增 CPU 使用率。T3 实例兼顾了计算、内存和网络资源,非常适合 CPU 使用中等、偶尔遇到峰值的应用程序。当工作负载的运行低于基准阈值时,T3 实例会累积 CPU 积分。每获得一个 CPU 积分,T3 实例就有机会在需要时为完整 CPU 核心突增一分钟内的性能。

    T3 实例可在 unlimited 模式下突增到所需的时间。有关 unlimited 模式的更多信息,请参阅对可突增性能实例使用无限模式

  • C4 实例针对计算密集型工作负载进行了优化,能够以较低的单位计算价格提供非常经济高效的高性能。它们显著提高了每秒数据包数 (PPS) 性能、更低的网络抖动和更低的网络延迟。 AWS DMS 也可能占用 CPU 密集型,尤其是在执行异构迁移和复制(例如从 Oracle 迁移到 PostgreSQL)时。针对这些情况,C4 实例是理想选择。

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

  • 与同类第 5 代实例相比,C6i 实例为各种工作负载提供的计算性价比高出 15%,而且内存加密始终处于开启状态。C6i 实例非常适合计算密集型工作负载,例如批处理、分布式分析、高性能计算(HPC)、广告服务、高度可扩展的多人游戏和视频编码。

  • R4 实例针对内存密集型工作负载优化了内存。使用 AWS DMS 持续迁移或复制高吞吐量事务系统也会占用大量 CPU 和内存。与早代实例类型相比,R4 实例的每个 vCPU 包含更多内存。

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

  • 与同类第 5 代实例相比,R6i 实例为各种工作负载提供的计算性价比高出 15%,而且内存加密始终处于开启状态。R6i 实例已通过 SAP 认证,非常适合 SQL 和 NoSQL 数据库等工作负载、Memcached 和 Redis 等分布式网络规模内存缓存、SAP HANA 等内存数据库以及 Hadoop 和 Spark 集群等实时大数据分析。

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

通用复制实例类型

Type

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

计算优化复制实例类型

Type

vCPU

内存 (GiB)

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.c6i.large

2

4

dms.c6i.xlarge

4

8

dms.c6i.2xlarge

8

16

dms.c6i.4xlarge

16

32

dms.c6i.8xlarge

32

64

dms.c6i.12xlarge

48

96

dms.c6i.16xlarge

64

128

dms.c6i.24xlarge

96

192

dms.c6i.32xlarge

128

256

内存优化复制实例类型

Type

vCPU

内存 (GiB)

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

dms.r6i.large

2

16

dms.r6i.xlarge

4

32

dms.r6i.2xlarge

8

64

dms.r6i.4xlarge

16

128

dms.r6i.8xlarge

32

256

dms.r6i.12xlarge

48

384

dms.r6i.16xlarge

64

512

dms.r6i.24xlarge

96

768

dms.r6i.32xlarge

128

1024

上表列出了所有 AWS DMS 复制实例类型,但您所在地区的可用类型可能会有所不同。要查看您所在区域的可用复制实例类型,可以运行以下 AWS CLI 命令:

aws dms describe-orderable-replication-instances --region your_region_name

决定使用哪个实例类

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

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

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

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

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

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

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

如您所见,此架构中有三个重要的内存缓冲区用于 AWS DMS中的 CDC。如果任何缓冲区遇到内存压力,迁移可能会出现导致故障的性能问题。

在将每秒事务数(TPS)很高的重型工作负载插入此架构时,您会发现 R5 和 R6i 实例提供的额外内存很有用。您可以使用 R5 和 R6i 实例在内存中保存大量事务,并可避免在持续复制期间出现内存压力问题。

对可突增性能实例使用无限模式

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

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

有关 T3 实例的 unlimited 模式的更多信息,请参见《适用于 Linux 实例的 Amazon EC2 用户指南》中的可突增性能实例的无限模式

重要

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

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