aws / containers-roadmap

This is the public roadmap for AWS container services (ECS, ECR, Fargate, and EKS).
https://aws.amazon.com/about-aws/whats-new/containers/
Other
5.17k stars 313 forks source link

[EKS] [request]: Support Instance Market Options of Spot instances for managed node groups #1575

Open 0xlen opened 2 years ago

0xlen commented 2 years ago

Community Note

Tell us about your request Managed node group can support spot instance market option for setting max price.

Which service(s) is this request for? EKS

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard? As EKS managed node groups supports Spot instance feature, by default it is using optimal Spot max price to ensure capacity provisioning and bid with low cost. But I am wondering if I can define lower Spot max price in managed node group or my launch template, which can offer cost-effective option to run flexible jobs (e.g. batch processing) that can start/stop anytime.

However, right now, it is not supported and the selection can be blocked with following message if choose launch template that defined maximum price when creating managed node group:

Instance market options (EC2 Spot) are not supported in launch templates used with Managed Node Groups.

Screenshot 2021-11-25 at 14 54 33

Are you currently working around this issue? Using self-managed node group

Attachments

(In the advanced detail of the launch template can define maximum price) image

sergeyshevch commented 2 years ago

Or also as a great alternative will be to add ability of allocation strategy configuration on underlying ASG

lwille commented 5 months ago

Is there any other place where once we see the status of this? Or is it just abandoned?

DaazKu commented 3 months ago

Example use case

It is recommended to use alternative instance types when using spot instances. Source https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html image

In our case we use c6i.2xlarge instances.

So to have similar or better performances we can define this:

      capacity_type = "SPOT"
      instance_types = [
        "c6i.2xlarge",
        "c6in.2xlarge",
        "c7i.2xlarge",
      ]

On-Demand Price for US east at the moment:

Without being able to set max price, we can end up paying more than on-demand.