更换ECS实例的VPC

当业务发展、组织架构调整或安全策略升级时,原有的网络规划可能无法满足新的需求。此时,需要将ECS实例从一个VPC迁移至另一个,以实现业务隔离、网络架构重组或解决IP地址段冲突。此操作在不改变实例所在地域和可用区的前提下,完成VPC的更换。

重要

更换VPC操作会导致ECS实例短暂不可用,产生业务中断。请选择合适的时机进行操作,建议在业务低峰期时段,创建快照备份数据后执行。

image

变更影响与风险

  • 业务中断:操作要求实例处于已停止状态,因此会导致业务中断。

  • 私网IP地址变更

    • 实例的主私网IP地址将变更为目标交换机网段内的一个新地址(可指定或自动分配)。硬编码使用原私网IP的应用或服务(如数据库连接字符串、防火墙白名单、其他服务的配置)将失效,需在更换后手动更新。

    • 公网IP地址保持不变。

  • 网络连接中断:实例与原VPC内其他资源(如RDS、SLB、其他ECS实例)的私网连接将断开。

  • 操作系统网络配置:若实例内部获取IP方式为静态配置,更换VPC后,操作系统内的网络信息(IP地址、网关等)将与实际分配的不符,导致实例无法正常远程连接、通信等。

操作步骤

步骤一:准备工作

  1. 创建快照备份 为避免意外,建议为实例的系统盘和数据盘创建快照,作为数据备份和回滚的保障。

  2. 停止实例

    实例必须处于已停止状态,且控制台状态不能为已锁定、等待释放、已过期、过期回收中、欠费回收中。若当前实例运行中,需先停止实例。

  3. 前置检查处理

    • 辅助弹性网卡:若实例绑定了辅助弹性网卡,需先解绑弹性网卡

    • IP地址:若主网卡分配了辅助私网IPIPv6地址,需先回收辅助私网IP删除已分配的IPv6地址

    • 负载均衡(SLB):若实例加入了负载均衡(SLB)后端服务器组,需先移除该实例

    • 自定义路由条目:若实例被配置在自定义路由表中,需先删除路由条目

    • 高可用虚拟IP(HaVip):若实例关联了高可用虚拟IP(HaVip),需先将实例和HaVip解除关联

    • 全球加速 GA(Global Accelerator):若实例作为终端节点被绑定在全球加速实例中,需先删除ECS所在的终端节点

    • (可选)实例内IP获取方式:若实例内部获取IP方式为静态配置,建议在更换前,将实例操作系统的网络配置设为DHCP(自动获取IP地址),配置后,实例内部会自动获取IP地址、子网掩码、默认网关等配置信息。

      Linux

      参见如何在Linux镜像中配置网络为DHCP

      Windows

      Windows Server 2022为例:

      1. 远程连接Windows实例。

        具体操作,请参见使用Workbench终端连接登录Windows实例(RDP)

      2. 打开网络和共享中心。

      3. 单击更改适配器设置

      4. 双击当前主网卡网络名称以太网,然后在以太网状态对话框中单击属性

        image

      5. 以太网属性对话框中,双击Internet 协议版本4(TCP/IPv4)

        image

      6. Internet 协议版本4(TCP/IPv4)属性对话框中,选择自动获得IP地址(O)

        image

  4. 准备目标网络资源

    • 专有网络与交换机:在目标VPC中,确保已在与ECS实例相同的可用区下创建专有网络与交换机

    • 安全组:在目标VPC中,准备好将要关联的安全组。可通过克隆安全组到目标VPC快速复制现有规则。

步骤二:执行VPC更换

控制台

  1. 访问ECS控制台-实例,在页面左侧顶部,选择目标资源所在的资源组和地域。

  2. 在实例列表页面,单击目标实例 ID 进入详情页。在页面右上角,选择全部操作 > 更换专有网络

  3. 执行专有网络更换:

    1. 变更准备:查看变更前的网络信息和注意事项。

    2. 选择专有网络:设置目标专有网络目标交换机目标安全组

      可选择1~5个目标安全组,目标安全组类型必须一致(都是普通安全组或都是企业级安全组)。
    3. (可选)配置主私网IP:设置IP地址需要保证在目标交换机的CIDR网段范围内。若不设置,则主私网IP由系统自动分配。

  4. 查看变更结果:

    实例详情页面的配置信息区域查看更换后的专用网络虚拟交换机

    更换VPC完成后,实例不会自动启动,需手动启动实例

API

使用 ModifyInstanceVpcAttribute - 修改实例的VPC属性 接口可以更换VPC。

修改完成后,可以通过调用DescribeInstances - 查询实例的详细信息列表接口,查看更换后实例的专有网络、虚拟交换机、安全组信息。

更换VPC完成后,实例不会自动启动,需调用StartInstance - 启动实例,手动启动。

常见问题

  • 如何批量更新ECS实例的VPC?

    参照在实例列表页执行批量操作,在批量更换ECS实例的VPC时,单次最多支持20ECS实例。

  • 如何进行CIDR格式和IP地址网段范围换算?

    可参见CIDR格式换算为IP地址网段示例,或在目标VPCVSW下的实例内,通过命令行工具ipcalc查看CIDR表示的IP地址段。

  • 如何订阅更换ECS实例的VPC的操作结果的事件通知?

  • 执行专有网络更换时报错:InvalidDependence.GrantAccess,如何解决?

    image

    报错原因:更换VPC时,实例不能在其它云服务中被使用,报错提示ECS实例可能关联使用了其他产品。

    解决方案释放反向授权链接,将对其它产品的授权删除后再进行尝试。

    如果实例通过Workbench私网远程连接生成私网链路,可以参考以下操作,释放授权链接:

    1. 登录Workbench控制台,查看私网链路页面是否存在对应ECS实例的反向授权链接,如果存在,请单击右侧操作列的释放链路

    2. 在私网链路释放提示弹窗中,单击确定完成释放,然后再尝试更换。

  • 执行专有网络更换时报错:InvalidDependence.NextHopOfCustomRouter,如何解决?

    image

    报错原因:更换VPC时,实例不能在自定义路由条目中。即使实例所在交换机没有绑定该路由条目所在路由表,也会报错。报错提示ECS实例是某个自定义路由表条目中的下一跳。

    解决方案删除实例所在的路由条目。具体操作如下所示:

    1. 登录路由表控制台,在顶部状态栏处,选择ECS所属原VPC的地域。

    2. 路由表页面,找到包含要更换VPCECS实例的路由条目。点击删除,删除该路由条目后,再次尝试更换实例的VPC。

      image

  • 执行专有网络更换时报错:InvalidDependence.SLB,如何解决?

    image

    报错原因:更换VPC时,ECS实例不能关联负载均衡实例。即使ECS没有被SLB挂载到后端RS,只要加入到ECS的服务器组中,也会报错。

    解决方案:确认ECS实例加入的SLB的后端服务器组,并在该服务器组中移除ECS实例。移除后,再次尝试更换实例的VPC。详细信息,请参见移除后端服务器

    image

  • 执行专有网络更换时报错:EnterpriseGroupLimited.MutliGroupType,如何解决?

    image

    报错原因:更换VPC时,选择目标VPC中的多个安全组时(1~5个),安全组的类型需要一致(均为普通安全组或均为企业级安全组)。

    解决方案:选择同一类型的安全组。

  • 执行专有网络更换时报错:Invalidinstance.AttachedEni,如何解决?

    image

    报错原因:更换VPC时,ECS实例不允许绑定辅助网卡。

    解决方案:ECS实例解绑辅助弹性网卡,具体操作,请参见解绑弹性网卡

  • 执行专有网络更换时报错:PrimaryEniHasSubIp,如何解决?

    image

    报错原因:更换VPC时,ECS实例不允许有多IP。报错提示,ECS实例的主网卡分配了多个辅助私网IP地址。

    解决方案:回收ECS实例上已分配的辅助私网IP地址。具体操作,请参见回收辅助私网IP地址

相关文档