使用阿里云CLI跨地域迁移ECS实例

更新时间:
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

随着ECS实例的不断迭代,较早创建的ECS实例可能出现无法新增资源补给等问题,可能会影响您对云上业务的运维。阿里云的自定义镜像功能可以帮助您迁移源ECS实例的数据至新创建的目标ECS实例,以保障云上业务的运维效率。本文为您介绍如何使用阿里云CLI创建并复制自定义镜像,实现跨地域迁移ECS实例。

方案概览

使用阿里云CLI通过自定义镜像跨地域迁移ECS实例数据,大致可分为以下五个步骤:

  1. 创建镜像:为源ECS实例创建自定义镜像,使用该镜像创建的新实例,会包含您已配置的自定义项,省去您重复自定义实例的时间。

  2. 复制镜像:复制镜像后,您可以在目标地域获得不同ID的新镜像,其标签、资源组、加密属性等配置以复制镜像时的输入参数为准。

  3. 新建实例:使用自定义镜像在目标地域中新建目标ECS实例。

  4. 检查实例:检查新创建的目标ECS实例的相关数据情况,确保实例数据迁移后,业务功能仍可流畅运行。

  5. 释放资源:迁移完成后,结合自身的实际需求,可以选择释放或删除源ECS实例的相关资源,避免资源持续产生费用。

    image

注意事项

数据迁移前,请您仔细阅读以下注意事项。

  • 在创建自定义镜像期间,系统会对ECS实例的各个云盘自动创建快照,快照将产生一定的费用。有关快照费用的详细信息,请参见快照计费

  • 部分包含本地盘的实例无法创建快照,此类实例不支持通过本文的操作完成实例的数据迁移。

  • 源ECS实例的网络类型可以是经典网络或专有网络VPC。

  • 新建目标ECS实例时,仅支持创建VPC网络类型的ECS实例。

  • 新建目标ECS实例时,仅支持选择当前可用区下有库存的实例规格。

    说明

    如果您需要跨地域和可用区迁移实例数据,建议您提前自行做好资源所属地域和可用区的规划工作。

  • 由于是通过自定义镜像完成的实例数据迁移操作,因此数据迁移后,新创建的目标ECS实例中云盘数据与源ECS实例中的云盘数据保持一致,但新创建的目标ECS实例的实例元数据会重新生成,与源ECS实例中的实例元数据相比较会发生变化。关于实例元数据的更多信息,请参见ECS实例元数据概述

    由于实例元数据会发生变化,在实例数据迁移之前,建议您手动排查资源关联关系,并在数据迁移后及时更新资源的关联关系。例如:

    • 集群内部通过私网IP地址互联互通,在进行实例数据迁移后,您需要替换为最新的私网IP地址。

    • 某些应用的许可证(License)与ECS实例的MAC地址绑定,在进行实例数据迁移后,这些许可证将因为ECS实例的MAC地址改变而失效,您需要重新绑定最新的MAC地址。

步骤一:为源ECS实例创建自定义镜像

通过实例创建自定义镜像前,您需要了解相关注意事项。更多信息,请参见使用实例创建自定义镜像

  1. 执行以下命令,调用CreateImage创建源ECS示例的自定义镜像:

    aliyun ecs CreateImage \
      --RegionId 'cn-hangzhou' \
      --ImageName Created_from_hangzhouECS \
      --InstanceId 'i-bp1g6zv0ce8oghu7****' \
      --ResourceGroupId 'rg-bp67acfmxazb4p****'
  2. 返回结果示例:

    {
      "ImageId": "m-bp146shijn7hujku****",
      "RequestId": "C8B26B44-0189-443E-9816-*******"
    }

步骤二:跨地域复制镜像

将源ECS实例的数据跨地域迁移至新创建的目标ECS实例,需要先通过复制镜像功能将自定义镜像复制到其他地域。

  1. 执行以下命令,调用CopyImagecn-hangzhou复制源ECS实例的自定义镜像到cn-beijing

    aliyun ecs CopyImage \
      --RegionId 'cn-hangzhou' \
      --DestinationImageName Copy_from_hangzhouImage \
      --ImageId 'm-bp1h46wfpjsjastc****' \
      --DestinationRegionId 'cn-beijing' \
      --ResourceGroupId 'rg-bp67acfmxazb4p****'
  2. 返回结果示例:

    {
      "ImageId": "m-bp1h46wfpjsjastd****",
      "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E"
    }

步骤三:使用自定义镜像新建目标ECS实例

  1. 执行以下命令,使用RunInstances根据自定义镜像新建目标ECS实例:

    说明
    • 示例命令中PasswordInherit选项设置为true,执行命令创建实例时将使用镜像预设的密码。使用镜像预设密码后,新创建的目标ECS实例登录密码与源ECS实例的登录密码一致。

    • 您可根据需求自行选择符合的实例规格,更多参数信息,请参见自定义购买实例

    aliyun ecs RunInstances \
      --region cn-beijing \
      --RegionId 'cn-beijing' \
      --SecurityGroupId 'sg-2zea9dbddva****' \
      --VSwitchId 'vsw-2zep7vc25mjc1****' \
      --ImageId 'm-bp1h46wfpjsjastd****' \
      --InstanceType 'ecs.e-c1m1.large' \
      --InstanceName Copy_from_hangzhouECS \
      --PasswordInherit true \
      --InternetChargeType PayByTraffic \
      --SystemDisk.Size 40 \
      --SystemDisk.Category cloud_essd \
      --InstanceChargeType PostPaid \
      --InternetMaxBandwidthOut 10
  2. 返回结果示例:

    {
      "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
      "InstanceIdSets": {
        "InstanceIdSet": [
          "i-bp67acfmxazb4pd2****"
        ]
      }
    }

步骤四:检查新创建的目标ECS实例内的数据

您需要检查新创建的目标ECS实例的相关数据情况,确保实例数据迁移后,业务功能仍可流畅运行。例如:

  • 检查云盘数据:远程连接新创建的目标ECS实例,检查系统盘数据是否与源ECS实例一致,例如比较文件和目录结构是否一致。如果源ECS实例存在数据盘并在目标ECS实例上挂载了相应的云盘,您可以检查数据盘上的数据是否与源ECS实例一致。

  • 运行应用程序或服务:如果您的源ECS实例上运行了特定的应用程序或服务,您可以尝试在目标ECS实例上运行相同的应用程序或服务,并验证其功能和数据操作是否与源ECS实例一致。

  • 对比资源信息变化:

    • 您可以执行以下命令,调用DescribeInstances,对比源ECS实例与新创建的目标ECS实例相关的资源信息变化,例如镜像信息、网络配置等。

      aliyun ecs DescribeInstances --RegionId 'cn-beijing' --InstanceIds '["i-bp67acfmxazb4pd2****"]'
  • 更新资源的关联关系:新创建的目标ECS实例的实例元数据会重新生成,与源ECS实例中的实例元数据相比会发生变化。您需要在数据迁移后及时更新资源的关联关系。更多信息,请参见实例元数据

步骤五:释放或删除源ECS实例及相关资源

在您仔细检查新创建的目标ECS实例与源ECS实例数据没有差异,且完成了资源关联关系的更新,确保新创建的目标ECS实例内业务可以流畅运行后,结合自身的实际需求,可以选择释放或删除源ECS实例的相关资源,避免资源持续产生费用。相关操作说明如下:

警告

释放实例、删除镜像以及删除快照的操作为单向操作,一旦操作完成,资源内的数据不可恢复。请确保您已完成所有业务数据的迁移再执行释放或删除资源的操作。

  • 您可执行以下命令,调用DeleteInstance,释放源ECS实例。更多信息,请参见释放实例

    aliyun ecs DeleteInstance --InstanceId i-bp67acfmxazb4pd2****
  • 您可执行以下命令,调用DeleteImage,删除创建的自定义镜像,请参见删除自定义镜像

    重要

    删除自定义镜像后,已使用该镜像创建的ECS实例将无法初始化系统盘。如果您的自定义镜像为免费镜像,并且您需要保留该镜像以供后续使用,建议无需删除该自定义镜像。有关镜像计费的详细信息,请参见镜像计费

    aliyun ecs DeleteImage --RegionId 'cn-hangzhou' --ImageId 'm-bp146shijn7hujku****'
  • 您可执行以下命令,调用DeleteInstance,删除指定的快照。更多信息,请参见删除快照

    aliyun ecs DeleteSnapshot --SnapshotId 's-bp1c0doj0taqyzzl****'

相关文档

您也可在控制台中实现同地域或者跨地域下的ECS实例间的迁移。具体操作,请参见通过自定义镜像跨地域复制ECS实例