ECS Fargate Spot i CloudFormation
Od kilku dni można tworzyć klastry ECS w modelu Fargate za pomocą CloudFormation. Do definicji klastra dodajemy pole CapacityProviders i jako listę wartości FARGATE i FARGATE_SPOT. Nie musimy tworzyć samodzielnie tych providerów. Są dostępne wszędzie tam, gdzie dostępny jest Fargate.
ECSCluster:
Type: AWS::ECS::Cluster
Properties:
ClusterName: Fargate-Cluster
CapacityProviders:
- FARGATE
- FARGATE_SPOT
Tags:
- Key: Name
Value: Fargate-Cluster
W definicji serwisu możemy określić w jakich proporcjach będą uruchamiane taski na poszczególnych zasobach
Service:
Type: AWS::ECS::Service
...
DesiredCount: 5
CapacityProviderStrategy:
- CapacityProvider: FARGATE
Weight: 1
- CapacityProvider: FARGATE_SPOT
Weight: 4
...
W powyższym przykładzie 80% tasków powinno wylądować na „instancjach” Spot, a reszta w On-Demand.
Template całego stacka Cloudformation, który możecie sami wdrożyć jest oczywiście dostępny na GitHub. Po jego wdrożeniu będą dostępne dwa Capacity Providers.

a większość tasków wchodzących w skład serwisu będzie uruchomione w modelu Spot.

Jeszcze dowód, że wszystko działa. 😉
