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

上次更新日期:2021 年 4 月 26 日

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

简短描述

无法在 AWS 账户之间转移现有的实例或 AMI。但您可以将 EC2 映像从一个 AWS 账户手动迁移到另一个账户。

解决方法

注意:以下步骤仅适用于具有未加密 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 实例用户指南 – 与特定 AWS 账户共享 AMI
    Linux 实例用户指南 – 与特定 AWS 账户共享 AMI
    注意:如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本
  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 的情况下创建备份。