从正在运行的实例与从卷快照创建EC2 AMI映像


22

我想在不停机的情况下备份基于Linux的EC2实例,然后在以后启动新实例。(该实例正在运行Web服务器和Postgres数据库。)

我发现有两种方法可以做到这一点,但是我对它们之间的结果区别感到困惑。

选项1:直接从正在运行的实例创建AMI:

  1. 直接从运行的原始实例创建一个新的AMI。
  2. 从AMI启动新实例

选项2:从快照手动创建AMI:

  1. 从附加到正在运行的原始实例的卷中获取快照
  2. 从快照创建AMI,手动输入架构和内核ID之类的详细信息
  3. 从手动创建的映像启动新实例

现在,令人困惑的是,从实例直接创建AMI时,EC2默认情况下会重新启动实例。带有以下工具提示的复选框“不重新启动”

启用后,Amazon EC2不会在创建映像之前关闭实例。使用此选项时,不能保证创建的映像上的文件系统完整性

这两种方式的结果是否真的有所不同?对我来说,感觉就像我正在手动执行自动向导将执行的相同操作。它生成快照,选择内核ID和体系结构。

为什么一个有警告文本而另一个没有?对正在运行的实例进行快照被认为是相对安全的,并且如果AMI创建在后台创建快照,是否比手工完成快照更危险?

Answers:


13

如果no reboot直接从EC2创建AMI时选择了选项,则它们的作用完全相同。基本上,这会创建可能处于不一致状态的快照。例如,如果在创建快照时执行大量磁盘写入操作,则可能会出现状态不一致的风险。

如果要以“一致”状态创建快照,则必须先关闭实例,然后创建快照,然后重新启动实例。这就是为什么EC2中的AMI创建选项非常有用的原因,因为您不必停止并重新启动。Amazon会处理它,并且您实例上的IP地址也不会更改。(如果停止/重新启动实例,则您的IP地址实际上会更改)

我不太确定为什么直接从卷上拍摄快照时Amazon没有警告,但是从卷的角度来看,正在运行的实例或未运行的实例正在使用该卷都无关紧要(它只关心是附加还是分离对创建快照没有影响)


我同意您应该创建AMI,因为您不想关闭实例。您可以调查可以立即使用的解决方案,以节省时间。我个人使用totalcloud.io来自动化我在AWS上的操作。
Veer Abheek Singh Manhas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.