Nathan Peck
Nathan Peck
Senior Developer Advocate for Generative AI at Amazon Web Services
Jun 22, 2022 7 min read

Migrating Fargate service quotas to vCPU-based quotas

Official article link: https://aws.amazon.com/blogs/containers/migrating-fargate-service-quotas-to-vcpu-based-quotas/

Note: The dates in the migration timeline have been updated as of August 30, 2022

Since the launch of AWS Fargate in 2017, we have steadily increased the quota on various concurrent Amazon Elastic Container Service (Amazon ECS) tasks and Amazon Elastic Kubernetes Service (Amazon EKS) pods that can be launched:

  • 2017: 20 on-demand tasks
  • 2018: 50 on-demand tasks
  • 2019: 100 on-demand tasks and pods; 250 spot tasks
  • 2020: 500 on-demand tasks and pods; 500 spot tasks
  • 2021: 1,000 on-demand tasks and pods; 1,000 spot tasks

These quotas are soft limits that can be increased using the Service Quotas console, or by opening an AWS Support ticket. However, we want to ensure that the Fargate experience is seamless. Therefore, it is once again time to adjust the Fargate service quotas to keep up with growing customer expectations. We are also announcing a more fundamental change to how the quotas work.

Over the past five years, quotas have been based on the total number of concurrent Amazon ECS tasks and Amazon EKS pods running at a given time. However, Fargate offers various task and pod sizes, from 0.25 vCPU per task/pod up to four vCPUs per task/pod. Additionally, many customers have asked for even larger task sizes for Fargate on our public roadmap. A quota that enforces an absolute task and pod count of 1,000 tasks and pods no longer makes sense given the wide range of task and pod sizes. If you are launching the 0.25 vCPU task size, then the task count limit of 1,000 tasks only allows you to launch 250 vCPUs. Meanwhile, someone launching 4 vCPU tasks can launch up to 4,000 vCPUs. So, the real amount of computing power available to you varies widely based on how you choose to size your tasks and pods.

We want to make Fargate as flexible as possible for you, so this year we will migrate every AWS account to new Fargate quotas that are based on the total number of concurrent vCPUs you are requesting. For example, with new vCPU-based quotas the following scenarios all consume 4 vCPU out of your vCPU based quota: 16 tasks and pods at the 0.25 vCPU task/pod size, 4 tasks and pods at the 1 vCPU task/pod size, or 1 task or pod at the 4 vCPU task/pod size.

This change will be implemented without any impact to your running workloads. However, the total number of tasks and pods you can launch may increase based on the task and pod configuration you are using. Your new vCPU-based quotas can be viewed on the Service Quotas console. Fargate vCPU-based quotas can also be found in the following table.

Quota per region (Up to) New vCPU-based quota Adjustable
Fargate on-demand vCPU resource count 4,000 vCPUs Yes
Fargate spot vCPU resource count 4,000 vCPUs Yes

If your AWS account was at the previous quota of 1,000 tasks and pods, then the new quota of 4,000 on-demand vCPUs still allows you to launch up to 1,000 on-demand tasks and pods at the 4 vCPU task/pod configuration. However, if you are using the 0.25 vCPU task/pod configuration, you can now launch up to 16,000 on-demand tasks and pods.

If you previously requested a quota increase to launch more than 1,000 Fargate tasks and pods, then this quota migration process will dynamically adjust to your increased task and pod count quota. You will be given a new vCPU quota to launch at least the same number of tasks and pods that you currently can, based on the size of the tasks and pods you are currently running.

Similar to task and pod count quotas, new AWS accounts may initially receive a lower vCPU limit that can automatically increase over time, up to the 4,000 vCPU soft limit based on your AWS account usage. As always, Fargate limits are adjustable. You can request a limit increase by submitting an AWS Support ticket or by using the Service Quota console if your Fargate vCPU quota is preventing you from launching the needed amount of tasks and pods.

Test the new quotas ahead of time

The following timeline describes the transitional rollout for this quota change:

  • Phase 1: Starting 9/8 – Customers can now opt in to using the new vCPU-based quotas ahead of migration. By opting in, customer’s account will be governed by vCPU-based quotas rather than the previous task- and pod-count–based quotas. Task and pod count quotas remain the default for accounts that don’t opt in.
  • Phase 2: Beginning 10/3 and ending by 10/21 – During this period all AWS accounts will be automatically migrated to the new vCPU-based quota with no action required. To delay this migration, customer accounts can opt out ahead of time.
  • Phase 3: Beginning 11/1 and ending by 11/15 – The opt-out period ends and all accounts that had opted out will be permanently transitioned over to the new vCPU-based quota. The previous task- and pod-count–based quota is no longer available starting 11/16.

During phases one and two you can adjust which Fargate quota is active on your account using one of two techniques:

  • PutAccountSettingDefaultAPI – This API allows Amazon ECS customers to seamlessly adjust which quota is in effect: either a vCPU quota or an absolute task count quota.
  • AWS Support ticket – Amazon ECS and EKS customers can create a case regarding “Service Limit Increase” and select Fargate account opt-in or opt-out into vCPU limits. During the transitional period, you will see a task and pod count quota and a vCPU quota in the Service Quotas dashboard; however, only one quota is in effect at a time. If you opt in to vCPU quotas early, or are automatically migrated to vCPU quotas, then you will see the task and pod count quotas’ applied limit appear as zero in the Service Quotas console. Only the vCPU quota is in effect at this point. If you opt out during the transitional period, you will see your task and pod count quotas’ applied value restored, confirming that the task and pod count quota is in effect.

The new quotas will be set so that you can continue running at least the same-size workload. However, you may want to test the new quotas ahead of time in a few specific cases:

  • If you currently have alarms set up based on your Service Quotas usage, you will need to recreate these alarms because the new quota has its own new metric. The previous task and pod count quotas will no longer be relevant after you are migrated to vCPU limits, and the old metrics will be replaced completely when the transitional period ends. Therefore, any alarms you created on task and pod count metrics will need to be recreated based on the new vCPU metrics.
  • If you are using automated code to set up child AWS accounts, and you are calling Service Quotas APIs as part of the account provisioning process, then you will need to adjust which Fargate quota your code is interacting with.
  • If you are implementing logic that watches for specific Fargate error messages, you will observe two new error messages when reaching your account’s vCPU-based quota: “You’ve reached the limit on the number of vCPUs you can run concurrently” or “You’ve reached the limit on the number of vCPUs you can run as spot tasks concurrently.”

Conclusion

This exciting update to Fargate will ensure that you can access a fair share of serverless container compute, no matter which task or pod size you use. Additionally, this change is necessary groundwork to unlock new Fargate options, like even larger tasks and pods.

For more information, please read the AWS Fargate FAQs.