You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用aws ec2 run-instances创建Spot实例,如何避免被AWS终止后自动重启?

解决Spot实例被AWS终止后自动重启的问题

Spot实例被AWS终止后自动重启,通常是两种情况导致的,对应解决方法如下:

1. 实例属于Auto Scaling组(ASG)

如果你的Spot实例是Auto Scaling组的一部分——哪怕是用run-instances创建后手动加入ASG的——ASG会自动维持设定的实例数量,终止的实例会被立刻替换。要停止这种自动重启:

  • 降低ASG的期望容量到目标值(比如设为0,就不会再启动新实例)
  • 或者直接将该实例从ASG中移除

用AWS CLI调整期望容量的命令:

aws autoscaling update-auto-scaling-group --auto-scaling-group-name YOUR_ASG_NAME --desired-capacity 0

2. 单独创建的Spot实例(未加入ASG)

如果是单独用run-instances创建的Spot实例,自动重启大概率是因为开启了实例恢复功能(AWS会在实例因硬件故障等问题终止后自动恢复)。要关闭这个功能:

aws ec2 modify-instance-attribute --instance-id YOUR_INSTANCE_ID --instance-recovery disabled

另外,创建Spot实例时可以直接指定禁用实例恢复,从根源避免自动重启:

aws ec2 run-instances \
  --image-id YOUR_AMI_ID \
  --instance-type YOUR_INSTANCE_TYPE \
  --spot-price "YOUR_SPOT_PRICE" \
  --instance-market-options '{"MarketType": "spot", "SpotOptions": {"SpotInstanceType": "one-time", "InstanceRecovery": "disabled"}}' \
  # 加上你的其他参数,比如密钥对、安全组等

这里SpotInstanceType=one-time指定该Spot实例是一次性的,中断后会被终止且不会重新请求;如果用persistent类型,默认可能会尝试重新请求实例,但一般不会自动重启,除非搭配了ASG。

额外注意

如果实例开启了终止保护,AWS无法正常终止实例,但如果是手动终止后出现异常重启,可先关闭终止保护:

aws ec2 modify-instance-attribute --instance-id YOUR_INSTANCE_ID --no-disable-api-termination

内容的提问来源于stack exchange,提问作者AJ222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:20:33