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 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则