【发布时间】:2022-01-10 02:48:34
【问题描述】:
我正准备将我的团队转移到 AWS 实例队列。到目前为止,在测试中,它很棒。它通过实例多样化确实有助于解决容量问题。
但是,我预计 AWS 会根据我提供给实例队列模板的类型来选择混合实例。例如,我在模板中将 15 个核心节点定位为 i3.2xlarge 或 r5d.2xlarge。因此,我希望我的队列包含一些 i3.2xlarge 和 r5d.2xlarge 实例的组合。相反,我的车队专门配备 r5d.2xlarge 机器。
也许这种行为是由于默认分配策略,r5d.2xlarge 的供应量确实比 i3.2xlarge 多,这就是没有使用 i3.2xlarge 机器的原因。
但我的问题是:对于实例队列中的核心节点,该核心节点是否可以包含不同类型的实例?
编辑:
我通过 run_job_flow() 使用 python 和 boto3 来创建集群。我正在使用boto3 docs 中描述的模板。
当我运行以下命令时,我的所有核心实例都是相同的实例类型。我尝试将AllocationStrategy 设置为diversified,但收到错误未知参数错误。阅读 boto3 文档后,听起来好像不支持。
那么我该如何调整这个模板,在同一个集群的同一个核心节点上创建不同的实例类型呢?
我在InstanceFleets 列表中提交的核心节点字典看起来像这样(记住一些关键值是变量):
'Name': 'Core Node',
'InstanceFleetType': 'CORE',
'InstanceTypeConfigs': [
{
'EbsConfiguration': {
'EbsBlockDeviceConfigs': [
{
'VolumeSpecification': {
'SizeInGB': core_ebs_volume_gb_size,
'VolumeType': core_ebs_volume_type
},
'VolumesPerInstance': core_ebs_volumes
}
],
'EbsOptimized': True
},
'InstanceType': 'i3.2xlarge',
'WeightedCapacity': 1
},
{
'EbsConfiguration': {
'EbsBlockDeviceConfigs': [
{
'VolumeSpecification': {
'SizeInGB': core_ebs_volume_gb_size,
'VolumeType': core_ebs_volume_type
},
'VolumesPerInstance': core_ebs_volumes
}
],
'EbsOptimized': True
},
'InstanceType': 'r5d.2xlarge',
'WeightedCapacity': 1
},
{
'EbsConfiguration': {
'EbsBlockDeviceConfigs': [
{
'VolumeSpecification': {
'SizeInGB': core_ebs_volume_gb_size,
'VolumeType': core_ebs_volume_type
},
'VolumesPerInstance': core_ebs_volumes
}
],
'EbsOptimized': True
},
'InstanceType': 'c5d.2xlarge',
'WeightedCapacity': 1
},
],
'TargetOnDemandCapacity': 3,
'LaunchSpecifications': {
'SpotSpecification': {
'TimeoutDurationMinutes': 60,
'TimeoutAction': 'SWITCH_TO_ON_DEMAND',
'AllocationStrategy': 'capacity-optimized'
}
}
【问题讨论】:
-
我可以理解计算和内存优化的混合,但
i3混合在一起就像那些通常用于更多利基用途的奇怪。
标签: python amazon-web-services amazon-ec2 boto3