将 EBS 卷自动附加到新的 Spot 实例?

Jef*_*eff 14 amazon-ami amazon-ec2 amazon-ebs

我正在试验 EC2 Spot 实例,并且需要在终止之间保留一些数据。现在据我所知,当当前价格高于我的最大值时。投标,将自动终止。我假设我拥有的任何初始化脚本都将在关机时运行,因此我可以在卸载之前将数据推送到 EBS。

我的问题是,一旦价格下降,我如何在新的现货实例上自动安装相同的 EBS 卷,因为它不会有我第一次加载到根卷上的任何初始化脚本?

我是否必须创建自定义 AMI,或者是否有其他方法可以实现?

Eri*_*ond 11

如果您只是希望实例每次运行时都从一个固定的起点开始,那么您可以:

  1. 创建您自己的 AMI 并每次将其作为实例运行,或者

  2. 每次从标准基础 AMI 启动新实例时,指定一个用户数据脚本,用于根据您的规范安装和配置软件。

如果您需要在实例运行之间保持状态,那么您需要将数据保存在实例/AMI 之外的某处。例如:

  1. 数据可以在 S3、SimpleDB、DynamoDB、RDS 等上保持最新。

  2. 您可以指定实例在启动时动态附加和安装的永久 EBS 卷。这可以通过用户数据脚本来完成。

  • @Jeff:是的,我发明了它,流行的 AMI 已经采用了它 :-) http://alestic.com/2009/06/ec2-user-data-scripts (3认同)

Ale*_*x R 5

查看GitHub 上的 ec2-spotter 项目。它是为了解决您描述的问题而创建的。

@mcenzm 的回答中描述的问题(#1 到 #4)是真实的,并且在 ec2-spotter 中得到了正确处理。