列出某个区域或可用区中所有EC2实例类型

5

虽然有一些方法可以将某些AWSCLI命令的输出和过滤器转换为此列表,但是否有人有一种漂亮且简单的方法来列出特定区域的所有EC2实例类型?

或者这个列表是否在某个地方的存储桶中以.json文件的形式发布,由AWS维护?

我只是在寻找这种输出:

t1.micro
t2.nano
t2.micro
t2.small
...
3个回答

8

看起来至少有一种编程方法可以通过查询AWS定价API来完成此操作:

#!/bin/bash

curl https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.json | jq -r '.products[].attributes["instanceType"]' | sort -u | grep '\.'

这里有一份代码概要,以备后续调整需要: https://gist.github.com/nmagee/b096e6fadf9ac336da7ffdada43f656a

它缺少按AWS区域进行分组/指定的功能,这可能是一个重要的区别--并非每个区域都拥有所有实例类型提供。


2
您可以获得区域价格清单,其中可能会显示实例类型。但是,它将不会涉及到可用区级别。当区域添加新的可用区时,新的可用区通常不支持旧一代的实例类型。 - John Rotenstein
1
我已经创建了一个更全面的解决方案,考虑了所有可能的可用区中所有当前实例类型的提供。https://gist.github.com/mrsiesta/0e4fac21c0eb0e8977e1de7b5277e63b - siesta
2
请注意:此文档现在已经达到614M,可能不适合作为脚本参考使用。 - Matthew Mark Miller

1
据我所知,这样的列表不可用,并且无法从aws cli查询。
即使运行aws ec2 run-instancesinstance-type参数列出可用的实例类型,并引用aws文档其他人已解析数据并提供了它们。

谢谢Frédéric。我一直喜欢ec2instances.info这个页面,他们在底部注明他们正在从AWS网页上抓取信息。不过这似乎是可以通过代码来获取的,你觉得呢? - Neal Magee

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接