获取不同数量的AWS实例,具体取决于我的计数方式

我正在计算基于instance_type的保留实例的总数,我将它作为一个关键字存储在字典中的instance_type

首先,我通过get_all_reserved_instances()find所有保留的实例,然后对于由此返回的每个实例,我都这样做:

 if each.state != 'retired': key = str(each.instance_type) res_count[key]+=each.instance_count 

我也计算instance_type的基础上的instance_type总数。 首先,我通过get_all_instances()find所有实例,然后为每个instance_type执行此操作:

 if each.state == 'running': key = str(each.instance_type) all_count[key]+=1 

现在为一个实例types返回:

all_count = 17

res_count = 19

res_count大于all_count怎么可能? 如果没有ondemand实例, res_count可以等于all_count ,但是为什么这比all_count ? 一个非退休的实例也可以不运行? 如果是这样,那么我认为这是这种差异的情况。

使用状态有什么错误吗?还有其他原因吗?

一个非退休的实例也可以不运行?

  • 是的,除了running之外,AWS EC2实例还可以处于多个状态。 根据这个链接实例生命周期中的最新的官方文档,没有retired状态,但是代码中的each.state != 'retired'这一行将会拉取所有的保留实例。

res_count大于all_count怎么可能?

  • 您的实例处于非运行状态。