如果Azure平台的数据库部署在虚拟网络中,并且您希望将数据库迁移至阿里云平台,您可以在Azure虚拟网络和阿里云VPC之间建立网络连接,在Azure虚拟网络和阿里云VPC实现网络互通的基础上,再通过数据传输服务 DTS(Data Transmission Service)将Azure平台的数据迁移至阿里云平台。本文介绍如何建立IPsec-VPN连接(绑定VPN网关实例)实现Azure虚拟网络和阿里云VPC之间的网络互通,并介绍如何通过DTS将Azure Database for MySQL 灵活服务器中的数据迁移至阿里云云数据库 RDS MySQL实例中。
场景示例
本文以上图场景为例。某企业在Azure平台的Germany West Central区域拥有一个虚拟网络,虚拟网络中创建了Azure Database for MySQL灵活服务器。当前企业正在将业务迁移至阿里云平台,企业已在阿里云德国(法兰克福)地域创建了一个VPC,并且VPC下已创建了RDS MySQL实例,企业希望可以将Azure Database for MySQL灵活服务器下的数据迁移至阿里云RDS MySQL实例中。
企业可以先使用IPsec-VPN(绑定VPN网关)在Azure虚拟网络和阿里云VPC之间建立网络连接,在Azure虚拟网络和阿里云VPC内的资源支持互通的情况下,再使用DTS将Azure Database for MySQL灵活服务器中的数据迁移至阿里云RDS MySQL实例中。
前提条件
在开始操作前,请确保您已经拥有以下环境并且已获得对应的资源信息:
在Azure平台Germany West Central区域拥有一个虚拟网络,虚拟网络下部署了Azure Database for MySQL灵活服务器(以下简称为Azure MySQL服务器)。具体操作,请咨询Azure平台。
在阿里云平台德国(法兰克福)地域拥有一个VPC,VPC下已经创建了RDS MySQL版数据库。具体操作,请参见创建RDS MySQL实例。
您已知Azure虚拟网络和阿里云VPC间要互通的网段信息以及要进行数据迁移的2个数据库账号信息。
重要您可以自行规划网段,请确保Azure虚拟网络和阿里云VPC间要互通的网段没有重叠。
请确保您已了解数据迁移的相关限制,并且数据库账号需已拥有相关权限。更多信息,请参见注意事项、数据库账号的权限要求章节。
资源
要互通的网段
地址
数据库账号
阿里云VPC
10.0.0.0/16
RDS MySQL实例的内网地址:rm-gw8x4h4tg****.mysql.germany.rds.aliyuncs.com
如何获取RDS MySQL实例的内网地址,请参见查看和管理实例连接地址和端口。
用户名:AliyunUser
密码:Hello1234****
Azure虚拟网络
192.168.0.0/16
Azure MySQL服务器名称:zho****-azure.mysql.database.azure.com
用户名:AzureUser
密码:Hello5678****
数据库提供服务端口号:3306
配置步骤
步骤一:在阿里云创建VPN网关实例
您需要先在阿里云创建一个VPN网关实例,VPN网关实例创建完成后,系统会为VPN网关实例分配2个IP地址,这2个IP地址用于与Azure平台虚拟网络建立IPsec-VPN连接。
登录VPN网关管理控制台。
在顶部菜单栏,选择VPN网关的地域。
VPN网关的地域需和待绑定的VPC实例的地域相同。
在VPN网关页面,单击创建VPN网关。
在购买页面,根据以下信息配置VPN网关,然后单击立即购买并完成支付。
以下仅列举本文强相关的配置,其余配置项保持默认值或为空。更多信息,请参见创建和管理VPN网关实例。
配置项
说明
本文示例值
实例名称
输入VPN网关实例的名称。
输入VPN网关。
地域
选择VPN网关实例所属的地域。
选择德国(法兰克福)。
网关类型
选择VPN网关实例的网关类型。
选择普通型。
网络类型
选择VPN网关实例的网络类型。
选择公网。
隧道
系统直接展示当前地域IPsec-VPN连接支持的隧道模式。
双隧道
单隧道
关于单隧道和双隧道的说明,请参见绑定VPN网关场景双隧道IPsec-VPN连接说明。
本文保持默认值双隧道。
专有网络
选择VPN网关实例关联的VPC实例。
选择阿里云德国(法兰克福)地域的VPC实例。
虚拟交换机
从VPC实例中选择一个交换机实例。
IPsec-VPN连接的隧道模式为单隧道时,您仅需要指定一个交换机实例。
IPsec-VPN连接的隧道模式为双隧道时,您需要指定两个交换机实例。
IPsec-VPN功能开启后,系统会在两个交换机实例下各创建一个弹性网卡ENI(Elastic Network Interfaces),作为使用IPsec-VPN连接与VPC流量互通的接口。每个ENI会占用交换机下的一个IP地址。
说明系统默认帮您选择第一个交换机实例,您可以手动修改或者直接使用默认的交换机实例。
创建VPN网关实例后,不支持修改VPN网关实例关联的交换机实例,您可以在VPN网关实例的详情页面查看VPN网关实例关联的交换机、交换机所属可用区以及交换机下ENI的信息。
选择VPC实例下的一个交换机实例。
虚拟交换机2
从VPC实例中选择第二个交换机实例。
您需要从VPN网关实例关联的VPC实例下指定两个分布在不同可用区的交换机实例,以实现IPsec-VPN连接可用区级别的容灾。
对于仅支持一个可用区的地域 ,不支持可用区级别的容灾,建议您在该可用区下指定两个不同的交换机实例以实现IPsec-VPN连接的高可用,支持选择和第一个相同的交换机实例。
说明如果VPC实例下没有第二个交换机实例,您可以新建交换机实例。具体操作,请参见创建和管理交换机。
选择VPC实例下的第二个交换机实例。
IPsec-VPN
选择开启或关闭IPsec-VPN功能。默认值:开启。
选择开启IPsec-VPN功能。
SSL-VPN
选择开启或关闭SSL-VPN功能。默认值:关闭。
选择关闭SSL-VPN功能。
返回VPN网关页面,查看创建的VPN网关实例。
刚创建好的VPN网关实例的状态是准备中,约1~5分钟左右会变成正常状态。正常状态表明VPN网关已经完成了初始化,可以正常使用。
系统为VPN网关实例分配的2个IP地址如下表所示:
VPN网关实例的名称
VPN网关实例ID
IP地址
VPN网关
vpn-gw8dickm386d2qi2g****
IPsec地址1(默认为主隧道地址):8.XX.XX.130
IPsec地址2(默认为备隧道地址):47.XX.XX.27
步骤二:在Azure平台部署VPN
为在Azure虚拟网络和阿里云VPC之间建立IPsec-VPN连接,您需要根据以下信息在Azure平台部署VPN,配置需要的具体操作请咨询Azure平台。
在虚拟网络中创建网关子网。创建虚拟网络网关时将会使用到该子网。
创建虚拟网络网关。
虚拟网络网关关联至需要和阿里云互通的虚拟网络上。本文中虚拟网络网关启用主动-主动模式,并新建2个公网IP地址,其余配置采用默认值。
虚拟网络网关创建完成后,您可以在公共IP地址页面查看系统为虚拟网络网关分配的公共IP地址。本文中系统分配的公共IP地址为4.XX.XX.224和4.XX.XX.166。
创建本地网络网关。
您需要在Azure侧创建2个本地网络网关,每个本地网络网关配置阿里云VPN网关实例的一个IP地址,同时将阿里云VPC实例网段和100.104.0.0/16网段一并配置到每个本地网络网关上。
说明创建本地网络网关时,您需要指定100.104.0.0/16网段,DTS服务将使用该网段下的地址迁移数据。
创建站点到站点VPN连接。
重要阿里云和Azure平台下的IPsec-VPN连接均支持双隧道模式,但由于Azure平台的两条隧道默认关联至同一个本地网络网关,而阿里云侧两条隧道拥有不同的IP地址,导致Azure平台和阿里云侧的两条隧道无法做到一一对应建立连接。为确保阿里云侧IPsec-VPN连接下两条隧道同时启用,您需要在Azure平台创建两个站点到站点的VPN连接,每个站点到站点VPN连接关联不同的本地网络网关。
下图展示其中一个站点到站点VPN连接的配置,创建VPN连接时选择站点到站点(IPsec)类型,并关联需要和阿里云建立VPN连接的虚拟网络网关,然后选择一个本地网络网关并设置共享密钥,其余配置项使用默认值。另一个站点到站点VPN连接关联与当前VPN连接不同的本地网络网关,其余配置与当前VPN连接相同。
步骤三:在阿里云部署VPN网关
在Azure平台完成VPN配置后,请根据以下信息在阿里云侧部署VPN网关,以便Azure虚拟网络和阿里云VPC之间建立IPsec-VPN连接。
创建用户网关。
登录VPN网关管理控制台。
在左侧导航栏,选择
。在顶部菜单栏选择用户网关的地域。
用户网关地域需和VPN网关实例的地域相同。
在用户网关页面,单击创建用户网关。
在创建用户网关面板,根据以下信息进行配置,然后单击确定。
您需要创建两个用户网关,并将Azure平台虚拟网络网关的2个公共IP地址作为用户网关的IP地址,以建立两个加密隧道。以下仅列举本文强相关配置项,其余配置保持默认值或为空。更多信息,请参见创建和管理用户网关。
配置项
说明
用户网关1
用户网关2
名称
输入用户网关的名称。
输入用户网关1。
输入用户网关2。
IP地址
输入Azure平台虚拟网络网关的公共IP地址。
输入4.XX.XX.224。
输入4.XX.XX.166。
创建IPsec连接。
在左侧导航栏,选择
。在顶部菜单栏选择IPsec连接的地域。
IPsec连接的地域需和VPN网关实例的地域相同。
在IPsec连接页面,单击创建IPsec连接。
在创建IPsec连接页面,根据以下信息配置IPsec连接,然后单击确定。
配置项
说明
本文示例值
名称
输入IPsec连接的名称。
输入IPsec连接。
资源组
选择VPN网关实例所属的资源组。
选择默认资源组。
绑定资源
选择IPsec连接绑定的资源类型。
选择VPN网关。
VPN网关
选择IPsec连接关联的VPN网关实例。
选择已创建的VPN网关。
路由模式
选择路由模式。
目的路由模式:基于目的IP地址路由和转发流量。
感兴趣流模式:基于源IP地址和目的IP地址精确的路由和转发流量。
选择感兴趣流模式。
本端网段
输入VPN网关实例关联的VPC实例下的网段。
输入以下两个网段:
VPC网段:10.0.0.0/16
DTS网段:100.104.0.0/16
重要您需要将DTS使用的地址段也添加到本端网段中,以便DTS通过VPN网关访问对端的数据库。
关于DTS地址段的更多信息,请参见添加DTS服务器的IP地址段。
对端网段
输入VPN网关实例关联的VPC实例要访问的对端的网段。
输入192.168.0.0/16。
立即生效
选择IPsec连接的配置是否立即生效。取值:
是:配置完成后立即进行协商。
否:当有流量进入时进行协商。
选择是。
启用BGP
如果IPsec连接需要使用BGP路由协议,需要打开BGP功能的开关,系统默认关闭BGP功能。
本文保持默认值,即不开启BGP功能。
Tunnel 1
为隧道1(主隧道)添加VPN相关配置。
系统默认隧道1为主隧道,隧道2为备隧道,且不支持修改。
用户网关
为主隧道添加待关联的用户网关实例。
选择用户网关1。
预共享密钥
输入主隧道的认证密钥,用于身份认证。
密钥长度为1~100个字符,支持数字、大小写英文字母及右侧字符
~`!@#$%^&*()_-+={}[]\|;:',.<>/?
。若您未指定预共享密钥,系统会随机生成一个16位的字符串作为预共享密钥。
重要隧道及其对端网关设备配置的预共享密钥需一致,否则系统无法正常建立IPsec-VPN连接。
当前隧道的认证密钥需和连接的Azure平台VPN连接的密钥一致。
加密配置
添加IKE配置、IPsec配置、DPD、NAT穿越等配置。
本文保持默认值。关于默认值的说明,请参见创建和管理IPsec连接(双隧道模式)。
Tunnel 2
为隧道2(备隧道)添加VPN相关配置。
用户网关
为备隧道添加待关联的用户网关实例。
选择用户网关2。
预共享密钥
输入备隧道的认证密钥,用于身份认证。
当前隧道的认证密钥需和Azure平台VPN连接的密钥一致。
加密配置
添加IKE配置、IPsec配置、DPD、NAT穿越等配置。
本文保持默认值。关于默认值的说明,请参见创建和管理IPsec连接(双隧道模式)。
标签
为IPsec连接添加标签。
保持为空。
在创建成功对话框中,单击取消。
配置VPN网关路由。
创建IPsec连接后需要为VPN网关实例配置路由。创建IPsec连接时,如果路由模式您选择了感兴趣流模式,在IPsec连接创建完成后,系统会自动在VPN网关实例下创建策略路由,路由是未发布状态。您需要执行本操作,将VPN网关实例下的策略路由发布至VPC中。
在左侧导航栏,选择 。
在顶部菜单栏,选择VPN网关实例的地域。
在VPN网关页面,单击目标VPN网关实例ID。
在VPN网关实例详情页面单击策略路由表页签,找到目标路由条目,在操作列单击发布。
在发布路由对话框,单击确定。
步骤四:测试网络连通性
完成上述配置后,阿里云VPC和Azure虚拟网络下的资源已经可以互相通信了,您可以通过以下步骤验证阿里云VPC和Azure虚拟网络之间的网络连通性。
在Azure虚拟网络中创建并登录Azure VM实例。具体操作,请咨询Azure平台。
在VM实例中执行
ping
命令,访问阿里云RDS MySQL实例的内网地址。ping <阿里云RDS MySQL实例内网地址>
如果VM实例可以收到如下所示的回复报文,则证明阿里云VPC和Azure虚拟网络下的资源可以正常通信。
获取Azure MySQL服务器的IP地址。
在Azure VM实例下使用
ping
命令访问Azure MySQL服务器的名称,系统会自动返回Azure MySQL服务器的IP地址,后续DTS进行数据迁移时需要使用。
步骤五:创建DTS数据迁移任务
阿里云VPC和Azure虚拟网络之间的资源可以互相通信后,您可以开始创建DTS数据迁移任务。DTS数据迁移任务配置完成后可以将Azure MySQL服务器中的数据迁移至阿里云RDS MySQL实例中。
进入迁移任务的列表页面。
登录DMS数据管理服务。
在顶部菜单栏中,单击集成与开发。
在左侧导航栏,选择 。
说明实际操作可能会因DMS的模式和布局不同,而有所差异。更多信息,请参见极简模式控制台和自定义DMS界面布局与样式。
您也可以登录新版DTS迁移任务列表页面。
在迁移任务右侧,选择迁移实例所属地域。
说明新版DTS迁移任务列表页面,需要在页面左上角选择迁移实例所属地域。
单击创建任务,进入任务配置页面。
可选:在页面右上角,单击试用新版配置页。
说明若您已进入新版配置页(页面右上角的按钮为返回旧版配置页),则无需执行此操作。
新版配置页和旧版配置页部分参数有差异,建议使用新版配置页。
配置源库及目标库信息。
警告选择源和目标实例后,建议您仔细阅读页面上方显示的使用限制,否则可能会导致任务失败或数据不一致。
类别
配置
说明
无
任务名称
DTS会自动生成一个任务名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。
源库信息
数据库类型
选择MySQL。
接入方式
选择专线/VPN网关/智能网关。
实例地区
选择源MySQL数据库所属地域。
本文选择德国(法兰克福)。
是否跨阿里云账号
选择不跨账号。
已和源端数据库联通的VPC
选择VPN网关实例关联的VPC实例。
DTS将通过IPsec-VPN连接访问Azure MySQL服务器下的数据库。
IP地址或域名
输入源MySQL数据库IP地址。
本文输入Azure MySQL服务器的私网IP地址192.168.0.4。
端口
输入源MySQL数据库的服务端口。本文输入3306。
数据库账号
输入源MySQL数据库的账号。
数据库密码
输入该数据库账号对应的密码。
连接方式
请根据实际情况选择非加密连接或SSL安全连接。
若Azure MySQL服务器未开启SSL加密,请选择非加密连接。
若Azure MySQL服务器已开启SSL加密,请选择SSL安全连接。同时,您还需要上传CA 证书并填写CA 密钥。
本文中Azure MySQL服务器已关闭加密连接功能,使用非加密连接。
说明Azure MySQL服务器创建后默认使用加密连接,支持关闭加密连接。更多信息,请参见在 Azure Database for MySQL 灵活服务器实例上禁用 SSL 强制。
目标库信息
数据库类型
选择MySQL。
接入方式
选择云实例。
实例地区
选择阿里云RDS MySQL实例所属的地域。
本文选择德国(法兰克福)。
是否跨阿里云账号
选择不跨账号。
RDS实例ID
选择阿里云VPC下的RDS MySQL实例。
数据库账号
输入RDS MySQL实例的数据库账号。
数据库密码
输入该数据库账号对应的密码。
连接方式
本文选择非加密连接。
配置完成后,单击页面下方的测试连接以进行下一步。在DTS服务器访问授权对话框,单击测试连接。
请确保阿里云VPC和Azure虚拟网络所应用的安全组规则允许DTS访问。例如,在安全组规则的入方向允许100.104.0.0/16网段的资源通过。关于DTS使用的地址段的更多信息,请参见添加DTS服务器的IP地址段。
如果系统测试阿里云VPC和Azure虚拟网络下的数据库可以正常连通,则表明数据库之间的网络连通性正常,系统会跳转至配置任务对象页面。
如果系统测试阿里云VPC和Azure虚拟网络下的数据库无法正常连通,则不会跳转至下一个页面,请根据页面提示排查问题。更多信息,请参见如何解决使用VPN将数据库实例接入DTS时报错。
在配置任务对象页面,选择迁移类型以及Azure MySQL服务器下要迁移至阿里云的数据库,其余配置项及后续配置均保持默认配置。更多信息,请参见自建MySQL迁移至RDS MySQL。
配置完成后,DTS会自动开始数据迁移任务,您可以登录阿里云RDS MySQL实例中,查看数据迁移结果。