Der*_*son 7 amazon-ec2 amazon-web-services autoscaling
我们有 2 个自动缩放组(一个用于按需实例,一个用于 Spot 实例),它们都设置为静态实例数(最小、最大和期望都相同 - 在我们的例子中为 5)。按需组中的实例保持运行,但由于系统健康检查,点组中的实例经常被终止。在 EC2 管理控制台的 Scaling History 选项卡中为终止的实例显示的消息是:
“在 2014-05-07T18:06:45Z,一个实例因系统健康检查而停止服务。”
我不知道为什么我们的 Spot 实例没有通过健康检查。我们的出价很高,我认为实例不应因现货价格而终止(基于现货定价历史)。我也调整了启动实例的可用区,我看不出有什么区别。当我检查最近终止的实例的系统日志时,我没有看到任何可疑消息。我们为两个组都使用了私有/自定义 AMI,但是当我切换到更通用的 AMI(alestic.com 上列出的“Ubuntu 12.04 LTS Precise EBS 启动”图像 - ami-5db4a934)时,我看到了相同的行为。同样,我们的按需实例保持运行并且不会失败健康检查。我们正在使用“EC2”健康检查类型。
这是我们用来通过 AWS CLI 创建启动配置的命令:
aws autoscaling create-launch-configuration \
--launch-configuration-name [name] \
--image-id ami-5db4a934 \
--key-name [our key] \
--security-groups [our SGs] \
--instance-type m3.xlarge \
--block-device-mappings '[ { "DeviceName": "/dev/sda1", "Ebs": { "VolumeSize": 8 } } ]' \
--spot-price "1.00"
Run Code Online (Sandbox Code Playgroud)
有谁知道这可能是什么,或者我们如何更清楚地了解 Spot 实例未通过健康检查的原因?
Ste*_*pel 11
我们的出价很高,我认为实例不应因现货价格而终止(基于现货定价历史)
Spot 价格争用并不是Amazon EC2 Spot 实例被 AWS 终止的唯一可能原因,另一个值得注意的原因是容量争用:
us-east-1
到目前为止,我遇到的这种情况比其他任何地方都多,而且在最近一个月中,对于新的 m3/c3/i3 实例类型系列(随着时间的推移增加容量的影响是可以理解的),我遇到的频率要高得多。您可以在AWS 管理控制台中或通过 AWS CLI 的describe-spot-instance-requests手动验证 Spot 请求终止的实际原因。对于高级 Spot 实例使用,我建议开始使用投标状态代码跟踪 Spot 请求,并将这些与您的实例终止相关联,以获得最佳操作洞察力。有关更多详细信息,请参阅Spot 请求的生命周期和Spot 投标状态代码参考,特别是 AWS 终止Spot的以下原因:
instance-terminated-by-price
现货价格上涨至高于您的买入价。如果您的请求是持续出价,则流程或生命周期将重新启动,您的出价将再次等待评估。
instance-terminated-no-capacity
实例不再有任何 Spot 容量可用。
instance-terminated-capacity-oversubscribed
您的实例已终止,因为出价等于或高于您的出价的 Spot 请求数量已超过此池中的可用容量。这意味着您的实例被中断,即使 Spot 价格可能没有改变,因为您的出价是 Spot 价格。
instance-terminated-launch-group-constraint
您的启动组中的一个实例已终止,因此不再满足启动组约束。
“在 2014-05-07T18:06:45Z,一个实例因系统健康检查而停止服务。”
此误导性消息只是在Amazon EC2 Spot 实例因现货价格竞争而终止时报告的消息,请参阅 AWS 团队对Auto Scaling Message & Spot Instance Termination的响应:
您是对的,实例因现货定价而终止。
实例在健康检查之前终止,因此它被停止服务,因为它仍然与 AS 组相关联。
虽然我不明白为什么 AWS在这方面还没有设法在Auto Scaling和Amazon EC2之间提出更好的集成,但考虑到这实际上是两个独立的服务时更有意义,所以如果“外部”点市场后端终止了一个 EC2 实例,从 Auto Scaling 的角度来看,它只会变得“不健康” - 这在获取有关 Auto Scaling 启动的实例的信息中有所记录:
- 原因:在 2012-06-01T00:47:51Z,一个实例因系统健康检查而停止服务。描述:终止 EC2 实例:i-88ce28f1
Auto Scaling 通过监控 Auto Scaling 组中实例的健康状态来维护所需的实例数量。当 Auto Scaling 收到实例运行状况不佳或终止的通知时,Auto Scaling 会启动另一个实例来代替运行状况不佳的实例。[...]
注意
Auto Scaling 提供了实例终止的原因,而不是扩展活动的结果。这包括因 Spot 价格超过其出价而被终止的实例。[强调我的]
归档时间: |
|
查看次数: |
7406 次 |
最近记录: |