在点实例终止之前 - 我想开始创建实例的图像。
我测试了并且AWS在关闭完成之前等待图像生成完成。
我还看到这可以提供对终止信息的轻松访问,但还没有在我的实例上看到它:
wget -q -O - http://169.254.169.254/latest/meta-data/spot/termination-time
我认为Handling AWS Spot Instance Termination Notices正是我想要的。没有测试过。
是的,您应该能够使用终止通知来触发创建AMI。 AMI创建过程不会阻止实例终止,但实例终止不应影响已启动的AMI创建。
但是,我建议你不要这样做。
相反,您应该创建一个不关心失败的应用程序架构。您应该将系统编码为成功运行,而不是尝试保存实例的内容,即使实例已终止。
执行此操作的最佳方法是将所有数据和状态存储在实例外部,例如数据库,Amazon S3或Amazon SQS队列。然后,如果实例终止并稍后再次启动,它可以恢复其状态并继续从最后一个“保存点”开始操作。
这很像计算机断电的情况。当下一次打开时,它应该能够成功再次启动,恢复正在进行的操作并继续工作。
因此,尽量避免“旧世界”考虑将所有内容保存在磁盘上。相反,将数据存储在实例失败或终止后的某个位置。
此外,创建AMI还会复制整个操作系统和应用程序。简单地恢复应用程序状态和数据有点过分。无论如何从安装了所有内容的AMI启动实例,但不要将AMI视为“备份” - 相反,它们是包含运行或安装应用程序所需的所有内容的黄金映像。