更换ECS实例的VPC

更换ECS实例的VPC,是指将ECS实例从一个VPC迁移到另一个VPC中,而不改变ECS实例所在的地域及可用区。随着业务的发展或安全策略的变化,原有的网络结构可能不再满足需求,例如,当您需要隔离不同业务系统之间的流量时,可能需要将某些服务迁移到新的VPC中。

适用场景

  • 前期VPC规划不合理,随着业务的逐渐扩大,原来的VPC不能满足需求,需要通过ECS实例更换VPC进行重新规划。

  • 前期只规划一个VPC,不同的项目和使用环境共用此VPC,存在数据操作风险。现在希望按项目、使用环境划分为单独的VPC,需要通过ECS实例更换VPC操作进行项目迁移。

  • 当您通过云企业网、VPC对等连接等方式实现跨VPC互联时,通常建议您确保需要互通的网段没有重叠。如果您需要互通的实例存在网络重叠造成地址冲突,您可以通过为其中一端实例更换VPC的方式解决。

限制条件

  • ECS实例变更前后的交换机必须在同一可用区。

    • 如果因业务需要,您需要将ECS实例迁移到同地域其他可用区,请参见跨可用区迁移

    • 如果因为地域资源库存不足、成本优化、灾难恢复、缩容实例磁盘等原因,需要将ECS实例从一个账户/地域迁移到另一个账户/地域,请参见跨账号和同账号ECS实例间迁移

  • ECS实例变更可选择1~5个目标安全组,但目标安全组类型必须一致(都是普通安全组或都是企业级安全组)。

    说明
    • 安全组的配额与实例能够加入安全组的限制有关。更多信息,请参见使用限制

    • 当 ECS 实例跨类型切换安全组时,您需要充分了解两种安全组规则的配置区别,避免影响实例网络。更多信息,请参见安全组

  • 批量更换ECS实例的VPC时,单次最多支持20个ECS实例。

更换后影响

  • 私网IP:更换ECS实例的VPC后,实例的主私网IP地址会变为目标交换机网段范围内的IP地址。如果您的私网IP被其他服务或应用配置使用,需要您修改为更换后的主私网IP地址。

    说明

    实例的公网IP地址不受影响。

  • 网络互通:更换ECS实例的VPC后,此ECS实例无法直接和原有VPC内的其他ECS实例互通。如果需要实现互通,请参见跨VPC互联

  • 访问控制:如果原VPC和目标VPC使用了不同的网络ACL、安全组配置,则需要检查并可能调整以确保应用程序正常运行。详细信息,请参见VPC访问控制

  • 路由表配置:新的VPC可能具有与原来不同的路由表配置。对于依赖特定路由规则的应用来说,可能需要重新配置或添加相应的路由条目来保证连通性。详细信息,请参见路由表

  • 私网域名解析:如果ECS实例启用了私网域名解析,变更VPC可能导致域名解析失效。您需要确认目标VPC同原VPC一样启用了主机名功能,保证私网域名解析功能正常可用。详细信息,请参见VPC启用/禁用DNS主机名功能

前置检查

在进行更换VPC之前,您需要对ECS进行以下检查,保证更换顺利进行:

  • ECS实例须处于停止状态。如何停止ECS实例,请参见停止实例

    说明

    实例的状态不能为已锁定、等待释放、已过期、过期回收中、欠费回收中。更多信息,请参见实例的生命周期

  • ECS实例未绑定辅助弹性网卡,如果ECS实例已绑定辅助弹性网卡,您需要为实例解绑辅助弹性网卡

  • ECS实例未通过私网远程连接。如果ECS实例已经通过私网远程连接(如Workbench)生成私网链路,请参见释放授权链接

  • ECS实例未加入SLB的后端服务器组。SLB中如何移除后端服务器,请参见在默认服务器组添加和管理后端服务器

  • ECS实例不在自定义路由条目中。如果ECS实例被配置在自定义路由表中,即使实例所在交换机没有绑定该路由条目所在路由表,也无法更换VPC。请先将ECS实例从自定义路由表条目中移除。具体操作,请参见将ECS移除路由表条目

  • ECS实例未关联高可用虚拟IP(HaVip)。如果ECS实例关联了HaVip,您可以将ECS实例和HaVip解除关联,具体操作,请参见管理HaVip

  • ECS实例不能作为后端服务节点被绑定在全球加速实例中。如果您通过全球加速为ECS实例提供了加速服务,您需要删除ECS所在的终端节点。详细信息,请参见添加和管理终端节点组与终端节点

  • ECS实例不能在其他云服务中被使用。例如,实例不能在迁移中、不能在更换VPC中、实例内部署的数据库不能被DTS服务管理等。

  • 已经为ECS实例准备好更换的目标VPC、交换机和安全组。

    • 如果您的目标VPC中没有相应安全组,您可以通过克隆原VPC下ECS实例所关联的安全组到目标VPC的方式,快速创建安全组。具体操作,请参见克隆安全组

    • 如果您的目标VPC为其他账号共享给您的VPC,安全组必须为您的账号在该共享VPC下创建的安全组。

具体操作

重要
  • 更换VPC操作会导致ECS实例短暂不可用。请务必考虑业务连续性和客户体验等因素,选择合适的时机进行操作。

  • 建议您选择业务低峰期时段,做好ECS快照和备份后再进行VPC变更操作。

通过控制台更换

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 单个或批量更换ECS实例的VPC。

    • 更换单个ECS实例的VPC

      找到目标ECS实例,在操作列中,选择icon1 > 网络和安全组 > 更换专有网络

    • 批量更换多个ECS实例的VPC

      选中多个目标ECS实例,在ECS实例列表底部选择更多 > 网络和安全组 > 更换专有网络

  5. 更换专有网络配置向导页面,按照指引更换ECS实例的专有网络。

    1. 变更准备阶段,查看变更前的网络信息和注意事项,单击下一步

      image

    2. 选择专有网络阶段,选择ECS需要切换的目标专有网络目标交换机目标安全组,单击下一步

    3. (可选)在配置主私网IP阶段,设置ECS切换后的主私网IP地址。

      • 设置的主私网IP需要在目标交换机的网段内。

      • 如果您不手动设置主私网IP,则主私网IP由系统自动分配。

    4. 单击确定

  6. 查看结果。

    切换完成后,您可以单击ECS实例ID,在实例详情页面的配置信息区域查看切换后的专用网络虚拟交换机

    如果您已经在EventBridge、云监控中设置了事件通知用于获取更换ECS实例的VPC的操作结果信息,切换完成后,您将会收到交换机变更完成事件通知。

通过API更换

您也可以通过ModifyInstanceVpcAttribute修改ECS实例的专有网络VPC、虚拟交换机、安全组等信息。

修改完成后,您可以通过调用DescribeInstances,根据返回的VpcId、VSwitchId、SecurityGroupId,查看更换后实例的专有网络、虚拟交换机、安全组信息。

常见报错

在更换专有网络时如发生以下报错,请您仔细阅读前置检查,并根据实际报错信息及对应解决方案进行处理:

  • 错误一:InvalidDependence.GrantAccess

    image

    报错原因:更换VPC时,实例不能在其它云服务中被使用。报错提示ECS实例可能关联使用了其他产品(如DBS、DTS、DMS、Workbench等)。

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

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

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

    2. 在私网链路释放提示弹窗中,单击确认释放,然后再尝试更换。如果问题还是无法解决,请提交工单,联系阿里云技术支持进行协助处理。

  • 错误二:InvalidDependence.NextHopOfCustomRouter

    image

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

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

    1. 登录路由表控制台

    2. 在顶部状态栏处,选择ECS所属原VPC的地域。

    3. 路由表页面,找到包含要更换VPC的ECS实例的路由条目。

      image

    4. 点击删除,删除该路由条目后,再次尝试更换实例的VPC。

  • 错误三: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地址

相关文档

如果您需要跨账号、跨VPC的ECS之间实现内网互通,您可以通过私网连接等方式实现,详细信息,请参见跨账号VPC间的私网访问服务