为复制实例设置网络 - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为复制实例设置网络

AmazonDMS 始终在 VPC 中根据 Amazon VPC 创建复制实例。您可以指定复制实例所在的 VPC。可使用您的账户和Amazon区域的默认 VPC 或创建一个新的 VPC。

确保为您复制实例 VPC 的 VPC 分配的elastic network interface 与安全组关联。此外,请确保此安全组的规则允许所有端口上的所有流量离开(出口)VPC。如果在终端节点上启用了正确的入口规则,则此方法允许复制实例与源和目标数据库终端节点进行通信。我们建议您为终端节点使用默认设置,这允许在所有端口上传出到所有地址。

源和目标终端节点连接到 VPC 或者位于 VPC 内部,以此来访问位于 VPC 内部的复制实例。数据库终端节点必须包含网络访问控制列表 (ACL) 安全组规则 (在适用时),允许来自复制实例的传入访问。如何设置取决于您使用的网络配置。您可以使用复制实例 VPC 安全组、复制实例的私有或公有 IP 地址或 NAT 网关的公有 IP 地址。这些连接构成了您用于数据迁移的网络。

注意

由于 IP 地址可能会因底层基础设施的更改而发生变化,因此我们建议您使用 VPC CIDR 范围,或者通过 NAT GW 关联的弹性 IP 路由复制实例的出站流量。有关创建 VPC(包括 CIDR 块)的更多信息,请参阅 Amazon Virtual Private Cloud 用户指南中的使用 VPC 和子网。有关弹性 IP 地址的更多信息,请参阅 Amazon 弹性计算云用户指南中的弹性 IP 地址

数据库迁移的网络配置

您可以通过DatAmazon abase Migration Service 使用多种不同的网络配置。以下是用于数据库迁移的常见网络配置。

在可行的情况下,我们建议您在与目标终端节点相同的区域以及与目标终端节点相同的 VPC 或子网中创建 DMS 复制实例。

一个 VPC 中具有所有数据库迁移组件的配置

对于数据库迁移而言,最简单的网络是源终端节点、复制实例和目标终端节点都位于同一个 VPC 中。如果您的源和目标终端节点位于 Amazon RDS 数据库实例或 Amazon EC2 实例上,则此配置不错。

下图显示了位于 Amazon EC2 实例上的数据库连接到复制实例并将数据迁移到 Amazon RDS 数据库实例的配置。


                             AmazonDatabase Migration Service 多合一 VPC 示例

此配置中使用的 VPC 安全组必须允许从复制实例向数据库端口的传入。您可以通过两种方式来执行此操作。您可以确保复制实例使用的安全组具有终端节点的入口。或者,如果您使用的是复制实例 VPC CIDR 范围、NAT GW 弹性 IP 或私有 IP 地址,则可以允许复制实例的私有 IP 地址。但是我们不建议您使用复制实例的私有 IP 地址,因为如果复制 IP 地址发生变化,它可能会中断您的复制。

使用多个 VPC 进行配置

如果您的源终端节点和目标终端节点位于不同的 VPC 中,则可以在其中一个 VPC 中创建复制实例。然后,您可以使用 VPC 对等连接来链接两个 VPC。

VPC 对等连接是两个 VPC 之间的连接,使用各 VPC 的私有 IP 地址进行路由,就像它们位于同一个网络中一样。您可以在自己的 VPC 之间、自己的 VPC 与另一个 Amazon 账户中的 VPC 或与其他 Amazon 区域中的 VPC 之间创建 VPC 对等连接。有关 VPC 对等的更多信息,请参阅 Amazon VPC 用户指南中的 VPC 对等信息。

下图显示了一个使用 VPC 对等连接的示例配置。在这里,VPC 中 Amazon EC2 实例上的源数据库通过 VPC 对等连接到 VPC。此 VPC 包含 Amazon RDS 数据库实例上的复制实例和目标数据库。


                             AmazonDatabase Migration Service

要实现 VPC 对等连接,请按照 Amazon 虚拟私有云 VPC 对等连接中的使用 VPC 对等连接中的说明进行操作。确保一个 VPC 的路由表包含另一个 VPC 的 CIDR 块。例如,如果 VPC A 使用目标 10.0.0.0/16,而 VPC B 使用目标 172.31.0.0,则 VPC A 的路由表应包含 172.31.0.0,VPC B 的路由表必须包含 10.0.0.0/16。有关更多详细信息,请参阅 Amazon Virtual Private Cloud VPC 对等连接文档中的更新 VPC 对等连接的路由表

此配置中使用的 VPC 安全组必须允许从复制实例进入数据库端口,或者应允许进入正在对等连接的 VPC 的 CIDR 块。

使用 Amazon Direct Connect 或 VPN 连接到 VPC 的网络的配置

远程网络可以使用多种选项Connect 到 VPC,例如Amazon直接连接或软件或硬件 VPN 连接。这些选项通常用于通过将内部网络扩展到Amazon云端来集成现有的现场服务,例如监控、身份验证、安全、数据或其他系统。通过使用这种类型的网络扩展,您可以无缝连接到 VPC 等Amazon托管资源。

下图显示了源终端节点是公司数据中心内本地数据库的配置。它通过使用Amazon Direct Connect或 VPN 连接到包含 Amazon RDS 数据库实例上的复制实例和目标数据库的 VPC。


                             AmazonDatabase Migration Service

在此配置中,VPC 安全组必须包含路由规则,将发往 VPC CIDR 范围或特定 IP 地址的流量发送到主机。此主机必须能够将流量从 VPC 桥接到本地 VPN 中。在这种情况下,NAT 主机包括自己的安全组设置。这些设置必须允许来自复制实例的 VPC CIDR 范围、私有 IP 地址或安全组的流量进入 NAT 实例。但是我们不建议您使用复制实例的私有 IP 地址,因为如果复制 IP 地址发生变化,它可能会中断您的复制。

使用 Internet 连接 VPC 的网络配置

如果您不使用 VPN 或Amazon Direct Connect连接Amazon资源,则可以使用互联网迁移数据库。在这种情况下,您可以迁移到 Amazon EC2 实例或 Amazon RDS 数据库实例。此配置涉及到带有 Internet 网关的 VPC 中的公有复制实例,该 VPC 中包含目标终端节点和复制实例。


                             AmazonDatabase Migration Service

要向您的 VPC 添加互联网网关,请参阅 Amazon VPC 用户指南中的连接互联网网关

VPC 路由表必须包含将默认情况下不发往 VPC 的流量发送到互联网网关的路由规则。在此配置中,与终端节点的连接将显示为来自复制实例的公有 IP 地址,而非私有 IP 地址。有关更多信息,请参阅 Amazon VPC 用户指南中的 VPC 路由表

我们将于 2022 年 8 月 15 日停用 EC2-Classic。我们建议您从 EC2-Classic 迁移到 VPC。有关更多信息,请参阅《Amazon EC2 用户指南》中的从 EC2-Classic 迁移到 VPC 和博客 EC2-Classic Networking is Retiring – Here’s How to Prepare

要将不在 VPC 中的 Amazon RDS 数据库实例连接到 VPC 中的 DMS 复制服务器和数据库实例,您可 ClassicLink 使用代理服务器。

ClassicLink 使您能够将 EC2-Clasic 数据库实例链接到您账户中位于同一Amazon区域内的 VPC。在您创建了链接之后,源数据库实例可以与 VPC 中的复制实例通过其私有 IP 地址进行通信。

由于 VPC 中的复制实例无法使用直接访问 EC2-Classic 平台上的源数据库实例 ClassicLink,因此您可以使用代理服务器。代理服务器将源数据库实例连接到包含复制实例和目标数据库实例的 VPC。代理服务器用于连接 ClassicLink 到 VPC。代理服务器上的端口转发允许源数据库实例与 VPC 中的目标数据库实例之间的通信。


                        AmazonDatabase Migration Service 使用 ClassicLink

ClassicLink 与DatAmazon abase Migration Service 一起使用

您可以将不在 VPC 中的 Amazon RDS 数据库实例连接到 VPC 中的Amazon DMS 复制服务器和数据库实例。为此,您可以将 Amazon EC2 ClassicLink 与代理服务器一起使用。

以下步骤将演示如何 ClassicLink 用于此目的。此过程将不在 VPC 中的 Amazon RDS 源数据库实例连接到包含Amazon DMS 复制实例和目标数据库实例的 VPC。

  • 在 VPC 中创建Amazon DMS 复制实例。(所有复制实例均在 VPC 中创建。)

  • 将 VPC 安全组与复制实例和目标数据库实例关联。当两个实例共享一个 VPC 安全组时,默认情况下,它们可以相互通信。

  • 在 EC2 Classic 实例上设置代理服务器。

  • 使用代理服务器和 VPC ClassicLink 之间创建连接。

  • 为源数据库和目标数据库创建Amazon DMS 端点。

  • 创建Amazon DMS 任务。

用于 ClassicLink 将不在 VPC 中的数据库实例上的数据库迁移到 VPC 中的数据库实例上的数据库
  1. 创建Amazon DMS 复制实例并分配 VPC 安全组:

    1. 登录Amazon Web Services Management Console并打开Amazon DMS主机,网址为 https://console.aws.amazon.com/dms/v2/

      如果您以Amazon Identity and Access Management (IAM) 用户身份登录,请确保您具有相应的访问权限Amazon DMS。有关数据库迁移所需权限的更多信息,请参阅 使用 Amazon DMS 所需的 IAM 权限

    2. 控制面板页中,选择复制实例。按照第 1 步:使用Amazon DMS控制台创建复制实例中的说明操作来创建复制实例。

    3. 创建Amazon DMS 复制实例后,打开 EC2 服务控制台。C 导航窗格中的 C 网络接口

    4. 选择 DMSNetworkInterface,然后从 “操作” 菜单中选择 “更改安全组”。

    5. 选择要用于复制实例和目标数据库实例的安全组。

  2. 将最后一步的安全组与目标数据库实例相关联:

    1. 打开 Amazon RDS 服务控制台。从导航窗格中选择 Instan c s。

    2. 选择目标数据库实例。对于实例操作,选择修改

    3. 对于安全组参数,选择您在上一步中使用的安全组。

    4. 选择继续,然后选择修改数据库实例

  3. 步骤 3:使用 NGINX 在 EC2 Classic 实例上设置代理服务器。使用您选择的 AMI 启动 EC2 Classic 实例。下面的示例基于 AMI Ubuntu Server 14.04 LTS (HVM)。

    在 EC2 Classic 实例上设置代理服务器

    1. 使用以下命令连接到 EC2 Classic 实例并安装 NGINX:

      Prompt> sudo apt-get update Prompt> sudo wget http://nginx.org/download/nginx-1.9.12.tar.gz Prompt> sudo tar -xvzf nginx-1.9.12.tar.gz Prompt> cd nginx-1.9.12 Prompt> sudo apt-get install build-essential Prompt> sudo apt-get install libpcre3 libpcre3-dev Prompt> sudo apt-get install zlib1g-dev Prompt> sudo ./configure --with-stream Prompt> sudo make Prompt> sudo make install
    2. 使用以下代码编辑 NGINX 守护程序文件 /etc/init/nginx.conf

      # /etc/init/nginx.conf – Upstart file description "nginx http daemon" author "email" start on (filesystem and net-device-up IFACE=lo) stop on runlevel [!2345] env DAEMON=/usr/local/nginx/sbin/nginx env PID=/usr/local/nginx/logs/nginx.pid expect fork respawn respawn limit 10 5 pre-start script $DAEMON -t if [ $? -ne 0 ] then exit $? fi end script exec $DAEMON
    3. /usr/local/nginx/conf/nginx.conf 中创建 NGINX 配置文件。在配置文件中,添加以下内容:

      # /usr/local/nginx/conf/nginx.conf - NGINX configuration file worker_processes 1; events { worker_connections 1024; } stream { server { listen DB instance port number; proxy_pass DB instance identifier:DB instance port number; } }
    4. 从命令行中,使用以下命令启动 NGINX:

      Prompt> sudo initctl reload-configuration Prompt> sudo initctl list | grep nginx Prompt> sudo initctl start nginx
  4. 在代理服务器和包含目标数据库实例和复制实例的目标 VPC 之间创建 ClassicLink 连接:

    1. 打开 EC2 控制台并选择正在运行代理服务器的 EC2 Classic 实例。

    2. 对于操作,选择 ClassicLink,然后选择链接到 VPC

    3. 选择您之前在此过程中使用的安全组。

    4. 选择链接到 VPC

  5. 步骤 5:使用中的过程创建Amazon DMS 端点第 2 步:指定源端点和目标端点。指定源终端节点时,请确保使用代理的内部 EC2 DNS 主机名作为服务器名称。

  6. 使用中的过程创建Amazon DMS 任务第 3 步:创建任务并迁移数据

创建复制子组

作为用于数据库迁移的网络的一部分,您需要指定计划使用虚拟私有云 (VPC) 中的哪些子网。此 VPC 必须基于 Amazon VPC 服务。子网 是在指定可用区中您的 VPC 内的 IP 地址范围。这些子网可以分布在您的 VPC 所在Amazon区域的可用区之间。

在Amazon DMS 控制台中创建复制实例或实例配置文件时,可以使用您选择的子网。

您创建复制子网组来定义要使用的子网。您必须至少在两个可用区中指定子网。

创建复制子网组
  1. 登录Amazon Web Services Management Console并打开Amazon DMS主机,网址为 https://console.aws.amazon.com/dms/v2/

    如果您以 IAM 用户身份登录,请确保您拥有相应的访问权限Amazon DMS。有关数据库迁移所需权限的更多信息,请参阅 使用 Amazon DMS 所需的 IAM 权限

  2. 在导航窗格中,选择子网组

  3. 选择 Create subnet group (创建子网组)

  4. 创建复制子网组页面上,指定您的复制子网组信息。下表描述了设置。

    选项 操作

    名称

    输入一个包含 8 到 16 个可打印 ASCII 字符(不包括/、” 和 @)的复制子网组的名称。对于您选择的Amazon地区的账户,该名称应是唯一的。您可选择对该名称进行一些巧妙处理,例如将所执行的Amazon区域和任务包括在名称中(如)DMS-default-VPC

    描述

    输入复制子网组的简要说明。

    VPC

    选择VPC 用于Database 请记住,VPC 必须至少有一个位于两个可用区中的子网。

    添加子网

    选择您要包括在复制子网组中的子网。您必须至少在两个可用区中选择子网。

  5. 选择 Create subnet group (创建子网组)

使用 DNS 解析域终端节点

通常,Amazon DMS复制实例使用 Amazon EC2 实例中的域名系统 (DNS) 解析器来解析域终端节点。如果您需要 DNS 解析,您可以使用 Amazon Route 53 解析程序。有关使用 Route 53 DNS 解析器的更多信息,请参阅 R oute 53 解析器入门

有关如何使用自己的本地名称服务器使用 Amazon Route 53 Resolver 解析某些终端节点的信息,请参阅 使用您自己的本地名称服务器