保持用户文件系统在 AWS EC2 实例间持久

保持用户文件系统在 AWS EC2 实例间持久

我注意到,在亚马逊推出新AWS EC2 竞价实例自动启动(我已打开该选项),文件系统状态不是当前状态(表示上一个 Spot 实例启动之前的最后状态自动关机由于当前价格超出了我的设定限额)。我猜新启动的竞价实例文件系统的初始状态是基于AMI我使用的自动启动竞价实例。我有以下问题:

是否有可能,如果可以,可以做些什么来自动保存自动关闭前文件系统的状态,并在自动启动新的 Spot 实例时恢复它?如果不可能,至少是否可以自动下载和运行 shell 脚本,使系统进入所需状态(通过 自动更新系统apt-get、通过 获取最新源代码git等)?

谢谢你!

答案1

您可以使用持久性 EBS 根卷启动您的竞价型实例(或在启动后附加单独的 EBS 卷)。您的竞价型实例终止后,EBS 卷仍将保留。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-spot-instances-applications-ebs.html

答案2

竞价型实例(以及所有 EC2)都针对无需维护状态的用例进行了优化。配置竞价型实例请求时,您提供了一个 AMI ID,每个实例都使用它来启动。正如您所发现的,更改不会提交回该 AMI。

如果您确实需要共享文件系统,请在 EC2 中配置一个长期运行的(非现货实例)服务器,并从那里将 NFS 文件系统导出到您的现货实例。

但是,如果您真正需要做的只是在启动时运行一些命令来更新内容并部署代码,那么可以通过在 Spot 实例请求中配置的用户数据文本来完成。只需编写一个 shell 脚本来执行您想要的操作,然后在 Spot 请求(或任何其他 EC2 实例启动配置)中将其作为用户数据提供。实例启动时,该脚本将以 root 身份执行。

相关内容