有没有办法在竞价型实例收到终止请求时创建映像 (AMI)?



在竞价型实例终止之前 - 我想开始创建实例的图像。

我进行了测试,AWS 在关闭完成之前等待映像生成完成。

我还看到这可能有助于轻松访问终止信息,但尚未在我的实例上看到它:

wget -q -O - http://169.254.169.254/latest/meta-data/spot/termination-time

是的,您应该能够使用终止通知来触发 AMI 的创建。AMI 创建过程不会阻止实例终止,但实例终止不应影响已启动的 AMI 创建。

但是,我想建议你不要这样做。

相反,您应该创建一个不关心故障的应用程序体系结构。您不应尝试保存实例的内容,而应编写系统代码,使其即使实例终止也能成功工作。

执行此操作的最佳方法是将所有数据和状态存储在实例外部,例如在数据库、Amazon S3 或 Amazon SQS 队列中。然后,如果实例终止并稍后重新启动,它可以恢复其状态并从最后一个"保存点"继续运行。

这很像计算机断电的情况。当下一次打开时,它应该能够再次成功启动,恢复它正在做的事情并继续工作。

因此,尽量避免"旧世界"考虑将所有内容保存在磁盘上。相反,请将数据存储在实例发生故障或终止后仍能幸存下来的位置。

此外,创建 AMI 还会复制整个操作系统和应用程序安装。对于简单地恢复应用程序状态和数据来说,这有点矫枉过正。请务必从已安装所有内容的 AMI 启动实例,但不要将 AMI 视为"备份"——相反,它们是包含运行或安装应用程序所需的一切的黄金映像

我认为处理 AWS 竞价型实例终止通知正是我想要的。还没有测试过。

最新更新