gpt4 book ai didi

amazon-web-services - 在 AWS CloudFormation 模板中,如何将 EC2 实例放置在 Spot 队列确定的子网中?

转载 作者:行者123 更新时间:2023-12-03 07:46:24 25 4
gpt4 key购买 nike

我在 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 放置在与我的现货队列实例相同的子网中,以避免为跨可用区的网络流量付费,但我不知道如何操作这样做:

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

看起来我无法在 myFleet 上使用 Fn::GetAtt,即使我使 myInstance 依赖于 myFleet,我仍然不知道如何查找 Spot 舰队的放置结果。

我能完成这个任务吗?谢谢!

最佳答案

在您的 Spot 队列配置中,如果您执行以下操作:

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

然后,您将告诉 Spot 队列将 Spot 实例放置在这三个子网中的任意中。竞价型实例有可能同时位于所有 3 个子网中。

由于您只有一个 EC2 实例,因此无法保证您的 EC2 实例与所有 Spot 实例位于同一子网中。

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

所以你有一个选择:

  1. 为 EC2 实例指定三个子网之一,这样,该实例(希望)将与某些现货队列位于同一可用区,或者
  2. 将您的 Spot 队列减少到单个子网

关于amazon-web-services - 在 AWS CloudFormation 模板中,如何将 EC2 实例放置在 Spot 队列确定的子网中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35209025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com