如何将错误配置的 EC2 实例从专用租赁移回共享租赁?

如何将错误配置的 EC2 实例从专用租赁移回共享租赁?

一位朋友意外地将 EC2 实例配置为使用“专用”租赁,没有意识到它实际上并没有提供专用服务器,并且惊讶地发现它每小时要额外花费 2 美元,所以我们现在正试图解决这个问题。我们想将其更改为使用默认的“共享”租赁,而不是无缘无故地每月花费 1400 美元。

问题是,这显然是一个单向操作。根据AWS EC2 用户指南,您可以关闭一个实例并将其“共享”租赁更改为“专用”,但一旦启动就无法撤消它:

启动实例后,更改其租赁有一些限制。

  • 启动实例后,您无法将其租赁从默认更改为专用或托管。
  • 启动实例后,您无法将其租赁从专用或主机更改为默认。

确实,控制台不提供将租户更改回“默认”的选项。如果您关闭实例并ec2 modify-instance-placement从 CLI 使用,如下所示:

aws ec2 modify-instance-placement \
    --instance-id i-0e6ddf6187EXAMPLE \
    --tenancy default

它导致错误:“调用ModifyInstancePlacement 操作时发生错误(InvalidTenancy):Tenancy 的值‘default’无效。”

另一种方法是启动具有正确租户的新实例,但使用当前实例的某种快照并重新使用旧实例的 EBS 卷。我终其一生都无法弄清楚如何在 AWS 控制台中执行此操作,而且我不确定我拼凑起来的脚本是否能完成这项工作。

无论如何,我们希望撤消这个错误的配置,并最终得到一个与当前实例完全相同的运行实例,除了共享(默认)租赁。该实例已备份,它运行 Windows Server 2012 和 SQL Server,有一个公共弹性 IP、两个 EBS 卷,并且允许短暂停机。快速安全地完成此操作的最佳方法是什么?提前感谢您的建议。

答案1

创建卷的快照,从中创建 AMI,然后启动新实例。文档是这里对于 Linux,这里对于 Windows。我会复制这些步骤,但这是毫无意义的重复,因为 AWS 文档维护良好且定期更新。

答案2

2022 年更新:

当实例处于停止状态时。使用以下命令通过 CLI 更改租赁有效。

    aws ec2 modify-instance-placement \
    --instance-id i-0e6ddf6187EXAMPLE \
    --tenancy default

相关内容