Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add AWS EC2 Spot capability #183

Closed
haugenj opened this issue Mar 16, 2020 · 1 comment · Fixed by #188
Closed

Add AWS EC2 Spot capability #183

haugenj opened this issue Mar 16, 2020 · 1 comment · Fixed by #188
Labels

Comments

@haugenj
Copy link
Contributor

haugenj commented Mar 16, 2020

Howdy! 👋

My name's Jason, I work for AWS down in Austin, TX. We would like to add EC2 Spot support to Escalator to expand customers' options when using AWS as the cloud provider. If you're unfamiliar with Spot, it's a different purchasing model for EC2 instances that can give up to a 90% discount rate on instance pricing, with the compromise of possibly being interrupted. Here's some official documentation.

Our proposed design would follow the same path as the current On Demand path, using setASGDesiredSizeOneShot to request instances. To enable Spot we would:

  • Add SpotOptions to the setASGDesiredSizeOneShot method in a similar fashion to the existing OnDemandOptions
  • Add a new parameter to the aws section of the node_groups config called 'lifecycle' with accepted values 'spot' and 'ondemand' to designate the request as a Spot or On Demand request. We would default to using On Demand when lifecycle isn't provided to keep backwards compatibility.
  • Add another new parameter to the aws section called 'instance_types' that takes a list of different instance types (c3.large, m4.medium, etc.). Following the create fleet api, we'll use this as Overrides to the LaunchTemplateConfigs to increase the chances of a successful Spot request. We would keep the single instance type requirement as it is currently.
  • Add tests as necessary to cover all new Spot use cases

Let me know what you think, we're excited to get working on this!

- Jason

@awprice awprice added AWS Cloud Provider enhancement New feature or request labels Mar 16, 2020
@awprice
Copy link
Member

awprice commented Mar 16, 2020

Thanks for raising this @haugenj! This request sounds perfectly reasonable and we look forward to your PR. +1 on keeping the backwards compatibility and default behaviour the same.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants