【问题标题】:aws cloudformation template for spot request in ec2 instance用于 ec2 实例中的现场请求的 aws cloudformation 模板
【发布时间】:2021-12-08 08:16:45
【问题描述】:

在 AWS 中预置 ec2 实例时,我需要一个示例云形成模板来添加现场请求。我曾尝试使用控制台来预置现场实例,但我找不到在 ec2 中添加现场请求的任何确切模板

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation spot-instances


    【解决方案1】:

    您需要创建 Spot-fleet 资源。

    例子:

    "SpotFleet": {
      "Type": "AWS::EC2::SpotFleet",
      "Properties": {
        "SpotFleetRequestConfigData": {
         "IamFleetRole": { "Fn::GetAtt": [ "IAMFleetRole", "Arn"] },
         "SpotPrice": "1000",
         "TargetCapacity": { "Ref": "TargetCapacity" },
         "LaunchSpecifications": [
         {
             "EbsOptimized": "false",
             "InstanceType": { "Ref": "InstanceType" },
             "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" },
                          { "Fn::FindInMap": [ "AWSInstanceType2Arch", { "Ref": "InstanceType" }, "Arch" ] }
                         ]},
              "SubnetId": { "Ref": "Subnet1" },
              "WeightedCapacity": "8"
         },
         {
             "EbsOptimized": "true",
             "InstanceType": { "Ref": "InstanceType" },
             "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" },
                          { "Fn::FindInMap": [ "AWSInstanceType2Arch", { "Ref": "InstanceType" }, "Arch" ] }
                         ]},
              "Monitoring": { "Enabled": "true" },
              "SecurityGroups": [ { "GroupId": { "Fn::GetAtt": [ "SG0", "GroupId" ] } } ],
              "SubnetId": { "Ref": "Subnet0" },
              "IamInstanceProfile": { "Arn": { "Fn::GetAtt": [ "RootInstanceProfile", "Arn" ] } },
              "WeightedCapacity": "8"
             }
             ]
         }
       }
    }
    

    更多细节可以在这个链接中找到: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html

    【讨论】:

    • 谢谢!但在 azure 中,我们可以使用 3 个参数制作现场实例,例如
    • "priority": "Spot", "evictionPolicy": "Deallocate", "billingProfile": { "maxPrice": -1 }docs.microsoft.com/en-us/azure/virtual-machines/linux/… 在aws中我们可以做到吗?跨度>
    • 在 aws 中是否有 ec2 车队选项我可能知道优势docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/…
    • @aryabraj,我猜这 3 个是可以添加的附加属性。完整的 json 示例格式在这 3 个参数下方的同一链接中给出(大一个!!)。我想您需要该示例格式才能在 azure 中创建现场实例。此外,这一切都取决于您使用的云平台。云平台的模板会与其他平台不同。
    • 从这个请求中我得到了作为队列的 Spot 请求,我需要创建 Spot 实例意味着 Spot 请求类型作为实例,通过控制台我们可以在配置实例时启用 Spot 请求类型,同样的方式有任何cloudformation 模板中可用的参数
    【解决方案2】:

    您可以创建 SpotFleet 资源,这是一个示例

    SpotFleet:
     Type: AWS::EC2::SpotFleet
     Properties:
       SpotFleetRequestConfigData:
         IamFleetRole: !GetAtt [IAMFleetRole, Arn]
         SpotPrice: '1000'
         TargetCapacity:
           Ref: TargetCapacity
         LaunchSpecifications:
         - EbsOptimized: 'false'
           InstanceType:
             Ref: InstanceType
         ImageId:
           Fn::FindInMap:
           - AWSRegionArch2AMI
           - Ref: AWS::Region
           - Fn::FindInMap:
             - AWSInstanceType2Arch
             - Ref: InstanceType
             - Arch
         SubnetId:
           Ref: Subnet1
         WeightedCapacity: '8'
       - EbsOptimized: 'true'
         InstanceType:
           Ref: InstanceType
         ImageId:
           Fn::FindInMap:
           - AWSRegionArch2AMI
           - Ref: AWS::Region
           - Fn::FindInMap:
           - AWSInstanceType2Arch
           - Ref: InstanceType
           - Arch
         Monitoring:
           Enabled: 'true'
           SecurityGroups:
            - GroupId:
                Fn::GetAtt:
                - SG0
                - GroupId
          SubnetId:
             Ref: Subnet0
          IamInstanceProfile:
            Arn:
            Fn::GetAtt:
            - RootInstanceProfile
            - Arn
          WeightedCapacity: '8'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-03
      • 2017-04-16
      • 2019-12-06
      • 2013-02-22
      • 2017-05-13
      • 2018-10-12
      • 2021-03-21
      • 1970-01-01
      相关资源
      最近更新 更多