为什么 ECS CloudFormation 模板创建 EC2 Spot 队列

Why does ECS CloudFormation template create an EC2 Spot Fleet

我使用基本设置在 ECS 中创建了一个集群,除了我为集群使用 1 个按需 t2.micro EC2 实例外,没有关于配置的具体信息。

我想看看究竟创建了什么,并查看了 CloudFormation template 集群创建的内容。

我注意到模板中有 EcsSpotFleet 的配置

EcsSpotFleet:
    Condition: CreateWithSpot
    Type: AWS::EC2::SpotFleet
    Properties:
      SpotFleetRequestConfigData:
        AllocationStrategy: !Ref SpotAllocationStrategy
        IamFleetRole: !Ref IamSpotFleetRoleArn
        TargetCapacity: !Ref AsgMaxSize
        SpotPrice: !If [ CreateWithSpotPrice, !Ref SpotPrice, !Ref 'AWS::NoValue' ]
        TerminateInstancesWithExpiration: true
        LaunchSpecifications: 
....

我想知道为什么要创建这个? 因为我知道 Cluster 实例是使用 ASG + LC 创建的。我唯一的解释是这个队列用于 运行 宁 CloudFormation 堆栈。我在文档中找不到对此的解释,甚至不确定 CloudFormation 堆栈是否需要实例 运行。

p.s。我是 AWS 的新手,对 CloudFormation 也知之甚少。

并非 CloudFormation 中的所有代码都会被执行。它仍然取决于“条件”标志。

AWS 通常使用“条件”

创建一个涵盖大部分用户案例和 enables/disable 部分模板的模板

您可以在此处阅读有关 AWS 文档中条件的更多信息:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html