【发布时间】:2016-02-05 03:46:59
【问题描述】:
我在我的 CloudFormation 模板中指定了一个带有动态子网的 Spot 队列和一个(按需)EC2 实例,如下所示:
"Resources": {
"myInstance": {
"Type": "AWS::EC2::Instance",
"Properties": {
...
}
},
"myFleet": {
"Type": "AWS::EC2::SpotFleet",
"Properties" : {
"SpotFleetRequestConfigData" : {
...
"LaunchSpecifications": [
{
...
"SubnetId": "subnet-1a1a1a, subnet-2b2b2b, subnet-3c3c3c"
}
]
}
}
}
}
我的每个子网都位于不同的可用区中,例如subnet-1a1a1a 在us-east-1a,subnet-2b2b2b 在us-east-1b,等等
我想将 myInstance 放置在与我的 Spot 队列实例相同的子网中,以避免为跨可用区的网络流量付费,但我不知道如何执行此操作:
"myInstance": {
"Type": "AWS.::EC2::Instance",
"Properties": {
...
"SubnetId": ???? // WHAT GOES HERE?
}
}
看起来我不能在myFleet 上使用Fn::GetAtt,即使我让myInstance 依赖于myFleet,我仍然不确定如何查找 Spot Fleet 的结果位置。
我能做到吗?谢谢!
【问题讨论】:
-
您需要这个单一实例的原因是什么?
-
这都是集群系统的一部分(不是我设计的);按需实例是主管/经理,而现场车队是一组动态的工人。
-
执行此操作的方法通常是选举过程。您将所有实例作为现场实例启动,并且您有一个选举过程,该过程决定其中哪些现场实例将充当主实例。其余的充当家属。
-
我同意,但这不是这个软件的工作方式,也不是我可以控制的。因此我的问题。 :)
标签: amazon-web-services amazon-ec2 amazon-cloudformation