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

7
我正在运行一个带有LAMP堆栈和Laravel的EC2 AMI实例。 我需要更新我的LAMP堆栈版本以及Laravel版本。
我想运行一个新的EC2实例作为我的沙盒,用于更新过程,并安装全新的LAMP堆栈+ Laravel,然后更改我的Laravel代码库,以使所有代码与新更新配合使用。
那么我可以从这个新实例导出AMI,并将其替换我已经运行的EC2的AMI吗? 这样我就不需要要求我的客户及其客户更改任何内容,例如IP地址。

2
不,替换“AMI”就是创建新服务器的过程。如果IP地址一致性是一个问题,那么你应该使用弹性IP。 - Mark B
1个回答

9
答案是您无法替换现有EC2实例的AMI。但是,您可以用新卷替换根卷,这基本上是相同的操作。该新根卷可以来自另一个EC2实例。我刚刚重复了这些步骤以验证这确实是可行的。
以下是具体步骤:
- 创建第二个系统根卷的快照。 - 将快照复制到与第一个系统相同的可用区。 - 从快照创建新卷。 - 卸载旧根卷。首先进行标记以防万一出现问题。 - 附加新根卷。 - 启动实例并验证所有内容。
[更新]
我刚刚再次重复了这些步骤,但这次在快照复制期间启用了加密。这是EC2实例根卷加密的另一种方法。另一种方法是在启用加密的情况下复制现有AMI,但第二种方法适用于创建新实例。

抱歉,我提到我是AWS的新手,那么AZ是什么意思?如果旧实例有一个新的根卷,它会保留其IP地址吗?从我的客户端的角度来看会发生什么变化?如果我说这基本上意味着我正在使用具有新根卷的旧EC2实例,并且新根卷包含我新更新的LAMP + Laravel和所有新代码,那么我是正确的吗? 谢谢! - Bahman.A
2
可用区 - 这些是 AWS 区域的一部分的数据中心。 - John Hanley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接