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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[service] [request]: Fargate Spot failover to Fargate #852

Open
raags opened this issue Apr 23, 2020 · 8 comments
Open

[service] [request]: Fargate Spot failover to Fargate #852

raags opened this issue Apr 23, 2020 · 8 comments
Labels
Proposed Community submitted issue

Comments

@raags
Copy link

raags commented Apr 23, 2020

Community Note

  • Please vote on this issue by adding a 馃憤 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Tell us about your request
What do you want us to build?

Right now the capacityProvider strategy allows spreading tasks across Fargate and Fargate Spot launch types (and provide weightage for each type). However, if spot capacity is unavailable, the spot tasks are just not lauched, while fargate count is maintained.

There should be fall-back option, where if spot capacity is unavailable, it should fall back to using fargate launch type.

Which service(s) is this request for?
This could be Fargate, ECS, EKS, ECR

ECS, Fargate

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
What outcome are you trying to achieve, ultimately, and why is it hard/impossible to do right now? What is the impact of not having this problem solved? The more details you can provide, the better we'll be able to understand and solve the problem.

This is the requirement it should satisfy:

Launch 4 ECS tasks with launch type fargate spot, but if spot capacity is not available, fall back to normal fargate.

Are you currently working around this issue?
How are you currently solving this problem?

Not able to solve it.

Additional context
Anything else we should know?

Attachments
If you think you might have additional information that you'd like to include via an attachment, please do - we'll take a look. (Remember to remove any personally-identifiable information.)

@raags raags added the Proposed Community submitted issue label Apr 23, 2020
@coultn
Copy link

coultn commented Apr 23, 2020

Question: are the tasks you are launching business critical functions for which you need high uptime?

@raags
Copy link
Author

raags commented Apr 24, 2020

Question: are the tasks you are launching business critical functions for which you need high uptime?

They are business-critical, but not time-critical, ie. they can be down for a short duration, say 5 mins.

@coultn
Copy link

coultn commented Apr 24, 2020

Question: are the tasks you are launching business critical functions for which you need high uptime?

They are business-critical, but not time-critical, ie. they can be down for a short duration, say 5 mins.

Business-critical applications that can't tolerate extended task interruptions are not a good fit for running entirely on Fargate Spot.

@raags
Copy link
Author

raags commented Apr 25, 2020

That is the reason for this feature request. If fargate spot is unavailable (i.e. the task gets interrupted, which is fine) I would like an option for it to fall-back to normal fargate. This is similar to EMR spot fleet, where if a spot request is not fulfilled in a set time, an on-demand instance is provisioned instead.

@je-al
Copy link

je-al commented May 28, 2020

+1, we run business-critical workloads this way, leveraging spot(inst)'s EGs for ECS/EC2, they fallback automatically. This not being available means we'd need to hack it on our own in order use Fargate.

@je-al
Copy link

je-al commented May 29, 2020

Just found #773 looking for this issue, seems this would be a duplicate (?)

@misterjoshua
Copy link

misterjoshua commented Mar 17, 2021

My use case is low cost web hosting. The tasks are fine being interrupted so long as when spot capacity runs out there's backup capacity available from on demand.

I have been using a workaround for now. I run two services - a primary with only spot capacity and a fallback with only on demand capacity. When the primary emits a task placement error a lambda sets the desired count on the fallback service. When the primary emits a steady state event a lambda sets the fallback desired count to zero.

@harishsambasivam
Copy link

If I keep the ratio of Spot:OnDemand as 4:1, will it fallback to fargate when spot is not available at the time of deployment?

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

No branches or pull requests

5 participants