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. 😉