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

EC2 Instance without any attached Volume?

是否可以有没有任何卷(根设备或附加卷)的实例?
假设 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  

输出——应该是:[None]

You can't have an instance without a root volume. So there will always be at least one volume listed in the block device mapping.

我错了。自从我推出实例存储支持的 AMI 以来已经很久了,以至于我什至忘记了它们的存在。实例存储支持的 AMI 不会在块储存设备映射中描述其根卷,因此如果您有这样的实例并且没有附加 EBS 卷,块储存设备映射将为空。

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

绝对有可能,至少如果实例当前不是 运行

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

停止实例。

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

就在这里,如果根 EBS 卷是该实例唯一的卷,您应该有一个没有卷的实例。

其他推测:

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

您似乎可以从 运行 实例中强行分离根 EBS 卷,使其处于无卷状态,认为它会很快崩溃。

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