【发布时间】:2017-12-28 18:02:56
【问题描述】:
我正在使用 Brenda console 和 Brenda 在云中进行一些 Blender 渲染。 Brenda 使用 EC2-classic。
我很难获得价格合理的 EC2 实例,因为 AWS 总是选择我不想要的昂贵的可用区,因此我永远无法开始渲染。我希望能够在渲染开始时选择我的可用区。
我在美国东部(弗吉尼亚州)。当我在 Brenda 控制台上查看价格时,我得到如下所示的内容:
Spot price data for instance c3.large
us-east-1a 2017-07-22T12:28:47.000Z $0.0156
us-east-1b 2017-07-22T12:28:47.000Z $0.0158
us-east-1c 2017-07-22T12:28:47.000Z $0.0159
us-east-1d 2017-07-22T12:28:47.000Z $1.05
us-east-1e 2017-07-22T13:31:02.000Z $0.016
us-east-1f 2017-07-22T12:28:47.000Z $1.05
Spot price data for instance c3.xlarge
us-east-1a 2017-07-22T09:00:40.000Z $0.0428
us-east-1b 2017-07-22T13:04:01.000Z $0.0426
us-east-1c 2017-07-22T12:16:19.000Z $0.0427
us-east-1d 2017-07-22T07:12:25.000Z $2.1
us-east-1e 2017-07-22T11:42:37.000Z $0.0436
us-east-1f 2017-07-22T07:12:25.000Z $2.1
无论我选择哪个实例,我都想使用可用区 us-east-1a,因为它最便宜。但是,当我开始渲染作业时,我总是以 us-east-1d 结束,这是最昂贵的可用区。我 0.02 美元的出价没有结果,因为 us-east-1d 的价格远高于其他区域。
AFAIK,我无法设置我的 AWS 账户,使其默认选择 us-east-1a。 (如果有办法做到这一点,请告诉我。)看来我必须在请求我的实例时发送实际的可用区。
我认为我需要在第 39 行附近修改代码 here,以便我可以通过所需的可用区。我认为我需要做这样的事情,我通过放置键发送可用区域:
zone = {
'availability_zone': 'us-east-1a',
}
run_args = {
'image_id' : ami_id,
'max_count' : opts.n_instances,
'instance_type' : itype,
'user_data' : user_data,
'key_name' : ssh_key_name,
'security_groups' : sec_groups,
'block_device_map' : bdm,
'placement' : zone,
}
...稍后这段代码将调用 AWS:
ec2 = aws.get_ec2_conn(conf)
reservation = ec2.run_instances(**run_args)
但是,这似乎不是正确的解决方案,因为它仍然会启动对 us-east-1d 的请求,这是我不想要的可用区。
我错过了什么?
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-ec2 blender