当业务发展、组织架构调整或安全策略升级时,原有的网络规划可能无法满足新的需求。此时,需要将ECS实例从一个VPC迁移至另一个,以实现业务隔离、网络架构重组或解决IP地址段冲突。此操作在不改变实例所在地域和可用区的前提下,完成VPC的更换。
更换VPC操作会导致ECS实例短暂不可用,产生业务中断。请选择合适的时机进行操作,建议在业务低峰期时段,创建快照备份数据后执行。
变更影响与风险
业务中断:操作要求实例处于已停止状态,因此会导致业务中断。
私网IP地址变更:
实例的主私网IP地址将变更为目标交换机网段内的一个新地址(可指定或自动分配)。硬编码使用原私网IP的应用或服务(如数据库连接字符串、防火墙白名单、其他服务的配置)将失效,需在更换后手动更新。
公网IP地址保持不变。
网络连接中断:实例与原VPC内其他资源(如RDS、SLB、其他ECS实例)的私网连接将断开。
操作系统网络配置:若实例内部获取IP方式为静态配置,更换VPC后,操作系统内的网络信息(IP地址、网关等)将与实际分配的不符,导致实例无法正常远程连接、通信等。
操作步骤
步骤一:准备工作
创建快照备份 为避免意外,建议为实例的系统盘和数据盘创建快照,作为数据备份和回滚的保障。
停止实例
实例必须处于已停止状态,且控制台状态不能为已锁定、等待释放、已过期、过期回收中、欠费回收中。若当前实例运行中,需先停止实例。
前置检查处理
辅助弹性网卡:若实例绑定了辅助弹性网卡,需先解绑弹性网卡。
多IP地址:若主网卡分配了辅助私网IP或IPv6地址,需先回收辅助私网IP或删除已分配的IPv6地址。
负载均衡(SLB):若实例加入了负载均衡(SLB)后端服务器组,需先移除该实例。
自定义路由条目:若实例被配置在自定义路由表中,需先删除路由条目。
高可用虚拟IP(HaVip):若实例关联了高可用虚拟IP(HaVip),需先将实例和HaVip解除关联。
全球加速 GA(Global Accelerator):若实例作为终端节点被绑定在全球加速实例中,需先删除ECS所在的终端节点。
(可选)实例内IP获取方式:若实例内部获取IP方式为静态配置,建议在更换前,将实例操作系统的网络配置设为DHCP(自动获取IP地址),配置后,实例内部会自动获取IP地址、子网掩码、默认网关等配置信息。
Linux
Windows
以Windows Server 2022为例:
远程连接Windows实例。
具体操作,请参见使用Workbench终端连接登录Windows实例(RDP)。
打开网络和共享中心。
单击更改适配器设置。
双击当前主网卡网络名称以太网,然后在以太网状态对话框中单击属性。
在以太网属性对话框中,双击Internet 协议版本4(TCP/IPv4)。
在Internet 协议版本4(TCP/IPv4)属性对话框中,选择自动获得IP地址(O)。
准备目标网络资源
专有网络与交换机:在目标VPC中,确保已在与ECS实例相同的可用区下创建专有网络与交换机。
安全组:在目标VPC中,准备好将要关联的安全组。可通过克隆安全组到目标VPC快速复制现有规则。
步骤二:执行VPC更换
控制台
访问ECS控制台-实例,在页面左侧顶部,选择目标资源所在的资源组和地域。
在实例列表页面,单击目标实例 ID 进入详情页。在页面右上角,选择全部操作 > 更换专有网络。
执行专有网络更换:
变更准备:查看变更前的网络信息和注意事项。
选择专有网络:设置目标专有网络、目标交换机和目标安全组。
可选择1~5个目标安全组,目标安全组类型必须一致(都是普通安全组或都是企业级安全组)。
(可选)配置主私网IP:设置IP地址需要保证在目标交换机的CIDR网段范围内。若不设置,则主私网IP由系统自动分配。
查看变更结果:
在实例详情页面的配置信息区域查看更换后的专用网络和虚拟交换机。
更换VPC完成后,实例不会自动启动,需手动启动实例。
API
使用 ModifyInstanceVpcAttribute - 修改实例的VPC属性 接口可以更换VPC。
修改完成后,可以通过调用DescribeInstances - 查询实例的详细信息列表接口,查看更换后实例的专有网络、虚拟交换机、安全组信息。
更换VPC完成后,实例不会自动启动,需调用StartInstance - 启动实例,手动启动。
常见问题
如何批量更新ECS实例的VPC?
参照在实例列表页执行批量操作,在批量更换ECS实例的VPC时,单次最多支持20个ECS实例。
如何进行CIDR格式和IP地址网段范围换算?
可参见CIDR格式换算为IP地址网段示例,或在目标VPC的VSW下的实例内,通过命令行工具
ipcalc
查看CIDR表示的IP地址段。如何订阅更换ECS实例的VPC的操作结果的事件通知?
通过云监控订阅ECS系统事件,订阅ECS系统事件通知后可收到交换机事件通知。
通过事件总线EventBridge订阅云服务器ECS事件。
执行专有网络更换时报错:
InvalidDependence.GrantAccess
,如何解决?报错原因:更换VPC时,实例不能在其它云服务中被使用,报错提示ECS实例可能关联使用了其他产品。
解决方案:释放反向授权链接,将对其它产品的授权删除后再进行尝试。
如果实例通过Workbench私网远程连接生成私网链路,可以参考以下操作,释放授权链接:
登录Workbench控制台,查看私网链路页面是否存在对应ECS实例的反向授权链接,如果存在,请单击右侧操作列的释放链路。
在私网链路释放提示弹窗中,单击确定完成释放,然后再尝试更换。
执行专有网络更换时报错:
InvalidDependence.NextHopOfCustomRouter
,如何解决?报错原因:更换VPC时,实例不能在自定义路由条目中。即使实例所在交换机没有绑定该路由条目所在路由表,也会报错。报错提示ECS实例是某个自定义路由表条目中的下一跳。
解决方案:删除实例所在的路由条目。具体操作如下所示:
登录路由表控制台,在顶部状态栏处,选择ECS所属原VPC的地域。
在路由表页面,找到包含要更换VPC的ECS实例的路由条目。点击删除,删除该路由条目后,再次尝试更换实例的VPC。
执行专有网络更换时报错:
InvalidDependence.SLB
,如何解决?报错原因:更换VPC时,ECS实例不能关联负载均衡实例。即使ECS没有被SLB挂载到后端RS,只要加入到ECS的服务器组中,也会报错。
解决方案:确认ECS实例加入的SLB的后端服务器组,并在该服务器组中移除ECS实例。移除后,再次尝试更换实例的VPC。详细信息,请参见移除后端服务器。
执行专有网络更换时报错:
EnterpriseGroupLimited.MutliGroupType
,如何解决?报错原因:更换VPC时,选择目标VPC中的多个安全组时(1~5个),安全组的类型需要一致(均为普通安全组或均为企业级安全组)。
解决方案:选择同一类型的安全组。
执行专有网络更换时报错:
Invalidinstance.AttachedEni
,如何解决?报错原因:更换VPC时,ECS实例不允许绑定辅助网卡。
解决方案:ECS实例解绑辅助弹性网卡,具体操作,请参见解绑弹性网卡。
执行专有网络更换时报错:
PrimaryEniHasSubIp
,如何解决?报错原因:更换VPC时,ECS实例不允许有多IP。报错提示,ECS实例的主网卡分配了多个辅助私网IP地址。
解决方案:回收ECS实例上已分配的辅助私网IP地址。具体操作,请参见回收辅助私网IP地址。
相关文档
如果因需要将ECS实例迁移到同地域其他可用区,请参见跨可用区迁移。
如果因为地域资源库存不足、成本优化、灾难恢复、缩容实例磁盘等原因,需要将ECS实例从一个账户/地域迁移到另一个账户/地域,请参见跨账号和同账号ECS实例间迁移。