Before we deploy tasks on ECS Fargate, let us first add Fargate capacity providers to the ECS cluster. Unlike with EC2 Auto Scaling Groups
the Capacity Providers
FARGATE_SPOT are already predefined by default, so the only thing we need to do is attach them
to our cluster running the following command.
aws ecs put-cluster-capacity-providers \ --cluster EcsSpotWorkshop \ --capacity-providers FARGATE FARGATE_SPOT CP-OD CP-SPOT \ --default-capacity-provider-strategy capacityProvider=FARGATE,weight=1 capacityProvider=FARGATE_SPOT,weight=1 \ --region $AWS_REGION
The command above does not only insert the two capacity providers but has also modified the cluster default capacity provider strategy.
In this case we do set both weights to 1. However if you run the command
aws ecs describe-clusters --cluster EcsSpotWorkshop you
will see how the service
ec2-service-split still holds the initial capacity provider strategy.
The strategy sets a weight of 1 both FARGATE and FARGATE_SPOT as the default capacity provider strategy. That means for equal distribution of tasks on FARGATE and FARGATE_SPOT. The ECS cluster should now contain 4 capacity providers i.e. CP-OD, CP-SPOT, FARGATE and FARGATE_SPOT.