如何将 Amazon EC2 实例或 AMI 转移到其他 AWS 账户?

上次更新时间:2020 年 6 月 23 日

我想将 Amazon Elastic Compute Cloud (Amazon EC2) 实例或 Amazon 系统映像 (AMI) 从一个 Amazon Web Services (AWS) 账户转移到另一个账户。我该如何操作?

简短描述

无法在 AWS 账户之间转移现有的实例或 AMI。但您可以将 EC2 映像从一个 AWS 账户手动迁移到另一个账户。首先,根据源账户中的原始 EC2 实例创建 Amazon 系统映像 (AMI)。然后,与目标账户共享该 AMI 并从目标账户启动基于该 AMI 的新实例。最后,在目标账户上创建您自己的 AMI 副本,以在其他账户上使用此副本或作为备份使用。

解决方法

注意:以下步骤仅适用于使用未加密的 Amazon Elastic Block Store (Amazon EBS) 卷的实例。

  1. 从您要用作源账户的实例中创建自定义 AMI。务必在 AMI 中包含所有必要的 EBS 数据卷。确保 AMI 没有静态 IP 配置,因为这可能会导致连接问题。 有关说明,请参阅从正在运行的实例创建 Windows AMI从实例创建 Linux AMI
    注意实例存储卷中存储的数据不会保留在 AMI 中,也不会保留在您从 AMI 启动的实例的实例存储卷中。

  2. 使用 Amazon EC2 控制台或 AWS 命令行界面 (AWS CLI) 与目标账户共享 AMI。有关说明,请参阅 Windows 实例 用户指南 – 将 AMI 与特定 AWS 账户用户指南(适用于 Linux 实例)– 将 AMI 与特定 AWS 账户共享

  3. 从目标账户中,使用 EC2 控制台或 AWS CLI 查找 AMI

  4. 在目标账户上从共享 AMI 启动新实例。要从前一个账户中导入密钥对,请参阅“将您自己的公有密钥导入 Amazon EC2”。
    注意:对于 Amazon Virtual Private Cloud (Amazon VPC) 实例,除非启动期间进行了明确设置,否则新账户中的私有 IP 地址将会不同。

  5. 从目标账户实例中创建自定义 AMI。建议使用此副本以避免在源账户中取消注册原始的共享 AMI 后发生混乱。

  6. 在您不需要从中运行任何实例时在源账户上取消注册 AMI。有关如何终止正在运行的实例及删除关联的快照的信息,请参阅清理由 Amazon EBS 支持的 AMI

注意:如果您从账户 A 向账户 B 共享了 AMI,然后又从账户 A 取消注册了该 AMI,则您将无法在账户 B 中从该 AMI 启动新的实例。您可以选择保留在账户 A 中注册该 AMI,以便以后能够从中启动新的实例。您也可以使用以下任意一种变通方法,以便您可以取消注册 AMI 并同时保留启动新实例的能力:

  • 在账户 B 中从共享 AMI 启动新实例,然后在账户 A 中取消注册该 AMI。在原始账户中取消注册 AMI 不会影响从共享 AMI 启动的实例。如果您在取消注册 AMI 后需要启动新实例,您可以从其中的一个新实例创建新的 AMI。
  • 在账户 B 中将该 AMI 复制到同一区域或不同区域,这不仅可让您保留原始 AMI,而且还可让您在账户 B 中不使用原始 AMI 的情况下创建备份。