是否可以用不同的 AMI 替换 EC2 实例上的 AMI?

Is it possible to replace the AMI on an EC2 instance with a different AMI?

我是 运行 具有 LAMP 堆栈和 Laravel 的 EC2 AMI 实例。 我需要更新我的 LAMP 堆栈版本以及 Laravel 版本。 我正在考虑 运行 一个新的 EC2 实例作为更新过程的沙箱,并安装一个全新的 LAMP 堆栈 + Laravel,然后对我的 Laravel 代码库进行更改使我的所有代码都适用于新更新。 然后我可以从这个新实例导出 AMI 并用新实例替换我已经 运行 EC2 的 AMI 吗?这样我就不需要要求我的客户和他们的客户更改 IP 地址等任何内容。 我不得不提到我对所有这些都不熟悉,所以请教我最好的方法。 谢谢!

答案是您无法替换现有 EC2 实例的 AMI。但是,您可以用基本上相同的新卷替换根卷。该新根卷可以来自另一个 EC2 实例。我只是重复了这些步骤来验证这是否真的可以完成。

  • 创建第二个系统的根卷的快照。
  • 将快照复制到与第一个系统相同的 AZ。
  • 从快照创建新卷。
  • 分离旧的根卷。首先标记以防出现故障。
  • 附加新的根卷。
  • 启动实例并验证一切。

[更新]

我只是重复了一遍这些步骤,但这次我在快照复制期间启用了加密。这是现在加密 EC2 实例根卷的另一种方法。另一种方法是在启用加密的同时复制现有的 AMI,但第二种方法是创建新实例。