ECS Capacity providers best practices

0

I am researching best practices when implementing Capacity Providers for ECS Clusters. One of the AWS reference videos recommends the usage of one Auto-Scaling Group / Capacity Provider per AZ. What is the main benefit of this recommendation other than distributing tasks at the capacity provider level ? Are there any other best practices to be aware of when implementing Capacity Providers ?

AWS
已提問 2 年前檢視次數 1250 次
1 個回答
1
已接受的答案

When you define an AutoScaling group, given that you can choose the subnets in which the group will evolve, it will ipso facto define which AZs you will be running into.

If you create an ASG which uses Spot instances, given that the spot price of the instances varies based on the AZ, this will allow you to have a single service span across all defined AZs, given that 1 Capacity Provider = 1 ASG = 1 Zone.

If you have implemented the logic for an ASG with spot, doing the same logic but for ASG without spot is very straight forward. Then you simply change the base value for your service to favor one or the other (spot vs non spot).

Remember though that you cannot mix FARGATE capacity providers with ASG ones for same service. Mostly, out of features being available on EC2 which won't be on FARGATE (i.e. elevated access, kernel features, etc.) which are defined at the task definition level.

One could use a Launch Template and SpotFleet with overrides for each AZ and per instance types, but then the auto-scaling of the required instances in that fleet must be implemented by the user, whereas, the scaling of the nodes for a capacity provider is driven by ECS directly, so Capacity Providers with ASG using Spot is much more hands-off and managed service.

profile picture
已回答 2 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南