Answers:
如果您只是想让实例在每次运行时都以固定的起点开始,那么您可以:
创建您自己的AMI并每次将其作为实例运行,或者
指定一个用户数据脚本,该脚本将在每次从标准基本AMI启动新实例时按照您的要求安装和配置软件。
如果需要在两次实例运行之间保持状态,则需要将数据保存在实例/ AMI之外的某个位置。例如:
数据可以在S3,SimpleDB,DynamoDB,RDS等上保持最新状态。
您可以指定一个永久的EBS卷,实例在启动时会动态附加并挂载。这可以通过用户数据脚本来完成。
查看ec2-spotter项目在GitHub上。创建它是为了解决您描述的问题。
@mcenzm的答案中描述的问题(第1至第4个问题)是真实的,可以在ec2-spotter中正确处理。
我已经尝试了一段时间,但EC2竞价型实例和附加存储仍然存在许多问题。
sleep 10
说。我不明白为什么AWS控制台显示“分区”作为主要的块设备。也许否认我们在另一个分区上盗版Windows映像?(sda1而非sda)。祝你找到分区表好运。
当前很难从外部控制的角度使用CLI进行附加,这使得难以使用快照进行版本控制。
因此,通常我将... tar.bz2备份到另一个框中,然后在启动时填充“工作区”。这仅对少量数据有用,因此用两个数据量作为新ami的基准是一个好主意。无论如何,竞价型实例确实适合“工作单元”或“可重新启动”的工作,因此,从服务器获取工作的概念已得到很好的确立。鉴于您在极端等待9分钟才能启动,因此您可能不介意格式化(越小越好)磁盘。
EBS仍然很脆弱,您需要为“优化”支付额外的费用。它比尝试在90年代左右上载已完成的工作(实例价格过高)快得多。
我怀疑任何“弹性文件”产品都将改变这一切。
可能的解决方案是使用EBS启动EC2竞价型实例,然后在不需要时停止EC2实例,然后再次启动,因为新功能将重新附加EBS。