ECS Fargate Spot i CloudFormation

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

 

Comments are closed.