如何获取亚马逊EC2竞价实例的中断率

3
我已创建了一个脚本,用于获取按需实例的最佳价格,并查看相同实例的竞价价格。 https://github.com/fuatu/awsEC2pricefinder 以下是我的输出结果。我想为每个实例添加另一列,并显示“中断频率”。
(awspricing) ~/Projects/awspricing $ python awsEC2pricing.py -t 2 4
Records are up-to-date
--------------------------
 vCPU: 2.00
 RAM: 4.00
 OS: Linux
 Region: US East (N. Virginia)
--------------------------
Instance        vCPU   RAM    OS         PriceH   PriceM      SpotH    SpotM   
t3a.medium      2.00   4.00   Linux      0.03760  27.07200    0.01140  8.20800
t3.medium       2.00   4.00   Linux      0.04160  29.95200    0.01250  9.00000
t2.medium       2.00   4.00   Linux      0.04640  33.40800    0.01430  10.29600
a1.large        2.00   4.00   Linux      0.05100  36.72000    0.01990  14.32800
t3a.large       2.00   8.00   Linux      0.07520  54.14400    0.02260  16.27200
m6g.large       2.00   8.00   Linux      0.07700  55.44000    0.00000  0.00000

您可以在此处查看“中断频率”百分比:https://aws.amazon.com/ec2/spot/instance-advisor/ 我通过谷歌搜索和检查boto3 ec2方法,未找到任何选项来获取中断率。因此,欢迎提供帮助以展示如何以编程方式获取这些数据。

你好,如何查找所有的EC2实例而不仅仅是EBS Only的一个。<code>{'Type': 'TERM_MATCH', 'Field': 'storage', 'Value': '仅限EBS'},</code> - Manu Batham
1个回答

10
我从同事那里找到了解决方案。
这个链接包含了中断率。 https://spot-bid-advisor.s3.amazonaws.com/spot-advisor-data.json 我也相应地更新了我的代码。
样本代码在此处:
def get_ec2_spot_interruption(instances=[], os=None, region=None) -> defaultdict(None):
    import requests
    import json
    results = defaultdict(None)
    url_interruptions = "https://spot-bid-advisor.s3.amazonaws.com/spot-advisor-data.json"
    try:
        response = requests.get(url=url_interruptions)
        spot_advisor = json.loads(response.text)['spot_advisor']
    except requests.exceptions.ConnectionError:
        return
    rates = {
        0: "<5%",
        1: "5-10%",
        2: "10-15%",
        3: "15-20%",
        4: ">20%"
    }
    for ii in instances:
        try:
            rate = spot_advisor[region][os][ii]['r']
            results[ii] = rates[rate]
        except KeyError:
            results[ii] = ""
    return results

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