繁体   English   中英

在AWS CloudFormation模板中,如何将EC2实例放置在Spot Fleet确定的子网中?

[英]In an AWS CloudFormation template, how can I place an EC2 instance in the subnet determined by a Spot Fleet?

我在CloudFormation模板中指定了具有动态子网和(按需)EC2实例的Spot Fleet,如下所示:

"Resources": {
  "myInstance": {
    "Type": "AWS::EC2::Instance",
    "Properties": {
      ...
    }
  },
  "myFleet": {
    "Type": "AWS::EC2::SpotFleet",
    "Properties" : {
      "SpotFleetRequestConfigData" : {
        ...
        "LaunchSpecifications": [
          {
            ...
            "SubnetId": "subnet-1a1a1a, subnet-2b2b2b, subnet-3c3c3c"
          }
        ]
      }
    }
  }
}

我的每个子网都在不同subnet-1a1a1a区中,例如, subnet-1a1a1aus-east-1asubnet-2b2b2bus-east-1b ,等等。

我想将myInstance myInstance车队实例放置在同一子网中 ,以避免为跨越可用区的网络流量付费,但是我不确定如何做到这一点:

"myInstance": {
  "Type": "AWS.::EC2::Instance",
  "Properties": {
    ...
    "SubnetId": ???? // WHAT GOES HERE?
  }
}

它看起来并不像我可以用Fn::GetAttmyFleet ,即使我做myInstance取决于myFleet ,我仍然不知道如何来查找现货舰队的位置的结果。

我能做到吗? 谢谢!

在现货机队配置中,如果执行以下操作:

"SubnetId": "subnet-1a1a1a, subnet-2b2b2b, subnet-3c3c3c"

那么您要告诉竞价型队列将竞价型实例放置在这三个子网中的任何一个中。 竞价型实例可能同时位于所有3个子网中。

由于您只有一个EC2实例,因此不能保证您的EC2实例与所有竞价型实例位于同一子网中。

您的EC2实例只能存在于一个子网中,您必须指定该子网,或让AWS为您决定。

因此,您可以选择:

  1. 指定EC2实例的三个子网之一,这样,该实例(希望)将与某些现货设备处于同一AZ,或者
  2. 将您的现货设备减少到一个子网

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM