保持用户的文件系统在AWS EC2现货实例中保持一致

我注意到,在新的Amazon AWS EC2 现货实例被自动启动(我已经打开了该选项)之后,文件系统的状态不是最新的(表示由于当前价格变化而导致之前的现货实例自动closures之前的最后一个状态超过我的限制)。 我猜新启动的现货实例文件系统的初始状态是基于我用来自动启动现货实例的AMI 。 我有以下问题:

是否有可能,如果可以,可以做些什么,在自动closures之前自动保存文件系统的状态,并在自动启动新的现场实例期间恢复它? 如果这是不可能的,至less可以自动下载和运行shell脚本,使系统达到所需的状态(通过apt-get自动更新系统,通过git获取最新的源代码等)?

谢谢!

您可以使用持久性EBS根卷启动您的专色实例(或者在启动后附加单独的EBS卷)。 EBS卷将在您的现货实例终止后保留。

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

竞价型实例(以及实际上所有的EC2)针对您不需要维护状态的用例进行了优化。 当您configuration您的专色实例请求时,您提供了每个实例用来启动的AMI id。 正如您发现的那样,更改不会被提交回AMI。

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

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