没有任何附加卷的EC2实例?

时间:2015-06-03 12:32:17

标签: python amazon-web-services amazon-ec2 boto aws-ec2

是否可以拥有没有任何音量的实例(root-device或附加音量)? 可以说instance_ids是[i-120cd3fe,i-23e46634]
是否可能在AWS中没有任何附加卷的情况下存在任何实例?

    conn=get_ec2_connection(region=region)  
    instances = conn.get_only_instances(instance_ids=instance_ids)   
    volumes_list=[]
    for instance in instances:  
       dev_mappings = instance.block_device_mapping  
       for block_device in dev_mappings.keys():  
           volume_id = dev_mappings[block_device].volume_id
           volumes_list.append(volume_id)

    print volumes_list  

输出 - 应该是:[无]

2 个答案:

答案 0 :(得分:3)

  

您无法拥有没有根卷的实例。因此,块设备映射中将始终列出至少一个卷。

我错了。自从我推出一个支持AMI的实例存储以来,我已经忘了他们甚至存在了。实例存储支持的AMI不会在块设备映射中描述其根卷,因此如果您有这样的实例且没有连接EBS卷,则块设备映射将为空。

对于基于EBS的实例,即使对于已停止的实例,块设备映射也将始终包含根卷(至少),除非您已从该实例明确地分离该卷。

答案 1 :(得分:0)

绝对可能,至少如果实例当前没有正在运行

考虑用于从无法启动的实例中拯救自己的常用策略:

停止实例。

分离根卷,以便将其附加到工作实例并修复问题。

就此而言,如果根EBS卷是实例所拥有的唯一卷,那么您应该拥有一个没有卷的实例。

其他推测:

我无法确认,但可以想象使用临时磁盘的实例存储实例也可能与此匹配。

有可能你可以强制从正在运行的实例中分离根EBS卷,使其处于无卷状态,认为它会很快崩溃。

实例可能也会在终止后暂时处于此状态,因为它们的EBS卷已分离并可能被删除。 (终止实例在终止后似乎仍然在短时间内显示为实例)。