为复制实例设置网络 - AWS Database Migration Service

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

为复制实例设置网络

AWS DMS 始终在VPC中创建复制实例,依据 Amazon VPC. 您可以指定复制实例所在的 VPC。可以使用您账户和 AWS 区域的默认 VPC,也可以创建新的 VPC。VPC 必须至少有两个子网在一个可用区中。

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

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

数据库迁移的网络配置

您可以为 AWS Database Migration Service 使用多种不同的网络配置。以下是用于数据库迁移的常见网络配置。

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

对于数据库迁移而言,最简单的网络是源终端节点、复制实例和目标终端节点都位于同一个 VPC 中。当源和目标终端节点均位于 Amazon RDS 数据库实例或 Amazon EC2 实例上时,此配置非常合适。

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


                             AWS Database Migration Service 全部在一个VPC示例中

此配置中使用的 VPC 安全组必须允许从复制实例向数据库端口的传入。您可以通过几种方式执行此操作。您可以确保复制实例使用的安全组已进入端点。或者,您可以明确地允许复制实例的专用IP地址。

两个配置 VPCs

如果您的源端点和目标端点位于不同的 VPCs,您可以在其中一个中创建复制实例 VPCs. 然后,您可以将这两个 VPCs 使用VPC对等。

VPC对等连接是两个 VPCs 启用使用每个VPC的专用IP地址的路由,就如同它们位于同一网络中一样。您可以在您自己的VPC和 VPCs,在另一AWS帐户中使用VPC,或在另一AWS区域中使用VPC。有关VPC同行的更多信息,请参阅 VPC同行AmazonVPC用户指南.

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


                             AWS Database Migration Service 复制实例

此配置中使用的 VPC 安全组必须允许从复制实例向数据库端口的传入。

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

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

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


                             AWS Database Migration Service 复制实例

在此配置中,VPC 安全组必须包含一个路由规则,即将发往特定 IP 地址或范围的流量发送到主机。此主机必须能够将流量从 VPC 桥接到本地 VPN 中。在此情况下,NAT主机包括其自己的安全组设置。这些设置必须允许来自复制实例的专用IP地址或安全组的流量进入NAT实例。

使用 Internet 连接 VPC 的网络配置

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


                             AWS Database Migration Service 复制实例

要将互联网网关添加到VPC,请参阅 连接互联网网关AmazonVPC用户指南.

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

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

ClassicLink允许您将EC2经典数据库实例链接到帐户中同一AWS区域内的VPC。在您创建了链接之后,源数据库实例可以与 VPC 中的复制实例通过其私有 IP 地址进行通信。

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


                        AWS Database Migration Service 使用 ClassicLink

将 ClassicLink 与 AWS Database Migration Service 结合使用

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

以下步骤显示了如何使用 ClassicLink 用于此目的。此过程将 Amazon RDS 不在VPC中的源数据库实例,而VPC包含 AWS DMS 复制实例和目标数据库实例。

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

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

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

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

  • 为源数据库和目标数据库创建 AWS DMS 终端节点。

  • 创建 AWS DMS 任务。

使用 ClassicLink 将不在VPC中的DB实例上的数据库迁移到VPC中的DB实例上的数据库

  1. 创建 AWS DMS 复制实例并分配VPC安全组:

    1. 登录 AWS 管理控制台并通过以下网址打开 AWS DMS 控制台:https://console.aws.amazon.com/dms/v2/

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

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

    3. 在创建 AWS DMS 复制实例后,打开 EC2 访问控制台。丙 网络接口 从导航窗格。

    4. 选择 DMS网络接口,然后选择 更改安全组操作 菜单。

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

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

    1. 打开 Amazon RDS 服务控制台。选择 实例 从导航窗格。

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

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

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

  3. 第3步: 使用NGINX在EC2Classic实例上设置代理服务器。使用您选择的 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. 在创建NGINX配置文件 /usr/local/nginx/conf/nginx.conf。在配置文件中,添加以下内容:

      # /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. 创建 ClassicLink 代理服务器与包含目标DB实例和复制实例的目标VPC之间的连接:

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

    2. 对于 操作,选择 经典链接,然后选择 链接至VPC.

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

    4. 选择 链接至VPC.

  5. 第5步: 创建 AWS DMS 终点,使用 第2步: 指定来源和目标端点. 指定源端点时,请确保使用代理的内部EC2DNS主机名作为服务器名称。

  6. 创建 AWS DMS 任务,使用 第3步: 创建任务并迁移数据.

创建复制子组

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

您可以在所选的子网中创建复制实例,并且可以使用 AWS DMS 控制台。

您创建复制子网组来定义要使用的子网。您必须至少有一个位于两个不同可用区的子网。

创建复制子网组

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS DMS 控制台:https://console.aws.amazon.com/dms/v2/

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

  2. 在导航窗格中,选择 Subnet Groups

  3. 选择 Create Subnet Group

  4. 编辑复制子网组页中 (如下所示),指定您的复制子网组信息。下表描述了设置。

    
                             AWS Database Migration Service 复制实例
    对于该选项 请执行该操作

    标识符

    输入复制子网组的名称,该组包含8至16个可打印的ASCII字符(不包括/、"和@)。该名称对于所选 AWS 区域中您的账户应该是唯一的。您可以选择向名称中添加一些信息,例如包含 AWS 区域和要执行的任务,例如 DMS-default-VPC

    Description

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

    VPC

    选择您要用于数据库迁移的 VPC。请记住,VPC 必须至少有一个位于两个可用区中的子网。

    可用子网

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

  5. 选择添加以将子网添加到复制子网组中。

  6. 选择创建