当我尝试使用IO1卷类型创建它时,为什么EC2实例状态“已终止”?

时间:2014-08-21 13:29:30

标签: amazon-ec2 instance boto

这是用于创建EC2实例的代码块:

def create_instance(connection, name, instance_type, security_groups, ami, key, placement, cluster, optimized_ebs):

   #NEW BLOCK BEGIN
   dev_sda1 = boto.ec2.blockdevicemapping.EBSBlockDeviceType()
   dev_sda1.size = 23 # size in Gigabytes
   dev_sda1.volume_type = 'io1'
   dev_sda1.iops = 44
   bdm = boto.ec2.blockdevicemapping.BlockDeviceMapping()
   bdm['/dev/sda1'] = dev_sda1
   #NEW BLOCK END

   res = connection.run_instances(
       ami,
       key_name=key,
       instance_type=instance_type,
       security_groups=security_groups,
       placement=placement,
       ebs_optimized=optimized_ebs,
       block_device_map=bdm)
   inst = res.instances[0]
   time.sleep(30)
   inst.update()
   connection.create_tags([inst.id], {'Name': '%s-%s' % (cluster, name),'Cluster': cluster})

在添加#NEW BLOCK代码块之前,一切正常。调用create_instance后,我会检查新实例的状态,它将是'running'

我添加了块以创建类型为' IO1'的卷的实例。而不是默认值(遵循接受的答案here)。我在这里没有任何异常或其他错误,但是当我稍后检查实例状态时,我得到'terminated'。我做错了什么?

1 个答案:

答案 0 :(得分:0)

可能还有其他问题,但我看到的一个问题是您在块设备映射中为iops提供的值。该值必须介于100-4000之间(请参阅API docs)。