如何判断AWS Fargate Spot实例可用性及Spot不可用时的启动行为
Fargate Spot实例不可用时的启动行为
当你仅指定FARGATE_SPOT作为容量提供者,且Spot实例资源不可用时,调用run_task会直接抛出异常,不会自动启动普通Fargate实例。
这是因为你当前的capacityProviderStrategy只配置了FARGATE_SPOT,没有设置任何备用容量策略。如果想实现Spot资源不足时自动切换到普通Fargate,需要修改策略配置,示例如下:
capacityProviderStrategy=[ { "capacityProvider": "FARGATE_SPOT", "weight": 1, "base": 0 }, { "capacityProvider": "FARGATE", "weight": 1 } ]
这里的weight参数控制调度优先级,当FARGATE_SPOT无法提供资源时,ECS会自动尝试用FARGATE启动任务。如果不配置这类多提供者策略,一旦Spot容量不足,就会收到CapacityProviderNotAvailableException这类错误,导致任务启动失败。
补充说明:这个行为逻辑是ECS服务端的规则,和boto3无关,boto3仅负责调用ECS的API接口。
内容的提问来源于stack exchange,提问作者DilLip_Chowdary
相关产品推荐
相关产品推荐

