是否可以拥有没有任何音量的实例(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
输出 - 应该是:[无]
答案 0 :(得分:3)
您无法拥有没有根卷的实例。因此,块设备映射中将始终列出至少一个卷。
我错了。自从我推出一个支持AMI的实例存储以来,我已经忘了他们甚至存在了。实例存储支持的AMI不会在块设备映射中描述其根卷,因此如果您有这样的实例且没有连接EBS卷,则块设备映射将为空。
对于基于EBS的实例,即使对于已停止的实例,块设备映射也将始终包含根卷(至少),除非您已从该实例明确地分离该卷。
答案 1 :(得分:0)
绝对可能,至少如果实例当前没有正在运行。
考虑用于从无法启动的实例中拯救自己的常用策略:
停止实例。
分离根卷,以便将其附加到工作实例并修复问题。
就此而言,如果根EBS卷是实例所拥有的唯一卷,那么您应该拥有一个没有卷的实例。
其他推测:
我无法确认,但可以想象使用临时磁盘的实例存储实例也可能与此匹配。
有可能你可以强制从正在运行的实例中分离根EBS卷,使其处于无卷状态,认为它会很快崩溃。
实例可能也会在终止后暂时处于此状态,因为它们的EBS卷已分离并可能被删除。 (终止实例在终止后似乎仍然在短时间内显示为实例)。